cartography 0.85.0__py3-none-any.whl → 0.85.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cartography might be problematic. Click here for more details.

@@ -119,8 +119,6 @@ CREATE INDEX IF NOT EXISTS FOR (n:ECSContainerDefinition) ON (n.id);
119
119
  CREATE INDEX IF NOT EXISTS FOR (n:ECSContainerDefinition) ON (n.lastupdated);
120
120
  CREATE INDEX IF NOT EXISTS FOR (n:ECSContainer) ON (n.id);
121
121
  CREATE INDEX IF NOT EXISTS FOR (n:ECSContainer) ON (n.lastupdated);
122
- CREATE INDEX IF NOT EXISTS FOR (n:EKSCluster) ON (n.id);
123
- CREATE INDEX IF NOT EXISTS FOR (n:EKSCluster) ON (n.lastupdated);
124
122
  CREATE INDEX IF NOT EXISTS FOR (n:ElasticacheCluster) ON (n.id);
125
123
  CREATE INDEX IF NOT EXISTS FOR (n:ElasticacheCluster) ON (n.arn);
126
124
  CREATE INDEX IF NOT EXISTS FOR (n:ElasticacheCluster) ON (n.lastupdated);
@@ -1,22 +1,27 @@
1
1
  {
2
2
  "statements": [
3
3
  {
4
+ "__comment__": "READ -> ListBucket, ListBucketVersions, ListBucketMultipartUploads",
4
5
  "query": "MATCH (acl:S3Acl)-[:APPLIES_TO]->(bucket:S3Bucket)<-[:RESOURCE]-(aws:AWSAccount{id: $AWS_ID})\nWHERE acl.uri IN ['http://acs.amazonaws.com/groups/global/AllUsers', 'http://acs.amazonaws.com/groups/global/AuthenticatedUsers'] AND acl.permission = 'READ'\nSET bucket.anonymous_access = true, bucket.anonymous_actions = coalesce(bucket.anonymous_actions, []) + ['s3:ListBucket', 's3:ListBucketVersions', 's3:ListBucketMultipartUploads']",
5
6
  "iterative": false
6
7
  },
7
8
  {
8
- "query": "MATCH (acl:S3Acl)-[:APPLIES_TO]->(bucket:S3Bucket)<-[:RESOURCE]-(aws:AWSAccount{id: $AWS_ID})\nWHERE acl.uri IN ['http://acs.amazonaws.com/groups/global/AllUsers', 'http://acs.amazonaws.com/groups/global/AuthenticatedUsers'] AND acl.permission = 'WRITE'\nAND (acl.ownerid = acl.granteeid)\nSET bucket.anonymous_access = true, bucket.anonymous_actions = coalesce(bucket.anonymous_actions, []) + ['s3:DeleteObjectVersion']",
9
+ "__comment__": "WRITE -> PutObject",
10
+ "query": "MATCH (acl:S3Acl)-[:APPLIES_TO]->(bucket:S3Bucket)<-[:RESOURCE]-(aws:AWSAccount{id: $AWS_ID})\nWHERE acl.uri IN ['http://acs.amazonaws.com/groups/global/AllUsers', 'http://acs.amazonaws.com/groups/global/AuthenticatedUsers'] AND acl.permission = 'WRITE'\nSET bucket.anonymous_access = true, bucket.anonymous_actions = coalesce(bucket.anonymous_actions, []) + ['s3:PutObject']",
9
11
  "iterative": false
10
12
  },
11
13
  {
12
- "query": "MATCH (acl:S3Acl)-[:APPLIES_TO]->(bucket:S3Bucket)<-[:RESOURCE]-(aws:AWSAccount{id: $AWS_ID})\nWHERE acl.uri IN ['http://acs.amazonaws.com/groups/global/AllUsers', 'http://acs.amazonaws.com/groups/global/AuthenticatedUsers'] AND acl.permission = 'READ_ACP'\nSET bucket.anonymous_access = true, bucket.anonymous_actions = coalesce(bucket.anonymous_actions, []) + ['s3:DeleteObjectVersion']",
14
+ "__comment__": "READ_ACP -> GetBucketAcl",
15
+ "query": "MATCH (acl:S3Acl)-[:APPLIES_TO]->(bucket:S3Bucket)<-[:RESOURCE]-(aws:AWSAccount{id: $AWS_ID})\nWHERE acl.uri IN ['http://acs.amazonaws.com/groups/global/AllUsers', 'http://acs.amazonaws.com/groups/global/AuthenticatedUsers'] AND acl.permission = 'READ_ACP'\nSET bucket.anonymous_access = true, bucket.anonymous_actions = coalesce(bucket.anonymous_actions, []) + ['s3:GetBucketAcl']",
13
16
  "iterative": false
14
17
  },
15
18
  {
19
+ "__comment__": "WRITE_ACP -> PutBucketAcl",
16
20
  "query": "MATCH (acl:S3Acl)-[:APPLIES_TO]->(bucket:S3Bucket)<-[:RESOURCE]-(aws:AWSAccount{id: $AWS_ID})\nWHERE acl.uri IN ['http://acs.amazonaws.com/groups/global/AllUsers', 'http://acs.amazonaws.com/groups/global/AuthenticatedUsers'] AND acl.permission = 'WRITE_ACP'\nSET bucket.anonymous_access = true, bucket.anonymous_actions = coalesce(bucket.anonymous_actions, []) + ['s3:PutBucketAcl']",
17
21
  "iterative": false
18
22
  },
19
23
  {
24
+ "__comment__": "FULL_CONTROL -> Pretty much everything",
20
25
  "query": "MATCH (acl:S3Acl)-[:APPLIES_TO]->(bucket:S3Bucket)<-[:RESOURCE]-(aws:AWSAccount{id: $AWS_ID})\nWHERE acl.uri IN ['http://acs.amazonaws.com/groups/global/AllUsers', 'http://acs.amazonaws.com/groups/global/AuthenticatedUsers'] AND acl.permission = 'FULL_CONTROL'\nSET bucket.anonymous_access = true, bucket.anonymous_actions = coalesce(bucket.anonymous_actions, []) + ['s3:ListBucket', 's3:ListBucketVersions', 's3:ListBucketMultipartUploads', 's3:PutObject', 's3:DeleteObject', 's3:DeleteObjectVersion', 's3:PutBucketAcl']",
21
26
  "iterative": false
22
27
  }],
@@ -54,7 +54,7 @@ def transform_network_interface_data(data_list: List[Dict[str, Any]], region: st
54
54
  elb_v2_id = None
55
55
  elb_match = re.match(r'^ELB (?:net|app)/([^\/]+)\/(.*)', network_interface.get('Description', ''))
56
56
  if elb_match:
57
- elb_v1_id = f'{elb_match[1]}-{elb_match[2]}.elb.{region}.amazonaws.com',
57
+ elb_v1_id = f'{elb_match[1]}-{elb_match[2]}.elb.{region}.amazonaws.com'
58
58
  else:
59
59
  elb_match = re.match(r'^ELB (.*)', network_interface.get('Description', ''))
60
60
  if elb_match:
@@ -6,8 +6,10 @@ from typing import List
6
6
  import boto3
7
7
  import neo4j
8
8
 
9
+ from cartography.client.core.tx import load
10
+ from cartography.graph.job import GraphJob
11
+ from cartography.models.aws.eks.clusters import EKSClusterSchema
9
12
  from cartography.util import aws_handle_regions
10
- from cartography.util import run_cleanup_job
11
13
  from cartography.util import timeit
12
14
 
13
15
  logger = logging.getLogger(__name__)
@@ -15,9 +17,9 @@ logger = logging.getLogger(__name__)
15
17
 
16
18
  @timeit
17
19
  @aws_handle_regions
18
- def get_eks_clusters(boto3_session: boto3.session.Session, region: str) -> List[Dict]:
20
+ def get_eks_clusters(boto3_session: boto3.session.Session, region: str) -> List[str]:
19
21
  client = boto3_session.client('eks', region_name=region)
20
- clusters: List[Dict] = []
22
+ clusters: List[str] = []
21
23
  paginator = client.get_paginator('list_clusters')
22
24
  for page in paginator.paginate():
23
25
  clusters.extend(page['clusters'])
@@ -33,49 +35,20 @@ def get_eks_describe_cluster(boto3_session: boto3.session.Session, region: str,
33
35
 
34
36
  @timeit
35
37
  def load_eks_clusters(
36
- neo4j_session: neo4j.Session, cluster_data: Dict, region: str, current_aws_account_id: str,
37
- aws_update_tag: int,
38
+ neo4j_session: neo4j.Session,
39
+ cluster_data: List[Dict[str, Any]],
40
+ region: str,
41
+ current_aws_account_id: str,
42
+ aws_update_tag: int,
38
43
  ) -> None:
39
- query: str = """
40
- MERGE (cluster:EKSCluster{id: $ClusterArn})
41
- ON CREATE SET cluster.firstseen = timestamp(),
42
- cluster.arn = $ClusterArn,
43
- cluster.name = $ClusterName,
44
- cluster.region = $Region,
45
- cluster.created_at = $CreatedAt
46
- SET cluster.lastupdated = $aws_update_tag,
47
- cluster.endpoint = $ClusterEndpoint,
48
- cluster.endpoint_public_access = $ClusterEndointPublic,
49
- cluster.rolearn = $ClusterRoleArn,
50
- cluster.version = $ClusterVersion,
51
- cluster.platform_version = $ClusterPlatformVersion,
52
- cluster.status = $ClusterStatus,
53
- cluster.audit_logging = $ClusterLogging
54
- WITH cluster
55
- MATCH (owner:AWSAccount{id: $AWS_ACCOUNT_ID})
56
- MERGE (owner)-[r:RESOURCE]->(cluster)
57
- ON CREATE SET r.firstseen = timestamp()
58
- SET r.lastupdated = $aws_update_tag
59
- """
60
-
61
- for cd in cluster_data:
62
- cluster = cluster_data[cd]
63
- neo4j_session.run(
64
- query,
65
- ClusterArn=cluster['arn'],
66
- ClusterName=cluster['name'],
67
- ClusterEndpoint=cluster.get('endpoint'),
68
- ClusterEndointPublic=cluster.get('resourcesVpcConfig', {}).get('endpointPublicAccess'),
69
- ClusterRoleArn=cluster.get('roleArn'),
70
- ClusterVersion=cluster.get('version'),
71
- ClusterPlatformVersion=cluster.get('platformVersion'),
72
- ClusterStatus=cluster.get('status'),
73
- CreatedAt=str(cluster.get('createdAt')),
74
- ClusterLogging=_process_logging(cluster),
75
- Region=region,
76
- aws_update_tag=aws_update_tag,
77
- AWS_ACCOUNT_ID=current_aws_account_id,
78
- )
44
+ load(
45
+ neo4j_session,
46
+ EKSClusterSchema(),
47
+ cluster_data,
48
+ Region=region,
49
+ AWS_ID=current_aws_account_id,
50
+ lastupdated=aws_update_tag,
51
+ )
79
52
 
80
53
 
81
54
  def _process_logging(cluster: Dict) -> bool:
@@ -91,24 +64,43 @@ def _process_logging(cluster: Dict) -> bool:
91
64
 
92
65
 
93
66
  @timeit
94
- def cleanup(neo4j_session: neo4j.Session, common_job_parameters: Dict) -> None:
95
- run_cleanup_job('aws_import_eks_cleanup.json', neo4j_session, common_job_parameters)
67
+ def cleanup(neo4j_session: neo4j.Session, common_job_parameters: Dict[str, Any]) -> None:
68
+ logger.info("Running EKS cluster cleanup")
69
+ GraphJob.from_node_schema(EKSClusterSchema(), common_job_parameters).run(neo4j_session)
70
+
71
+
72
+ def transform(cluster_data: Dict[str, Any]) -> List[Dict[str, Any]]:
73
+ transformed_list = []
74
+ for cluster_name, cluster_dict in cluster_data.items():
75
+ transformed_dict = cluster_dict.copy()
76
+ transformed_dict['ClusterLogging'] = _process_logging(transformed_dict)
77
+ transformed_dict['ClusterEndpointPublic'] = transformed_dict.get('resourcesVpcConfig', {}).get(
78
+ 'endpointPublicAccess',
79
+ )
80
+ if 'createdAt' in transformed_dict:
81
+ transformed_dict['created_at'] = str(transformed_dict['createdAt'])
82
+ transformed_list.append(transformed_dict)
83
+ return transformed_list
96
84
 
97
85
 
98
86
  @timeit
99
87
  def sync(
100
- neo4j_session: neo4j.Session, boto3_session: boto3.session.Session, regions: List[str], current_aws_account_id: str,
101
- update_tag: int, common_job_parameters: Dict,
88
+ neo4j_session: neo4j.Session,
89
+ boto3_session: boto3.session.Session,
90
+ regions: List[str],
91
+ current_aws_account_id: str,
92
+ update_tag: int,
93
+ common_job_parameters: Dict[str, Any],
102
94
  ) -> None:
103
95
  for region in regions:
104
96
  logger.info("Syncing EKS for region '%s' in account '%s'.", region, current_aws_account_id)
105
97
 
106
- clusters: List[Dict] = get_eks_clusters(boto3_session, region)
107
-
108
- cluster_data: Dict = {}
98
+ clusters: List[str] = get_eks_clusters(boto3_session, region)
99
+ cluster_data = {}
109
100
  for cluster_name in clusters:
110
- cluster_data[cluster_name] = get_eks_describe_cluster(boto3_session, region, cluster_name) # type: ignore
101
+ cluster_data[cluster_name] = get_eks_describe_cluster(boto3_session, region, cluster_name)
102
+ transformed_list = transform(cluster_data)
111
103
 
112
- load_eks_clusters(neo4j_session, cluster_data, region, current_aws_account_id, update_tag)
104
+ load_eks_clusters(neo4j_session, transformed_list, region, current_aws_account_id, update_tag)
113
105
 
114
106
  cleanup(neo4j_session, common_job_parameters)
@@ -222,7 +222,12 @@ def _is_common_exception(e: Exception, bucket: Dict) -> bool:
222
222
 
223
223
 
224
224
  @timeit
225
- def _load_s3_acls(neo4j_session: neo4j.Session, acls: Dict, aws_account_id: str, update_tag: int) -> None:
225
+ def _load_s3_acls(
226
+ neo4j_session: neo4j.Session,
227
+ acls: List[Dict[str, Any]],
228
+ aws_account_id: str,
229
+ update_tag: int,
230
+ ) -> None:
226
231
  """
227
232
  Ingest S3 ACL into neo4j.
228
233
  """
File without changes
@@ -0,0 +1,50 @@
1
+ from dataclasses import dataclass
2
+
3
+ from cartography.models.core.common import PropertyRef
4
+ from cartography.models.core.nodes import CartographyNodeProperties
5
+ from cartography.models.core.nodes import CartographyNodeSchema
6
+ from cartography.models.core.relationships import CartographyRelProperties
7
+ from cartography.models.core.relationships import CartographyRelSchema
8
+ from cartography.models.core.relationships import LinkDirection
9
+ from cartography.models.core.relationships import make_target_node_matcher
10
+ from cartography.models.core.relationships import TargetNodeMatcher
11
+
12
+
13
+ @dataclass(frozen=True)
14
+ class EKSClusterNodeProperties(CartographyNodeProperties):
15
+ id: PropertyRef = PropertyRef('arn')
16
+ arn: PropertyRef = PropertyRef('arn', extra_index=True)
17
+ name: PropertyRef = PropertyRef('name', extra_index=True)
18
+ region: PropertyRef = PropertyRef('Region', set_in_kwargs=True)
19
+ created_at: PropertyRef = PropertyRef('created_at')
20
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
21
+ endpoint: PropertyRef = PropertyRef('endpoint')
22
+ endpoint_public_access: PropertyRef = PropertyRef('ClusterEndpointPublic')
23
+ rolearn: PropertyRef = PropertyRef('roleArn')
24
+ version: PropertyRef = PropertyRef('version')
25
+ platform_version: PropertyRef = PropertyRef('platformVersion')
26
+ status: PropertyRef = PropertyRef('status')
27
+ audit_logging: PropertyRef = PropertyRef('ClusterLogging')
28
+
29
+
30
+ @dataclass(frozen=True)
31
+ class EKSClusterToAwsAccountRelProperties(CartographyRelProperties):
32
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
33
+
34
+
35
+ @dataclass(frozen=True)
36
+ class EKSClusterToAWSAccount(CartographyRelSchema):
37
+ target_node_label: str = 'AWSAccount'
38
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
39
+ {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
40
+ )
41
+ direction: LinkDirection = LinkDirection.INWARD
42
+ rel_label: str = "RESOURCE"
43
+ properties: EKSClusterToAwsAccountRelProperties = EKSClusterToAwsAccountRelProperties()
44
+
45
+
46
+ @dataclass(frozen=True)
47
+ class EKSClusterSchema(CartographyNodeSchema):
48
+ label: str = 'EKSCluster'
49
+ properties: EKSClusterNodeProperties = EKSClusterNodeProperties()
50
+ sub_resource_relationship: EKSClusterToAWSAccount = EKSClusterToAWSAccount()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cartography
3
- Version: 0.85.0
3
+ Version: 0.85.1
4
4
  Summary: Explore assets and their relationships across your technical infrastructure.
5
5
  Home-page: https://www.github.com/lyft/cartography
6
6
  Maintainer: Lyft
@@ -12,7 +12,7 @@ cartography/client/aws/iam.py,sha256=dYsGikc36DEsSeR2XVOVFFUDwuU9yWj_EVkpgVYCFgM
12
12
  cartography/client/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  cartography/client/core/tx.py,sha256=4_kTBxrtlwsOM-e8Xtjf7wmmzwZ-DGRJL0rPFp0Xj0Q,10805
14
14
  cartography/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- cartography/data/indexes.cypher,sha256=odgVwNCDACnicHcv46DNExDmtWiQcn8rNICIp2751jI,27927
15
+ cartography/data/indexes.cypher,sha256=2OP2V7hsN794IssfeaAYYwPxUt5QghXnrgBAEKHWag8,27804
16
16
  cartography/data/permission_relationships.yaml,sha256=RuKGGc_3ZUQ7ag0MssB8k_zaonCkVM5E8I_svBWTmGc,969
17
17
  cartography/data/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  cartography/data/jobs/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -23,7 +23,7 @@ cartography/data/jobs/analysis/aws_ec2_keypair_analysis.json,sha256=_ZBczunZbx5N
23
23
  cartography/data/jobs/analysis/aws_eks_asset_exposure.json,sha256=Z6z4YTNJJqUJl2JqONeAYAvfH_2A9qEBxkFn-aou8D8,561
24
24
  cartography/data/jobs/analysis/aws_foreign_accounts.json,sha256=b8Li_KQLwIvNXxWt0F1bVTV1Vg9dxsbr7ZE8LH2-woc,686
25
25
  cartography/data/jobs/analysis/aws_lambda_ecr.json,sha256=wM10Gn0HoNP-sOj3S_Sjqh4mLsh-f2QkonkFuOohs_U,641
26
- cartography/data/jobs/analysis/aws_s3acl_analysis.json,sha256=EDf1VhDoP7khhGf1QTI9GIsp08foyPL4wE9mB9JQDH4,2493
26
+ cartography/data/jobs/analysis/aws_s3acl_analysis.json,sha256=ihTzHXAjpulNo0F1swZlZtxqKsZwtt2QXoB7yaX6gKA,2737
27
27
  cartography/data/jobs/analysis/gcp_compute_asset_inet_exposure.json,sha256=lIurpVOAHZ3u_pfpRhcC5zprxXKqOWG4miGIkMeCfcE,4695
28
28
  cartography/data/jobs/analysis/gcp_gke_asset_exposure.json,sha256=7SJc9TeeIWFMDmHOWgmjgaIzjmCClLjJTPS4bGlaEF0,643
29
29
  cartography/data/jobs/analysis/gcp_gke_basic_auth.json,sha256=qLkrw1eZvV9ETtkIQN3v9hXnYN3ujAMyfIpqUj5YGo8,681
@@ -40,7 +40,6 @@ cartography/data/jobs/cleanup/aws_import_ec2_launch_templates_cleanup.json,sha25
40
40
  cartography/data/jobs/cleanup/aws_import_ec2_security_groupinfo_cleanup.json,sha256=CackEgSs1PN15pTg8oIdS0amB-n-PsKODLAaqC3gf_A,1183
41
41
  cartography/data/jobs/cleanup/aws_import_ecr_cleanup.json,sha256=7Sga9WlbhHe-VyoFaF0LrlhbAFvSSOjVKiRf_VW8To8,1355
42
42
  cartography/data/jobs/cleanup/aws_import_ecs_cleanup.json,sha256=6HtmZy7gNC0ZxLU7I6C2KKcqpZhYRFyaJZCDA50DzAs,2126
43
- cartography/data/jobs/cleanup/aws_import_eks_cleanup.json,sha256=pLzgVFTvAmwiZjGaB3ceTZy3nv96t5vtTRh_7MbUAgA,552
44
43
  cartography/data/jobs/cleanup/aws_import_elastic_ip_addresses_cleanup.json,sha256=Gd4cppQTr9X4646UNS8g0VLR1eSOm8r0GjBxQMuuEic,1043
45
44
  cartography/data/jobs/cleanup/aws_import_elasticache_cleanup.json,sha256=wpHgX6CLBrQG6n-7foB7T8WVomKZ4lmPaXe6D1kNDFo,961
46
45
  cartography/data/jobs/cleanup/aws_import_es_cleanup.json,sha256=VqRqiMcT0Ag0Qif2g0oLG1-Sm2JxDLay6j6pBnwgL8s,608
@@ -148,7 +147,7 @@ cartography/intel/aws/config.py,sha256=wrZbz7bc8vImLmRvTLkPcWnjjPzk3tOG4bB_BFS2l
148
147
  cartography/intel/aws/dynamodb.py,sha256=LZ6LGNThLi0zC3eLMq2JN3mwiSwZeaH58YQQHvsXMGE,5013
149
148
  cartography/intel/aws/ecr.py,sha256=9yK8bXnXBJHW_AOalATjqfC4GTpR9pilpDScla4EFuY,6624
150
149
  cartography/intel/aws/ecs.py,sha256=gulrIZ--iEFLpkkPH58MJIkctsxWeWdO2ofM9amDNZA,23654
151
- cartography/intel/aws/eks.py,sha256=6ey28ifnPvGMReVvFczBWBwBBSyrUWpuBiv8-NahNwY,4118
150
+ cartography/intel/aws/eks.py,sha256=OerAX7qT2uGPbqliPvuy8JZUIgle_KMlnkkHxk8O5fk,3546
152
151
  cartography/intel/aws/elasticache.py,sha256=fCI47aDFmIDyE26GiReKYb6XIZUwrzcvsXBQ4ruFhuI,4427
153
152
  cartography/intel/aws/elasticsearch.py,sha256=ZL7MkXF_bXRSoXuDSI1dwGckRLG2zDB8LuAD07vSLnE,8374
154
153
  cartography/intel/aws/emr.py,sha256=xhWBVZngxJRFjMEDxwq3G6SgytRGLq0v2a_CeDvByR0,3372
@@ -163,7 +162,7 @@ cartography/intel/aws/redshift.py,sha256=KOqiXIllHmtPTeaNGl-cX4srY5pFE6o12j8MQ5-
163
162
  cartography/intel/aws/resourcegroupstaggingapi.py,sha256=aq4kPF6t8QZZoTxdkQVLXH65Di41CDJVM9llJNe6iaY,10278
164
163
  cartography/intel/aws/resources.py,sha256=exmPQXk9V75ubwgzL7sksVI9mKIdfEbNSSXGW206fvg,3181
165
164
  cartography/intel/aws/route53.py,sha256=IYqeQud1HuHnf11A7T-Jeif5DWgjpaaU-Jfr2cLUc_o,14099
166
- cartography/intel/aws/s3.py,sha256=_40Hl4JYuqKB3RDazu_7tVd3zhoIfHnOA5idnpNGpPg,26983
165
+ cartography/intel/aws/s3.py,sha256=SVxUMtMSkbdjZv5qOSYIbYb8BQa-QTojbHG85-EFWLA,27034
167
166
  cartography/intel/aws/secretsmanager.py,sha256=YogwRPT6qZPVg5HrND71zI-nNn60oxoWaW7eUlhuTS0,3304
168
167
  cartography/intel/aws/securityhub.py,sha256=8FF7vW0ykdqn07xGExtsOLxYTyCTTbDiRuA1pxiRNlM,2266
169
168
  cartography/intel/aws/sqs.py,sha256=cosScBKxAm_6GsM9zzg4U12KvAjXUzxpJ1zGv0lsVZI,6199
@@ -178,7 +177,7 @@ cartography/intel/aws/ec2/key_pairs.py,sha256=SvRgd56vE4eouvTSNoFK8PP8HYoECO91go
178
177
  cartography/intel/aws/ec2/launch_templates.py,sha256=UXqINdxBzpgPTJVjSZ9DXhO-Lo598aHswJapuo4QNXA,5099
179
178
  cartography/intel/aws/ec2/load_balancer_v2s.py,sha256=B7NbD8o2Qgd5J_EOKKr8v_tkD7Jr1EXFnyXGR9Ccuzw,8394
180
179
  cartography/intel/aws/ec2/load_balancers.py,sha256=1GwErzGqi3BKCARqfGJcD_r_D84rFKVy5kNMas9jAok,6756
181
- cartography/intel/aws/ec2/network_interfaces.py,sha256=_hrR2FeAqO4joK8Lpmb1g8-kt4DT_DtP_2ROsqWDyHk,9196
180
+ cartography/intel/aws/ec2/network_interfaces.py,sha256=GEp2z4xfJ1eeLu1cOtC61R2Z4sYGPvLUi8AYXMo_N_8,9195
182
181
  cartography/intel/aws/ec2/reserved_instances.py,sha256=jv8-VLI5KL8jN1QRI20yim8lzZ7I7wR8a5EF8DckahA,3122
183
182
  cartography/intel/aws/ec2/security_groups.py,sha256=vxLeaCpCowkbl-YpON1UdbjtPolMfj_reOEuKujN80Y,6060
184
183
  cartography/intel/aws/ec2/snapshots.py,sha256=HSeK8COoc1p399Y0LSg6Jo0bTiooCIh66jCv4DPsJsA,5393
@@ -290,6 +289,8 @@ cartography/models/aws/ec2/securitygroup_networkinterface.py,sha256=PiaA8J82kybZ
290
289
  cartography/models/aws/ec2/subnet_instance.py,sha256=kPELT07l6AXIy-NYnXfkhM_RWUG20D33K1V1CJQdHyw,2753
291
290
  cartography/models/aws/ec2/subnet_networkinterface.py,sha256=JHlxfBojBw7LfJS4a5LpVGM28MUu451PUrrwbbOPGuQ,3614
292
291
  cartography/models/aws/ec2/volumes.py,sha256=WSP7YNZeJE3s4wnY9QrIAbcJN3OathqNgEBX0cVahDg,4470
292
+ cartography/models/aws/eks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
293
+ cartography/models/aws/eks/clusters.py,sha256=WeuC1wcjB_twsvgS0EMvU2wENhD-pm4t6N3HZ19x3vk,2293
293
294
  cartography/models/aws/inspector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
294
295
  cartography/models/aws/inspector/findings.py,sha256=_o5dsHCl6LNZrwSjEWBHiawMxgMMwlVOGoYQl8cHKJQ,5585
295
296
  cartography/models/aws/inspector/packages.py,sha256=dtY5JsVb6Ri78Lqigb2nHNq0Qc926U_m90SmbvZEDGc,3267
@@ -320,10 +321,10 @@ cartography/models/semgrep/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
320
321
  cartography/models/semgrep/deployment.py,sha256=or5qZDuR51MXzINpH15jZrqmSUvXQevCNYWJ7D6v-JI,745
321
322
  cartography/models/semgrep/findings.py,sha256=fzoCbn3QPNAapellnkXT-SSngqaXtJo7ArEHSoCekM8,3883
322
323
  cartography/models/semgrep/locations.py,sha256=kSk7Nn5Mn4Ob84MVZOo2GR0YFi-9Okq9pgA3FfC6_bk,3061
323
- cartography-0.85.0.dist-info/LICENSE,sha256=489ZXeW9G90up6ep-D1n-lJgk9ciNT2yxXpFgRSidtk,11341
324
- cartography-0.85.0.dist-info/METADATA,sha256=a4j1Y2eE8OfuN8GfEszfFbabCS2SkV7hIHI73Kd4hVg,1987
325
- cartography-0.85.0.dist-info/NOTICE,sha256=YOGAsjFtbyKj5tslYIg6V5jEYRuEvnSsIuDOUKj0Qj4,97
326
- cartography-0.85.0.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
327
- cartography-0.85.0.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
328
- cartography-0.85.0.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
329
- cartography-0.85.0.dist-info/RECORD,,
324
+ cartography-0.85.1.dist-info/LICENSE,sha256=489ZXeW9G90up6ep-D1n-lJgk9ciNT2yxXpFgRSidtk,11341
325
+ cartography-0.85.1.dist-info/METADATA,sha256=P4iBpJEuqQ0TOGSbaxeWYS4OELc4tA1YxZ6W9oDsdJQ,1987
326
+ cartography-0.85.1.dist-info/NOTICE,sha256=YOGAsjFtbyKj5tslYIg6V5jEYRuEvnSsIuDOUKj0Qj4,97
327
+ cartography-0.85.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
328
+ cartography-0.85.1.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
329
+ cartography-0.85.1.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
330
+ cartography-0.85.1.dist-info/RECORD,,
@@ -1,15 +0,0 @@
1
- {
2
- "statements": [
3
- {
4
- "query": "MATCH (n:EKSCluster)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE n.lastupdated <> $UPDATE_TAG WITH n LIMIT $LIMIT_SIZE DETACH DELETE (n)",
5
- "iterative": true,
6
- "iterationsize": 100
7
- },
8
- {
9
- "query": "MATCH (:EKSCluster)<-[r:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
10
- "iterative": true,
11
- "iterationsize": 100
12
- }
13
- ],
14
- "name": "cleanup EKSCluster"
15
- }