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.
- cartography/data/indexes.cypher +0 -2
- cartography/data/jobs/analysis/aws_s3acl_analysis.json +7 -2
- cartography/intel/aws/ec2/network_interfaces.py +1 -1
- cartography/intel/aws/eks.py +46 -54
- cartography/intel/aws/s3.py +6 -1
- cartography/models/aws/eks/__init__.py +0 -0
- cartography/models/aws/eks/clusters.py +50 -0
- {cartography-0.85.0.dist-info → cartography-0.85.1.dist-info}/METADATA +1 -1
- {cartography-0.85.0.dist-info → cartography-0.85.1.dist-info}/RECORD +14 -13
- cartography/data/jobs/cleanup/aws_import_eks_cleanup.json +0 -15
- {cartography-0.85.0.dist-info → cartography-0.85.1.dist-info}/LICENSE +0 -0
- {cartography-0.85.0.dist-info → cartography-0.85.1.dist-info}/NOTICE +0 -0
- {cartography-0.85.0.dist-info → cartography-0.85.1.dist-info}/WHEEL +0 -0
- {cartography-0.85.0.dist-info → cartography-0.85.1.dist-info}/entry_points.txt +0 -0
- {cartography-0.85.0.dist-info → cartography-0.85.1.dist-info}/top_level.txt +0 -0
cartography/data/indexes.cypher
CHANGED
|
@@ -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
|
-
"
|
|
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
|
-
"
|
|
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:
|
cartography/intel/aws/eks.py
CHANGED
|
@@ -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[
|
|
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[
|
|
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
|
-
|
|
37
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
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[
|
|
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)
|
|
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,
|
|
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)
|
cartography/intel/aws/s3.py
CHANGED
|
@@ -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(
|
|
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()
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
324
|
-
cartography-0.85.
|
|
325
|
-
cartography-0.85.
|
|
326
|
-
cartography-0.85.
|
|
327
|
-
cartography-0.85.
|
|
328
|
-
cartography-0.85.
|
|
329
|
-
cartography-0.85.
|
|
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
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|