cartography 0.108.0rc2__py3-none-any.whl → 0.109.0rc2__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/_version.py +2 -2
- cartography/data/indexes.cypher +0 -17
- cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json +0 -12
- cartography/intel/aws/cloudtrail_management_events.py +36 -3
- cartography/intel/aws/ecr.py +55 -80
- cartography/intel/aws/glue.py +117 -0
- cartography/intel/aws/identitycenter.py +71 -23
- cartography/intel/aws/kms.py +160 -200
- cartography/intel/aws/lambda_function.py +206 -190
- cartography/intel/aws/rds.py +243 -458
- cartography/intel/aws/resourcegroupstaggingapi.py +77 -18
- cartography/intel/aws/resources.py +2 -0
- cartography/intel/aws/route53.py +334 -332
- cartography/intel/aws/secretsmanager.py +62 -44
- cartography/intel/entra/groups.py +29 -1
- cartography/intel/gcp/__init__.py +10 -0
- cartography/intel/gcp/compute.py +19 -42
- cartography/models/aws/ecr/__init__.py +0 -0
- cartography/models/aws/ecr/image.py +41 -0
- cartography/models/aws/ecr/repository.py +72 -0
- cartography/models/aws/ecr/repository_image.py +95 -0
- cartography/models/aws/glue/__init__.py +0 -0
- cartography/models/aws/glue/connection.py +51 -0
- cartography/models/aws/identitycenter/awspermissionset.py +44 -0
- cartography/models/aws/kms/__init__.py +0 -0
- cartography/models/aws/kms/aliases.py +86 -0
- cartography/models/aws/kms/grants.py +65 -0
- cartography/models/aws/kms/keys.py +88 -0
- cartography/models/aws/lambda_function/__init__.py +0 -0
- cartography/models/aws/lambda_function/alias.py +74 -0
- cartography/models/aws/lambda_function/event_source_mapping.py +88 -0
- cartography/models/aws/lambda_function/lambda_function.py +89 -0
- cartography/models/aws/lambda_function/layer.py +72 -0
- cartography/models/aws/rds/__init__.py +0 -0
- cartography/models/aws/rds/cluster.py +89 -0
- cartography/models/aws/rds/instance.py +154 -0
- cartography/models/aws/rds/snapshot.py +108 -0
- cartography/models/aws/rds/subnet_group.py +101 -0
- cartography/models/aws/route53/__init__.py +0 -0
- cartography/models/aws/route53/dnsrecord.py +214 -0
- cartography/models/aws/route53/nameserver.py +63 -0
- cartography/models/aws/route53/subzone.py +40 -0
- cartography/models/aws/route53/zone.py +47 -0
- cartography/models/aws/secretsmanager/secret.py +106 -0
- cartography/models/entra/group.py +26 -0
- cartography/models/entra/user.py +6 -0
- cartography/models/gcp/compute/__init__.py +0 -0
- cartography/models/gcp/compute/vpc.py +50 -0
- cartography/util.py +8 -1
- {cartography-0.108.0rc2.dist-info → cartography-0.109.0rc2.dist-info}/METADATA +2 -2
- {cartography-0.108.0rc2.dist-info → cartography-0.109.0rc2.dist-info}/RECORD +55 -34
- cartography/data/jobs/cleanup/aws_dns_cleanup.json +0 -65
- cartography/data/jobs/cleanup/aws_import_identity_center_cleanup.json +0 -16
- cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json +0 -50
- cartography/data/jobs/cleanup/aws_import_rds_clusters_cleanup.json +0 -23
- cartography/data/jobs/cleanup/aws_import_rds_instances_cleanup.json +0 -47
- cartography/data/jobs/cleanup/aws_import_rds_snapshots_cleanup.json +0 -23
- cartography/data/jobs/cleanup/aws_import_secrets_cleanup.json +0 -8
- cartography/data/jobs/cleanup/aws_kms_details.json +0 -10
- {cartography-0.108.0rc2.dist-info → cartography-0.109.0rc2.dist-info}/WHEEL +0 -0
- {cartography-0.108.0rc2.dist-info → cartography-0.109.0rc2.dist-info}/entry_points.txt +0 -0
- {cartography-0.108.0rc2.dist-info → cartography-0.109.0rc2.dist-info}/licenses/LICENSE +0 -0
- {cartography-0.108.0rc2.dist-info → cartography-0.109.0rc2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
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 OtherRelationships
|
|
11
|
+
from cartography.models.core.relationships import TargetNodeMatcher
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass(frozen=True)
|
|
15
|
+
class NameServerNodeProperties(CartographyNodeProperties):
|
|
16
|
+
id: PropertyRef = PropertyRef("id")
|
|
17
|
+
name: PropertyRef = PropertyRef("id", extra_index=True)
|
|
18
|
+
zoneid: PropertyRef = PropertyRef("zoneid")
|
|
19
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@dataclass(frozen=True)
|
|
23
|
+
class NameServerToZoneRelProperties(CartographyRelProperties):
|
|
24
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@dataclass(frozen=True)
|
|
28
|
+
class NameServerToZoneRel(CartographyRelSchema):
|
|
29
|
+
target_node_label: str = "AWSDNSZone"
|
|
30
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
31
|
+
{"zoneid": PropertyRef("zoneid")}
|
|
32
|
+
)
|
|
33
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
34
|
+
rel_label: str = "NAMESERVER"
|
|
35
|
+
properties: NameServerToZoneRelProperties = NameServerToZoneRelProperties()
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@dataclass(frozen=True)
|
|
39
|
+
class NameServerToAWSAccountRelProperties(CartographyRelProperties):
|
|
40
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@dataclass(frozen=True)
|
|
44
|
+
class NameServerToAWSAccountRel(CartographyRelSchema):
|
|
45
|
+
target_node_label: str = "AWSAccount"
|
|
46
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
47
|
+
{"id": PropertyRef("AWS_ID", set_in_kwargs=True)}
|
|
48
|
+
)
|
|
49
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
50
|
+
rel_label: str = "RESOURCE"
|
|
51
|
+
properties: NameServerToAWSAccountRelProperties = (
|
|
52
|
+
NameServerToAWSAccountRelProperties()
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@dataclass(frozen=True)
|
|
57
|
+
class NameServerSchema(CartographyNodeSchema):
|
|
58
|
+
label: str = "NameServer"
|
|
59
|
+
properties: NameServerNodeProperties = NameServerNodeProperties()
|
|
60
|
+
sub_resource_relationship: NameServerToAWSAccountRel = NameServerToAWSAccountRel()
|
|
61
|
+
other_relationships: OtherRelationships = OtherRelationships(
|
|
62
|
+
[NameServerToZoneRel()]
|
|
63
|
+
)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
from cartography.models.core.common import PropertyRef
|
|
4
|
+
from cartography.models.core.relationships import CartographyRelProperties
|
|
5
|
+
from cartography.models.core.relationships import CartographyRelSchema
|
|
6
|
+
from cartography.models.core.relationships import LinkDirection
|
|
7
|
+
from cartography.models.core.relationships import make_source_node_matcher
|
|
8
|
+
from cartography.models.core.relationships import make_target_node_matcher
|
|
9
|
+
from cartography.models.core.relationships import SourceNodeMatcher
|
|
10
|
+
from cartography.models.core.relationships import TargetNodeMatcher
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@dataclass(frozen=True)
|
|
14
|
+
class AWSDNSZoneSubzoneRelProperties(CartographyRelProperties):
|
|
15
|
+
# Mandatory fields for MatchLinks
|
|
16
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
17
|
+
_sub_resource_label: PropertyRef = PropertyRef(
|
|
18
|
+
"_sub_resource_label", set_in_kwargs=True
|
|
19
|
+
)
|
|
20
|
+
_sub_resource_id: PropertyRef = PropertyRef("_sub_resource_id", set_in_kwargs=True)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# MatchLink for creating SUBZONE relationships between DNS zones
|
|
24
|
+
@dataclass(frozen=True)
|
|
25
|
+
class AWSDNSZoneSubzoneMatchLink(CartographyRelSchema):
|
|
26
|
+
target_node_label: str = "AWSDNSZone"
|
|
27
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
28
|
+
{
|
|
29
|
+
"zoneid": PropertyRef("subzone_id"),
|
|
30
|
+
}
|
|
31
|
+
)
|
|
32
|
+
source_node_label: str = "AWSDNSZone"
|
|
33
|
+
source_node_matcher: SourceNodeMatcher = make_source_node_matcher(
|
|
34
|
+
{
|
|
35
|
+
"zoneid": PropertyRef("zone_id"),
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
properties: AWSDNSZoneSubzoneRelProperties = AWSDNSZoneSubzoneRelProperties()
|
|
39
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
40
|
+
rel_label: str = "SUBZONE"
|
|
@@ -0,0 +1,47 @@
|
|
|
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.nodes import ExtraNodeLabels
|
|
7
|
+
from cartography.models.core.relationships import CartographyRelProperties
|
|
8
|
+
from cartography.models.core.relationships import CartographyRelSchema
|
|
9
|
+
from cartography.models.core.relationships import LinkDirection
|
|
10
|
+
from cartography.models.core.relationships import make_target_node_matcher
|
|
11
|
+
from cartography.models.core.relationships import TargetNodeMatcher
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass(frozen=True)
|
|
15
|
+
class AWSDNSZoneNodeProperties(CartographyNodeProperties):
|
|
16
|
+
id: PropertyRef = PropertyRef("zoneid")
|
|
17
|
+
zoneid: PropertyRef = PropertyRef("zoneid")
|
|
18
|
+
name: PropertyRef = PropertyRef("name", extra_index=True)
|
|
19
|
+
comment: PropertyRef = PropertyRef("comment")
|
|
20
|
+
privatezone: PropertyRef = PropertyRef("privatezone")
|
|
21
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@dataclass(frozen=True)
|
|
25
|
+
class AWSDNSZoneToAWSAccountRelProperties(CartographyRelProperties):
|
|
26
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass(frozen=True)
|
|
30
|
+
class AWSDNSZoneToAWSAccountRel(CartographyRelSchema):
|
|
31
|
+
target_node_label: str = "AWSAccount"
|
|
32
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
33
|
+
{"id": PropertyRef("AWS_ID", set_in_kwargs=True)}
|
|
34
|
+
)
|
|
35
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
36
|
+
rel_label: str = "RESOURCE"
|
|
37
|
+
properties: AWSDNSZoneToAWSAccountRelProperties = (
|
|
38
|
+
AWSDNSZoneToAWSAccountRelProperties()
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@dataclass(frozen=True)
|
|
43
|
+
class AWSDNSZoneSchema(CartographyNodeSchema):
|
|
44
|
+
label: str = "AWSDNSZone"
|
|
45
|
+
properties: AWSDNSZoneNodeProperties = AWSDNSZoneNodeProperties()
|
|
46
|
+
extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(["DNSZone"])
|
|
47
|
+
sub_resource_relationship: AWSDNSZoneToAWSAccountRel = AWSDNSZoneToAWSAccountRel()
|
|
@@ -0,0 +1,106 @@
|
|
|
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 OtherRelationships
|
|
11
|
+
from cartography.models.core.relationships import TargetNodeMatcher
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass(frozen=True)
|
|
15
|
+
class SecretsManagerSecretNodeProperties(CartographyNodeProperties):
|
|
16
|
+
"""
|
|
17
|
+
Properties for AWS Secrets Manager Secret
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
id: PropertyRef = PropertyRef("ARN")
|
|
21
|
+
arn: PropertyRef = PropertyRef("ARN", extra_index=True)
|
|
22
|
+
name: PropertyRef = PropertyRef("Name", extra_index=True)
|
|
23
|
+
description: PropertyRef = PropertyRef("Description")
|
|
24
|
+
|
|
25
|
+
# Rotation properties
|
|
26
|
+
rotation_enabled: PropertyRef = PropertyRef("RotationEnabled")
|
|
27
|
+
rotation_lambda_arn: PropertyRef = PropertyRef("RotationLambdaARN")
|
|
28
|
+
rotation_rules_automatically_after_days: PropertyRef = PropertyRef(
|
|
29
|
+
"RotationRulesAutomaticallyAfterDays"
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# Date properties (will be converted to epoch timestamps)
|
|
33
|
+
created_date: PropertyRef = PropertyRef("CreatedDate")
|
|
34
|
+
last_rotated_date: PropertyRef = PropertyRef("LastRotatedDate")
|
|
35
|
+
last_changed_date: PropertyRef = PropertyRef("LastChangedDate")
|
|
36
|
+
last_accessed_date: PropertyRef = PropertyRef("LastAccessedDate")
|
|
37
|
+
deleted_date: PropertyRef = PropertyRef("DeletedDate")
|
|
38
|
+
|
|
39
|
+
# Other properties
|
|
40
|
+
kms_key_id: PropertyRef = PropertyRef("KmsKeyId")
|
|
41
|
+
owning_service: PropertyRef = PropertyRef("OwningService")
|
|
42
|
+
primary_region: PropertyRef = PropertyRef("PrimaryRegion")
|
|
43
|
+
|
|
44
|
+
# Standard cartography properties
|
|
45
|
+
region: PropertyRef = PropertyRef("Region", set_in_kwargs=True)
|
|
46
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@dataclass(frozen=True)
|
|
50
|
+
class SecretsManagerSecretRelProperties(CartographyRelProperties):
|
|
51
|
+
"""
|
|
52
|
+
Properties for relationships between Secret and other nodes
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@dataclass(frozen=True)
|
|
59
|
+
class SecretsManagerSecretToAWSAccountRel(CartographyRelSchema):
|
|
60
|
+
"""
|
|
61
|
+
Relationship between Secret and AWS Account
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
target_node_label: str = "AWSAccount"
|
|
65
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
66
|
+
{"id": PropertyRef("AWS_ID", set_in_kwargs=True)},
|
|
67
|
+
)
|
|
68
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
69
|
+
rel_label: str = "RESOURCE"
|
|
70
|
+
properties: SecretsManagerSecretRelProperties = SecretsManagerSecretRelProperties()
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@dataclass(frozen=True)
|
|
74
|
+
class SecretsManagerSecretToKMSKeyRel(CartographyRelSchema):
|
|
75
|
+
"""
|
|
76
|
+
Relationship between Secret and its KMS key
|
|
77
|
+
Only created when KmsKeyId is present
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
target_node_label: str = "AWSKMSKey"
|
|
81
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
82
|
+
{"id": PropertyRef("KmsKeyId")},
|
|
83
|
+
)
|
|
84
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
85
|
+
rel_label: str = "ENCRYPTED_BY"
|
|
86
|
+
properties: SecretsManagerSecretRelProperties = SecretsManagerSecretRelProperties()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@dataclass(frozen=True)
|
|
90
|
+
class SecretsManagerSecretSchema(CartographyNodeSchema):
|
|
91
|
+
"""
|
|
92
|
+
Schema for AWS Secrets Manager Secret
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
label: str = "SecretsManagerSecret"
|
|
96
|
+
properties: SecretsManagerSecretNodeProperties = (
|
|
97
|
+
SecretsManagerSecretNodeProperties()
|
|
98
|
+
)
|
|
99
|
+
sub_resource_relationship: SecretsManagerSecretToAWSAccountRel = (
|
|
100
|
+
SecretsManagerSecretToAWSAccountRel()
|
|
101
|
+
)
|
|
102
|
+
other_relationships: OtherRelationships = OtherRelationships(
|
|
103
|
+
[
|
|
104
|
+
SecretsManagerSecretToKMSKeyRel(),
|
|
105
|
+
],
|
|
106
|
+
)
|
|
@@ -3,6 +3,7 @@ from dataclasses import dataclass
|
|
|
3
3
|
from cartography.models.core.common import PropertyRef
|
|
4
4
|
from cartography.models.core.nodes import CartographyNodeProperties
|
|
5
5
|
from cartography.models.core.nodes import CartographyNodeSchema
|
|
6
|
+
from cartography.models.core.nodes import ExtraNodeLabels
|
|
6
7
|
from cartography.models.core.relationships import CartographyRelProperties
|
|
7
8
|
from cartography.models.core.relationships import CartographyRelSchema
|
|
8
9
|
from cartography.models.core.relationships import LinkDirection
|
|
@@ -78,6 +79,25 @@ class EntraGroupToGroupRel(CartographyRelSchema):
|
|
|
78
79
|
properties: EntraGroupToGroupRelProperties = EntraGroupToGroupRelProperties()
|
|
79
80
|
|
|
80
81
|
|
|
82
|
+
@dataclass(frozen=True)
|
|
83
|
+
class EntraGroupToOwnerRelProperties(CartographyRelProperties):
|
|
84
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@dataclass(frozen=True)
|
|
88
|
+
# (:EntraGroup)<-[:OWNER_OF]-(:EntraUser)
|
|
89
|
+
class EntraGroupToOwnerRel(CartographyRelSchema):
|
|
90
|
+
# EntraUsers and Entra service principals can be owners of a group, so we match on the general label
|
|
91
|
+
# Because id is indexed, this should be fast even though EntraIdentity will also include EntraGroups
|
|
92
|
+
target_node_label: str = "EntraIdentity"
|
|
93
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
94
|
+
{"id": PropertyRef("owner_ids", one_to_many=True)}
|
|
95
|
+
)
|
|
96
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
97
|
+
rel_label: str = "OWNER_OF"
|
|
98
|
+
properties: EntraGroupToOwnerRelProperties = EntraGroupToOwnerRelProperties()
|
|
99
|
+
|
|
100
|
+
|
|
81
101
|
@dataclass(frozen=True)
|
|
82
102
|
class EntraGroupSchema(CartographyNodeSchema):
|
|
83
103
|
label: str = "EntraGroup"
|
|
@@ -87,5 +107,11 @@ class EntraGroupSchema(CartographyNodeSchema):
|
|
|
87
107
|
[
|
|
88
108
|
EntraGroupToGroupRel(),
|
|
89
109
|
EntraGroupToUserRel(),
|
|
110
|
+
EntraGroupToOwnerRel(),
|
|
111
|
+
]
|
|
112
|
+
)
|
|
113
|
+
extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(
|
|
114
|
+
[
|
|
115
|
+
"EntraIdentity",
|
|
90
116
|
]
|
|
91
117
|
)
|
cartography/models/entra/user.py
CHANGED
|
@@ -3,6 +3,7 @@ from dataclasses import dataclass
|
|
|
3
3
|
from cartography.models.core.common import PropertyRef
|
|
4
4
|
from cartography.models.core.nodes import CartographyNodeProperties
|
|
5
5
|
from cartography.models.core.nodes import CartographyNodeSchema
|
|
6
|
+
from cartography.models.core.nodes import ExtraNodeLabels
|
|
6
7
|
from cartography.models.core.relationships import CartographyRelProperties
|
|
7
8
|
from cartography.models.core.relationships import CartographyRelSchema
|
|
8
9
|
from cartography.models.core.relationships import LinkDirection
|
|
@@ -63,3 +64,8 @@ class EntraUserSchema(CartographyNodeSchema):
|
|
|
63
64
|
label: str = "EntraUser"
|
|
64
65
|
properties: EntraUserNodeProperties = EntraUserNodeProperties()
|
|
65
66
|
sub_resource_relationship: EntraUserToTenantRel = EntraUserToTenantRel()
|
|
67
|
+
extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(
|
|
68
|
+
[
|
|
69
|
+
"EntraIdentity",
|
|
70
|
+
]
|
|
71
|
+
)
|
|
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 GCPVpcNodeProperties(CartographyNodeProperties):
|
|
15
|
+
id: PropertyRef = PropertyRef("partial_uri", extra_index=True)
|
|
16
|
+
lastupdated: PropertyRef = PropertyRef("LASTUPDATED", set_in_kwargs=True)
|
|
17
|
+
partial_uri: PropertyRef = PropertyRef("partial_uri")
|
|
18
|
+
self_link: PropertyRef = PropertyRef("self_link")
|
|
19
|
+
name: PropertyRef = PropertyRef("name", extra_index=True)
|
|
20
|
+
project_id: PropertyRef = PropertyRef("PROJECT_ID", set_in_kwargs=True)
|
|
21
|
+
auto_create_subnetworks: PropertyRef = PropertyRef("auto_create_subnetworks")
|
|
22
|
+
routing_config_routing_mode: PropertyRef = PropertyRef(
|
|
23
|
+
"routing_config_routing_mode"
|
|
24
|
+
)
|
|
25
|
+
description: PropertyRef = PropertyRef("description")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@dataclass(frozen=True)
|
|
29
|
+
class GCPVpcToProjectRelProperties(CartographyRelProperties):
|
|
30
|
+
lastupdated: PropertyRef = PropertyRef("LASTUPDATED", set_in_kwargs=True)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@dataclass(frozen=True)
|
|
34
|
+
class GCPVpcToProjectRel(CartographyRelSchema):
|
|
35
|
+
target_node_label: str = "GCPProject"
|
|
36
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
37
|
+
{
|
|
38
|
+
"id": PropertyRef("PROJECT_ID", set_in_kwargs=True),
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
42
|
+
rel_label: str = "RESOURCE"
|
|
43
|
+
properties: GCPVpcToProjectRelProperties = GCPVpcToProjectRelProperties()
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@dataclass(frozen=True)
|
|
47
|
+
class GCPVpcSchema(CartographyNodeSchema):
|
|
48
|
+
label: str = "GCPVpc"
|
|
49
|
+
properties: GCPVpcNodeProperties = GCPVpcNodeProperties()
|
|
50
|
+
sub_resource_relationship: GCPVpcToProjectRel = GCPVpcToProjectRel()
|
cartography/util.py
CHANGED
|
@@ -291,9 +291,16 @@ def aws_handle_regions(func: AWSGetFunc) -> AWSGetFunc:
|
|
|
291
291
|
try:
|
|
292
292
|
return func(*args, **kwargs)
|
|
293
293
|
except botocore.exceptions.ClientError as e:
|
|
294
|
+
error_code = e.response.get("Error", {}).get("Code")
|
|
295
|
+
if error_code == "InvalidToken":
|
|
296
|
+
raise RuntimeError(
|
|
297
|
+
"AWS returned an InvalidToken error. Configure regional STS endpoints by "
|
|
298
|
+
"setting environment variable AWS_STS_REGIONAL_ENDPOINTS=regional or adding "
|
|
299
|
+
"'sts_regional_endpoints = regional' to your AWS config file."
|
|
300
|
+
) from e
|
|
294
301
|
# The account is not authorized to use this service in this region
|
|
295
302
|
# so we can continue without raising an exception
|
|
296
|
-
if
|
|
303
|
+
if error_code in ERROR_CODES:
|
|
297
304
|
logger.warning(
|
|
298
305
|
"{} in this region. Skipping...".format(
|
|
299
306
|
e.response["Error"]["Message"],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cartography
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.109.0rc2
|
|
4
4
|
Summary: Explore assets and their relationships across your technical infrastructure.
|
|
5
5
|
Maintainer: Cartography Contributors
|
|
6
6
|
License: apache2
|
|
@@ -82,7 +82,7 @@ You can learn more about the story behind Cartography in our [presentation at BS
|
|
|
82
82
|
|
|
83
83
|
## Supported platforms
|
|
84
84
|
- [Airbyte](https://cartography-cncf.github.io/cartography/modules/airbyte/index.html) - Organization, Workspace, User, Source, Destination, Connection, Tag, Stream
|
|
85
|
-
- [Amazon Web Services](https://cartography-cncf.github.io/cartography/modules/aws/index.html) - ACM, API Gateway, CloudWatch, CodeBuild, Config, EC2, ECS, ECR, Elasticsearch, Elastic Kubernetes Service (EKS), DynamoDB, GuardDuty, IAM, Inspector, KMS, Lambda, RDS, Redshift, Route53, S3, Secrets Manager(Secret Versions), Security Hub, SQS, SSM, STS, Tags
|
|
85
|
+
- [Amazon Web Services](https://cartography-cncf.github.io/cartography/modules/aws/index.html) - ACM, API Gateway, CloudWatch, CodeBuild, Config, EC2, ECS, ECR, EFS, Elasticsearch, Elastic Kubernetes Service (EKS), DynamoDB, Glue, GuardDuty, IAM, Inspector, KMS, Lambda, RDS, Redshift, Route53, S3, Secrets Manager(Secret Versions), Security Hub, SNS, SQS, SSM, STS, Tags
|
|
86
86
|
- [Anthropic](https://cartography-cncf.github.io/cartography/modules/anthropic/index.html) - Organization, ApiKey, User, Workspace
|
|
87
87
|
- [BigFix](https://cartography-cncf.github.io/cartography/modules/bigfix/index.html) - Computers
|
|
88
88
|
- [Cloudflare](https://cartography-cncf.github.io/cartography/modules/cloudflare/index.html) - Account, Role, Member, Zone, DNSRecord
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
cartography/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
cartography/__main__.py,sha256=y5iqUrj4BmqZfjeDT-9balzpXeMARgHeIedRMRI1gr8,100
|
|
3
|
-
cartography/_version.py,sha256
|
|
3
|
+
cartography/_version.py,sha256=nimLevl7Lt41ABvOl3VLASk_dXzF0KzyiM-BgKu2SmU,525
|
|
4
4
|
cartography/cli.py,sha256=qOu3nSIKWsuDbuPe5XrKBoAArFQKZP8jSjK8OtI69_E,46595
|
|
5
5
|
cartography/config.py,sha256=q-fVcWJH9ida_cAII9RcOT0FUpFFify7W6NMvmC3kGk,16873
|
|
6
6
|
cartography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
cartography/stats.py,sha256=N95prYlSzY8U52VFgKIDgOWOawu5Mig4N7GcVp3binQ,4420
|
|
8
8
|
cartography/sync.py,sha256=-WsU6tGUKpfxPRndm1QU_0HQyE20Q7fexQWRHWFrnQI,13867
|
|
9
|
-
cartography/util.py,sha256=
|
|
9
|
+
cartography/util.py,sha256=DTFfVRN1cv3msm2heIjFkpH3NBJs00IolwzuUcJiDHo,15965
|
|
10
10
|
cartography/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
11
|
cartography/client/aws/__init__.py,sha256=Zj7nX21QQELwPLZlpldm_22IiXZ1VFsEFQbWX_e4okU,558
|
|
12
12
|
cartography/client/aws/ecr.py,sha256=04IXnuEAauyO5Mx9Wmt79WdUnYDhYsk2QSOnwE5_BeM,1664
|
|
@@ -14,7 +14,7 @@ cartography/client/aws/iam.py,sha256=dYsGikc36DEsSeR2XVOVFFUDwuU9yWj_EVkpgVYCFgM
|
|
|
14
14
|
cartography/client/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
cartography/client/core/tx.py,sha256=Xx6_a5u7PE5pyREuBL_J39ORcafqieFf4KdosaEv1c4,13530
|
|
16
16
|
cartography/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
cartography/data/indexes.cypher,sha256=
|
|
17
|
+
cartography/data/indexes.cypher,sha256=R1UiBIAYqWGyZmwL0EPaaVWM2P64KKClSj0xPDF715s,22472
|
|
18
18
|
cartography/data/permission_relationships.yaml,sha256=RuKGGc_3ZUQ7ag0MssB8k_zaonCkVM5E8I_svBWTmGc,969
|
|
19
19
|
cartography/data/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
20
|
cartography/data/jobs/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -30,7 +30,6 @@ cartography/data/jobs/analysis/gcp_gke_basic_auth.json,sha256=qLkrw1eZvV9ETtkIQN
|
|
|
30
30
|
cartography/data/jobs/analysis/gsuite_human_link.json,sha256=ArWA51fNIeeXwYiroJbKnuqN8y-TLrndOq0ZdC9q5os,541
|
|
31
31
|
cartography/data/jobs/cleanup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
32
|
cartography/data/jobs/cleanup/aws_account_cleanup.json,sha256=DEB4h6Z4NSpYaLXECPhNk8HHbT0XNlqUA01pXIskBxc,473
|
|
33
|
-
cartography/data/jobs/cleanup/aws_dns_cleanup.json,sha256=H5uMZV4tN6HcjTYwh2I1dENzNGqu2D2Rs2q-5CK5e0Y,3498
|
|
34
33
|
cartography/data/jobs/cleanup/aws_import_account_access_key_cleanup.json,sha256=UCrAXf-8yQIoUa843VLLTpqrSpNa753c1cxzg32oqU0,737
|
|
35
34
|
cartography/data/jobs/cleanup/aws_import_config_cleanup.json,sha256=VCAJjEnFcQUR16VxKdpsOkBJEnhMuLk-7Kgm_p9k1NM,754
|
|
36
35
|
cartography/data/jobs/cleanup/aws_import_ec2_launch_configurations_cleanup.json,sha256=x9IIzb9Sr1353ygkA-qqUUbZS9XO2v3GzUHe-0J4Pw8,281
|
|
@@ -42,21 +41,15 @@ cartography/data/jobs/cleanup/aws_import_es_cleanup.json,sha256=VqRqiMcT0Ag0Qif2
|
|
|
42
41
|
cartography/data/jobs/cleanup/aws_import_groups_cleanup.json,sha256=QSdWIpC_Ru4TFBm9I5mpI-ZHyusbzCzCePWN-yn8TQU,463
|
|
43
42
|
cartography/data/jobs/cleanup/aws_import_groups_membership_cleanup.json,sha256=OSeasbv01pn47J1ib3yal_dAzbEOCZVJnldMqK0SAOQ,292
|
|
44
43
|
cartography/data/jobs/cleanup/aws_import_groups_policy_cleanup.json,sha256=U_yKHAsjHoI9fiiTqGyhlMazgeZumlZwMO70CpJpuAM,309
|
|
45
|
-
cartography/data/jobs/cleanup/aws_import_identity_center_cleanup.json,sha256=PSyerOlZkiLaWYFa3Hg1mqqX83FGwj36-p0BF1lR-Q8,650
|
|
46
44
|
cartography/data/jobs/cleanup/aws_import_internet_gateways_cleanup.json,sha256=SHHrR9pX0V1r-RxwJggHGeFA7JVQAAK02D-n-vqOvdU,287
|
|
47
45
|
cartography/data/jobs/cleanup/aws_import_kms_cleanup.json,sha256=NU9doXVk4UmAY59aYnld95Wc1b8DrfCbvJltUsATxko,1441
|
|
48
|
-
cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json,sha256=h219-cmOY19RjcGZiecM21HS52hw4S5EXFVAxIpyyTw,2267
|
|
49
46
|
cartography/data/jobs/cleanup/aws_import_principals_cleanup.json,sha256=yrI1FISGTlgaUZXFSj7XUCNzRoLqkcavLur4Lw4zSmU,1363
|
|
50
|
-
cartography/data/jobs/cleanup/aws_import_rds_clusters_cleanup.json,sha256=aHpM8qvN7TNTUJMQjOlv5-lxz0BzJl-tKIj_m5i_uqc,1166
|
|
51
|
-
cartography/data/jobs/cleanup/aws_import_rds_instances_cleanup.json,sha256=vmulpaxqqzBYSTtS6lYzbm55ksYjCab3UeRI0l13ktY,2733
|
|
52
|
-
cartography/data/jobs/cleanup/aws_import_rds_snapshots_cleanup.json,sha256=ckOaVSBL-7XLjc0_0sGKNWXj61oVQabj7ZEYG89HnfA,1171
|
|
53
47
|
cartography/data/jobs/cleanup/aws_import_redshift_clusters_cleanup.json,sha256=TNQ93Z7pPchdBAp3WiuoZMeDWdr_WQ139HiDPl32WhE,1963
|
|
54
48
|
cartography/data/jobs/cleanup/aws_import_reserved_instances_cleanup.json,sha256=P98o_cdNpso732eE-FjK4UYMp__--ZuedmiA3aXeQig,524
|
|
55
49
|
cartography/data/jobs/cleanup/aws_import_roles_cleanup.json,sha256=z6M8to_4TcOx4TKVbtfu86gRQgbDfVlJmRn3voNXbaI,500
|
|
56
50
|
cartography/data/jobs/cleanup/aws_import_roles_policy_cleanup.json,sha256=qssEDBXg5yVaOLg2lpsrnPTHBfW7ERD9BMeciTm22oM,307
|
|
57
51
|
cartography/data/jobs/cleanup/aws_import_s3_acl_cleanup.json,sha256=AmQDF8VZwXLtZ9cYe4xB7uY-VA3BMhc1YUS8HJKZ2q4,533
|
|
58
52
|
cartography/data/jobs/cleanup/aws_import_s3_buckets_cleanup.json,sha256=zF_TRTZGorQO6SIXryO3qAUVWM8We2fBABuTS3rflQU,756
|
|
59
|
-
cartography/data/jobs/cleanup/aws_import_secrets_cleanup.json,sha256=ehQJQSoWmDths9FjhBJZA3SndlvmzWjzrUaKxmz-2PY,283
|
|
60
53
|
cartography/data/jobs/cleanup/aws_import_securityhub_cleanup.json,sha256=WO6OrIFr6tqbRtF0bG_JwVp4ofnnsHciJISnDBZkZxU,266
|
|
61
54
|
cartography/data/jobs/cleanup/aws_import_sqs_queues_cleanup.json,sha256=Mla8y-CWaQdPJO9IDmWDz_zCAuclcJ4GRhlAlYVj_qw,629
|
|
62
55
|
cartography/data/jobs/cleanup/aws_import_tags_cleanup.json,sha256=mVOmhpoeHYItYQFATlTTeBhUt2GipAliRhh69zQcHok,7360
|
|
@@ -68,7 +61,6 @@ cartography/data/jobs/cleanup/aws_ingest_ec2_auto_scaling_groups_cleanup.json,sh
|
|
|
68
61
|
cartography/data/jobs/cleanup/aws_ingest_load_balancers_cleanup.json,sha256=1vidNCrITt-_bxw5lsSzyqGsuyWiNhI6-bnuv5lMvRI,1729
|
|
69
62
|
cartography/data/jobs/cleanup/aws_ingest_load_balancers_v2_cleanup.json,sha256=kIMc5YTkWDOLdHCOAHPb7Q8Oz9pP6GzGO9gjBo0ZhR0,1596
|
|
70
63
|
cartography/data/jobs/cleanup/aws_ingest_subnets_cleanup.json,sha256=HtTXrA50PzBJ6LFnKZkO4hnnKxKqF6xUwqUrtFrp29Y,527
|
|
71
|
-
cartography/data/jobs/cleanup/aws_kms_details.json,sha256=awluz0DhiAcdABiTYL9M8EUQz2FAuXVpu8lICRpTEnU,319
|
|
72
64
|
cartography/data/jobs/cleanup/aws_post_ingestion_principals_cleanup.json,sha256=h3A6jNk7DGLFq6ob06-V9qzuYN-CltyHq_r2Gj8DqCI,266
|
|
73
65
|
cartography/data/jobs/cleanup/aws_s3_details.json,sha256=-GEnBicRjLBNEDS2k2MzE2PUFbQ5WmxXUbYeVTvlJzQ,316
|
|
74
66
|
cartography/data/jobs/cleanup/azure_cosmosdb_cassandra_keyspace_cleanup.json,sha256=_WIFvR-OGvG2q163NKsNXPqbDATz7rv7FLUTlWtnvK4,1358
|
|
@@ -90,7 +82,7 @@ cartography/data/jobs/cleanup/digitalocean_project_cleanup.json,sha256=5mo9vPshC
|
|
|
90
82
|
cartography/data/jobs/cleanup/gcp_compute_firewall_cleanup.json,sha256=FVNJ8EPaPhmQ_sh4vyTdMyEgs6Y-DIoFTdWJaELgz44,1904
|
|
91
83
|
cartography/data/jobs/cleanup/gcp_compute_forwarding_rules_cleanup.json,sha256=1xP5eTaHkAuVIRU5fHAOIv2tG90rdl2sFpIm-1Yv39E,992
|
|
92
84
|
cartography/data/jobs/cleanup/gcp_compute_instance_cleanup.json,sha256=i_Ni3HfuralAWxePLVAv09DNWwTl6_8l6q7HnlPO254,2774
|
|
93
|
-
cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json,sha256=
|
|
85
|
+
cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json,sha256=MipVxpRuzsYt2F1-ioZxGg94MsL8yK6ciULjEtMWG1Y,355
|
|
94
86
|
cartography/data/jobs/cleanup/gcp_compute_vpc_subnet_cleanup.json,sha256=4OhOBCSAbaED-HdKTCcaYyYjyq4HCRIR05qYy4ZdI2c,1610
|
|
95
87
|
cartography/data/jobs/cleanup/gcp_crm_folder_cleanup.json,sha256=hjEcSzG775un37uPBGz3FWm6nSQPQx9glWvGi1DrRN8,950
|
|
96
88
|
cartography/data/jobs/cleanup/gcp_crm_organization_cleanup.json,sha256=Jftx00zgZRBwnCRWF7oie9ZQnydshN0qnGx0HXnraxc,613
|
|
@@ -155,35 +147,36 @@ cartography/intel/aws/__init__.py,sha256=lgu0kxERg_dJGuktEDU0ImpHuNGHJharoLEpirK
|
|
|
155
147
|
cartography/intel/aws/acm.py,sha256=a_i2pYPpocjlL8itwlcrmg8KrSLfjcmrkhcrPP-Omj8,3827
|
|
156
148
|
cartography/intel/aws/apigateway.py,sha256=hOYVSY70DbrEfhi9gkX7PAMtg9WiPE0Pbp2wqGes7Vs,12198
|
|
157
149
|
cartography/intel/aws/cloudtrail.py,sha256=LCqf3pQMiMY4h1Wehb_OjwXst2fMIEnNOD8HbXsK4X4,2753
|
|
158
|
-
cartography/intel/aws/cloudtrail_management_events.py,sha256=
|
|
150
|
+
cartography/intel/aws/cloudtrail_management_events.py,sha256=e4P9HTqv7JKqJk-QtjWuFFt4X753PPw5JgtT5Y6GW2U,34732
|
|
159
151
|
cartography/intel/aws/cloudwatch.py,sha256=bBPlx5W15nun-jhYs-UAZQpo9Qm7FcBs4gBQevTqmi4,7246
|
|
160
152
|
cartography/intel/aws/codebuild.py,sha256=8I-Xzm_c5-ixnGOOHIQLYYpClnaGjjHrEMjQ0-DGsgM,3958
|
|
161
153
|
cartography/intel/aws/config.py,sha256=IIICicLQ0OTT3H3o8LDakIkA1BPUMwSyzpKonet-PaY,7658
|
|
162
154
|
cartography/intel/aws/dynamodb.py,sha256=VvvjeUgi1ZrqY9flXIQnfhhaSVSEqXXHW6T9917VLBk,5728
|
|
163
|
-
cartography/intel/aws/ecr.py,sha256=
|
|
155
|
+
cartography/intel/aws/ecr.py,sha256=_caYJexDxTzYMzyJ3oJwEOuEQJKjwEuH-5PHOejt7Ec,7131
|
|
164
156
|
cartography/intel/aws/ecs.py,sha256=h5Nn09MzqPftbXV46jybjsxnYVYW1Vit41kCkaFIq_4,14105
|
|
165
157
|
cartography/intel/aws/efs.py,sha256=6ZvFmVHLfZlyo8xx2dlRsC1IoVOpBOtsij_AdFczkDo,7884
|
|
166
158
|
cartography/intel/aws/eks.py,sha256=bPItyEj5q0nSDltJrr0S5MIrTPV0fK3xkqF6EV8fcqA,3759
|
|
167
159
|
cartography/intel/aws/elasticache.py,sha256=ePTi-49Lbw94L6m7id5dUk1cG6FZRizFxojxKZBk8XY,5552
|
|
168
160
|
cartography/intel/aws/elasticsearch.py,sha256=8X_Rp1zejkvXho0Zz_Cr4g-w9IpompdYRc-YS595Aso,8645
|
|
169
161
|
cartography/intel/aws/emr.py,sha256=EJoKjHQP7-F_A1trUNU05Sb42yNR1i0C9VIpGcCfAXw,3662
|
|
162
|
+
cartography/intel/aws/glue.py,sha256=-AQh1PIbWzi7y-uZbx2yaHnrEpMsENSBX-pGUFqc6xQ,3349
|
|
170
163
|
cartography/intel/aws/guardduty.py,sha256=QpwWisz3TzbOxkRKNjByk4WWDCCMXr8jgNOgOdjQM5g,8532
|
|
171
164
|
cartography/intel/aws/iam.py,sha256=bkyIzWw2OC4MHxuoCvTiZ5eEGEQhz2asiUgY_tkX2GY,34322
|
|
172
165
|
cartography/intel/aws/iam_instance_profiles.py,sha256=QUyu30xid60BFaemp-q0y9FgNsHaIQyQnQ8gHUzWC4k,2211
|
|
173
|
-
cartography/intel/aws/identitycenter.py,sha256=
|
|
166
|
+
cartography/intel/aws/identitycenter.py,sha256=Q1k1BuBmtA85s5tHGS7lvgGxQ-H-piIyiWgyevFL92U,11161
|
|
174
167
|
cartography/intel/aws/inspector.py,sha256=G8a60uuFCuENvR2DNJ9VmWEJwG9UDENaC1buULvuSZc,12415
|
|
175
|
-
cartography/intel/aws/kms.py,sha256=
|
|
176
|
-
cartography/intel/aws/lambda_function.py,sha256=
|
|
168
|
+
cartography/intel/aws/kms.py,sha256=cnWZtzI7hsaXAt4CpdddAVDqaPZvtoXCoJIdqapHAbA,10754
|
|
169
|
+
cartography/intel/aws/lambda_function.py,sha256=3hpgqI1HOeywcP3xV-OcoCOxfyyqfyMaYeb46xdf8B4,9585
|
|
177
170
|
cartography/intel/aws/organizations.py,sha256=m5qk60N6pe7iKLN-Rtfg9aYv7OozoloSkcsuePd-RGs,4680
|
|
178
171
|
cartography/intel/aws/permission_relationships.py,sha256=LTmnHS6zk9hcdL548V5ka3Ey-6NsFjy1JYZTfRyB9Ys,15647
|
|
179
|
-
cartography/intel/aws/rds.py,sha256=
|
|
172
|
+
cartography/intel/aws/rds.py,sha256=are2LsWe8tM4UkCaGVnXS7F-ZVawklpc9h4lsM-fpGY,16173
|
|
180
173
|
cartography/intel/aws/redshift.py,sha256=FGcCzcnm1OOrbJvLqtR1DwWVn1pt4Y6_eKkTUERT7Ws,7108
|
|
181
|
-
cartography/intel/aws/resourcegroupstaggingapi.py,sha256=
|
|
182
|
-
cartography/intel/aws/resources.py,sha256=
|
|
183
|
-
cartography/intel/aws/route53.py,sha256
|
|
174
|
+
cartography/intel/aws/resourcegroupstaggingapi.py,sha256=TkMlUKLrRBWAyeUu-cHKce7TFkwBnWV_Im8DONgnLGU,12852
|
|
175
|
+
cartography/intel/aws/resources.py,sha256=R4pDieVCbvvz_gAde606vnxFafKWjE2YfyE8-fv6R7o,4280
|
|
176
|
+
cartography/intel/aws/route53.py,sha256=27ocRlNnxiXi7M7eYLUCVBNwaLyArX4CAExoOBxGl3Y,14294
|
|
184
177
|
cartography/intel/aws/s3.py,sha256=Da_5NYvQ7MN1AIN7CK9XXlVZo0fPdNHkqBZY1JWnHH4,33598
|
|
185
178
|
cartography/intel/aws/s3accountpublicaccessblock.py,sha256=XkqHnbj9ODRcc7Rbl4swi03qvw_T-7Bnx3BHpTmlxio,4688
|
|
186
|
-
cartography/intel/aws/secretsmanager.py,sha256=
|
|
179
|
+
cartography/intel/aws/secretsmanager.py,sha256=xM6znqD0cKNJbAhO2Zg3svyO7YUOqPFbunhODAVXMgw,7777
|
|
187
180
|
cartography/intel/aws/securityhub.py,sha256=oR808vrEAHsHH79u8hf-hkVTBcdNd6ZObCeNGD_xnSo,2324
|
|
188
181
|
cartography/intel/aws/sns.py,sha256=UlBvYzEjjXDgxN_dihqRatIcAt-NivNp_YsZPasVuT4,6377
|
|
189
182
|
cartography/intel/aws/sqs.py,sha256=RUR8chO1oU5esZbHzKyhOO4L7LXmH78G6kGGtUCqB5Q,4096
|
|
@@ -250,11 +243,11 @@ cartography/intel/duo/users.py,sha256=e2eK716wVlO71O9Q9KrWZot2cHjHZ7KgC9ZW27pCDa
|
|
|
250
243
|
cartography/intel/duo/web_authn_credentials.py,sha256=mLWXdBe4V6fHCFotmtJmwhTSoOY6Hx87D3zI3hlL2nc,2656
|
|
251
244
|
cartography/intel/entra/__init__.py,sha256=c4zkMFKRem8aRDUqjAvcNw8UwBvAv24Xq8yednlhAjU,2331
|
|
252
245
|
cartography/intel/entra/applications.py,sha256=RAvUxk_hwsKbf64ohhg3f-QuTzsT7zb8q13d9nQuyqg,13625
|
|
253
|
-
cartography/intel/entra/groups.py,sha256=
|
|
246
|
+
cartography/intel/entra/groups.py,sha256=dENox8CUU_ngHkH0dDgzhH7mBthEovE6Trw6TyNAfGo,5994
|
|
254
247
|
cartography/intel/entra/ou.py,sha256=iv5UgRcPIaUZ8DdveKTmMkz0thEPYichpL9XntbHiPo,3803
|
|
255
248
|
cartography/intel/entra/users.py,sha256=LiQuvpzPefRWvW1o07l-8TYrr6sUmpiYFli_4ROKJEw,8491
|
|
256
|
-
cartography/intel/gcp/__init__.py,sha256=
|
|
257
|
-
cartography/intel/gcp/compute.py,sha256=
|
|
249
|
+
cartography/intel/gcp/__init__.py,sha256=K8UOJmrhmG6b3ULJQVmOM4UC-v0KyKMKmhR_07_O41M,19421
|
|
250
|
+
cartography/intel/gcp/compute.py,sha256=id8B8RqrfyfRITD57KPh4zIHmjrQFSwtH4aNq3XHB2A,48897
|
|
258
251
|
cartography/intel/gcp/crm.py,sha256=BoVBKthjviOD7WSGhXdKtBhrk4TR9qTxMQX6xsmEedw,12682
|
|
259
252
|
cartography/intel/gcp/dns.py,sha256=motkUXZLO30FEemqdffWuZA1Y1DLv0lGOgUqOi6ep4c,8157
|
|
260
253
|
cartography/intel/gcp/gke.py,sha256=2-lhTzFEh-gAQ756Sr0kZZJY5_zcFWPS7_p0EVNzuR8,8326
|
|
@@ -412,6 +405,10 @@ cartography/models/aws/ec2/subnet_instance.py,sha256=6bgrWbFcCjBIjqd_6lcKv6rWyll
|
|
|
412
405
|
cartography/models/aws/ec2/subnet_networkinterface.py,sha256=B60S1YvEopVWNlRL5W-hMby3-P06uaNcC_8oOLoRGik,3872
|
|
413
406
|
cartography/models/aws/ec2/subnets.py,sha256=BtlFgf03IaD9XFesv5uzHBCm6xr71LT435m9t4MHkY8,2915
|
|
414
407
|
cartography/models/aws/ec2/volumes.py,sha256=spAi4QjoYjp5G-qNuFJdW4b-oZg7by5g5FEaqJv1mZo,5242
|
|
408
|
+
cartography/models/aws/ecr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
409
|
+
cartography/models/aws/ecr/image.py,sha256=8atk1Z13BgUOcAq3uIK-sJ9gDxwcmeCIk7x1PW9B4BE,1753
|
|
410
|
+
cartography/models/aws/ecr/repository.py,sha256=goItMJ3XnLSSk8FCMvgCpWCSsleTqdNzUT_Asvw8Yhk,2908
|
|
411
|
+
cartography/models/aws/ecr/repository_image.py,sha256=p_uV3rImyWMYl9DdLU7mpHI74xRuBd4cJvJI5wutBeM,3883
|
|
415
412
|
cartography/models/aws/ecs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
416
413
|
cartography/models/aws/ecs/clusters.py,sha256=uu-UzkSbpLu4UG5I6NsFMaThrPYl6jYe71EX8baMy1Q,2845
|
|
417
414
|
cartography/models/aws/ecs/container_definitions.py,sha256=ocJMyl6wfxbW3aPrR6xwzqP9VMpkanKA3ghqcM5BWL0,4169
|
|
@@ -429,21 +426,43 @@ cartography/models/aws/eks/clusters.py,sha256=OthI554MrYNSl-p6ArMJsSH43xKPRDSnEm
|
|
|
429
426
|
cartography/models/aws/elasticache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
430
427
|
cartography/models/aws/elasticache/cluster.py,sha256=3tx3fL3FPSp4QX3pd42sV71t6kYRl-IfvU_56S7WmGo,3227
|
|
431
428
|
cartography/models/aws/elasticache/topic.py,sha256=Rq-Hj6xo9xouRLw2NRNU1cmmVUlOP0ieRA8fT5GlZ2w,2757
|
|
429
|
+
cartography/models/aws/glue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
430
|
+
cartography/models/aws/glue/connection.py,sha256=wG7mDMoYnmAHXrLfi52_1wPHF6VcrLOKfDmZaJJti1Q,2213
|
|
432
431
|
cartography/models/aws/guardduty/__init__.py,sha256=ILQhP6R9RLgXzPKdmPzuGqhOgAXeIReUEyqKS-ZXS3k,19
|
|
433
432
|
cartography/models/aws/guardduty/findings.py,sha256=LwUE1DbDyl9c3g5fUSZxsYKQ8U44wDS4Pps-QPMyr3Y,4184
|
|
434
433
|
cartography/models/aws/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
435
434
|
cartography/models/aws/iam/instanceprofile.py,sha256=tlIkiCPX_9B9XPNAR0LcJAec8AbJq4dxgN8dgvEPXLs,2942
|
|
436
435
|
cartography/models/aws/identitycenter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
437
436
|
cartography/models/aws/identitycenter/awsidentitycenter.py,sha256=-ybcEgdZjwF0RINR_iLpmf5EOjuXYbz_CtixP-yqV30,2038
|
|
438
|
-
cartography/models/aws/identitycenter/awspermissionset.py,sha256=
|
|
437
|
+
cartography/models/aws/identitycenter/awspermissionset.py,sha256=egFas3D4tkUZhaE2uQTwLihsVtJB8QBMlgBO5Px4UYs,5294
|
|
439
438
|
cartography/models/aws/identitycenter/awsssouser.py,sha256=EWnyX5ev2aaK64YjKGuJSoknBF5b_kS5xc0kDf_0xfo,2886
|
|
440
439
|
cartography/models/aws/inspector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
441
440
|
cartography/models/aws/inspector/findings.py,sha256=ikm0vvjhGK_-BDt5VGyS4_0KwJsq81T6VgROq9HK2NE,8188
|
|
442
441
|
cartography/models/aws/inspector/packages.py,sha256=IoJT7w6n8Vx3vGGJPWKDgJLRpioqtOS5iMYZLnX7thg,2113
|
|
442
|
+
cartography/models/aws/kms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
443
|
+
cartography/models/aws/kms/aliases.py,sha256=dJizJxxPzsWuZGY77gPcX7OlPO5Y3nHOUJoqf0CNKos,2998
|
|
444
|
+
cartography/models/aws/kms/grants.py,sha256=oBSRRgme3dVejgilkBPcdPsHhyNAxGyhyQuVQmAP0fc,2623
|
|
445
|
+
cartography/models/aws/kms/keys.py,sha256=qfdc5wlN84j00Pjxq85GHQxLZ_asyNq2oD5Tj--MCZ4,3401
|
|
446
|
+
cartography/models/aws/lambda_function/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
447
|
+
cartography/models/aws/lambda_function/alias.py,sha256=4NSxgpxAIY1Zzx9ApH9v4Oli5czisRLDKKByaRWy2eQ,3023
|
|
448
|
+
cartography/models/aws/lambda_function/event_source_mapping.py,sha256=nx4niDZ-cKwMmQrieqOgmThN-ITfF-o8AB6epKDvBfs,3997
|
|
449
|
+
cartography/models/aws/lambda_function/lambda_function.py,sha256=YRwoVcfD8xpVPz2YJsgfA6Y0jEVF_PnJ0WFynMu6gXg,4027
|
|
450
|
+
cartography/models/aws/lambda_function/layer.py,sha256=kKMxm5XkAIx-VBZZX3teA6Md-jByBBdFnSoebjqq3ik,2868
|
|
451
|
+
cartography/models/aws/rds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
452
|
+
cartography/models/aws/rds/cluster.py,sha256=chxwnOU7hGOvlnyTtaHx0ZxqyJIXQJ1qWEv68ti_nqo,4330
|
|
453
|
+
cartography/models/aws/rds/instance.py,sha256=B6vMGNDR9JhheJbnHGdrU0ZFyLorw55ZIsvlkkxjw6Q,6450
|
|
454
|
+
cartography/models/aws/rds/snapshot.py,sha256=T_2kqvJW2iDjPSg2cr9amXZNTotE9Zm66GSCDteiNbQ,4821
|
|
455
|
+
cartography/models/aws/rds/subnet_group.py,sha256=0tr68MYpWwRC-P23XLh-GecMQAfrQwLZ82LfdbcLsSc,3676
|
|
456
|
+
cartography/models/aws/route53/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
457
|
+
cartography/models/aws/route53/dnsrecord.py,sha256=JNkK7S1B7rB-uag1LuLhe2Rkct5foJ2X_bmUzUZsbuo,7552
|
|
458
|
+
cartography/models/aws/route53/nameserver.py,sha256=yKH3u_PDi7C-UQ69mNPiiFppsfiFC4nN0glouAGOoN8,2511
|
|
459
|
+
cartography/models/aws/route53/subzone.py,sha256=g3k4RHm5YqH-AjIZynlF4sj64cBhkiZ2L2CwV23j_L4,1674
|
|
460
|
+
cartography/models/aws/route53/zone.py,sha256=6yNSdZcmJZOzGjVG7HSC35P9fFKaxYTUp_O_Ptzt1Fk,2011
|
|
443
461
|
cartography/models/aws/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
444
462
|
cartography/models/aws/s3/account_public_access_block.py,sha256=L6AS0OncfSOWHP4pOXshnJFDPwnWqywzUIeUppJcw-Q,2256
|
|
445
463
|
cartography/models/aws/s3/notification.py,sha256=SF1VvCP_2WVh8K29d4ms8MUcg9AyO_MN8vCgzLFlGAs,1017
|
|
446
464
|
cartography/models/aws/secretsmanager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
465
|
+
cartography/models/aws/secretsmanager/secret.py,sha256=q1uSqqL6wCvSJuCooORqHg6uMXiWxiGZYhDzYtF54wo,3928
|
|
447
466
|
cartography/models/aws/secretsmanager/secret_version.py,sha256=Ah4b9BjgL24MhmxRV-HarvmNs_uCRNVMkxgvzIEp9uk,4167
|
|
448
467
|
cartography/models/aws/sns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
449
468
|
cartography/models/aws/sns/topic.py,sha256=_Lcu7_c_UCUcPKEo5-kCdX3fAOkar_YKZbLmonX3BR8,2349
|
|
@@ -487,11 +506,13 @@ cartography/models/duo/web_authn_credential.py,sha256=nCdonZFyShuE5-CnI2Vxiu5BZ0
|
|
|
487
506
|
cartography/models/entra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
488
507
|
cartography/models/entra/app_role_assignment.py,sha256=BvZBWq3jd1Fw448dmIXQpHT-mBOqevNY_my-iQHpZp8,4618
|
|
489
508
|
cartography/models/entra/application.py,sha256=ZNVY0a0T2nmdoVj2i5Xri0J8oIR5d9HVcLAl0yLG6s8,1968
|
|
490
|
-
cartography/models/entra/group.py,sha256=
|
|
509
|
+
cartography/models/entra/group.py,sha256=Ora5w7t7D7m98EVjknchsAmoEhEtlMJAeziCvkbYtAU,4859
|
|
491
510
|
cartography/models/entra/ou.py,sha256=YmtW1Cp_XX29uzbunhEGl073AzV6PZsQtLs_MR-ACNU,2056
|
|
492
511
|
cartography/models/entra/tenant.py,sha256=abpNTvOtXHgdrU-y7q6jt--odcq1eRsT2j5nMdVy_Gw,1793
|
|
493
|
-
cartography/models/entra/user.py,sha256=
|
|
512
|
+
cartography/models/entra/user.py,sha256=UIZ3y4JRMfU5QgcOSGAdURH1wKvtQwicDw1q48AbhX8,3315
|
|
494
513
|
cartography/models/gcp/iam.py,sha256=k6egP-DHvMX18QcLuwklxqLZXd4YPMhAs5-qWWloqJ4,3071
|
|
514
|
+
cartography/models/gcp/compute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
515
|
+
cartography/models/gcp/compute/vpc.py,sha256=bbFfo_Rh7brXvNqY8fx-jz9zUDtPew_Wcq-WGv9j9cI,2131
|
|
495
516
|
cartography/models/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
496
517
|
cartography/models/github/dependencies.py,sha256=QHUgWSLTkSdhTxcgx5ct-yD2-Il7plg3N-fcZGZpKM4,3143
|
|
497
518
|
cartography/models/github/manifests.py,sha256=1trwgECCjvZKS63z2k8mB55Fa8d2l-uU7HSgfL95iwA,2078
|
|
@@ -557,9 +578,9 @@ cartography/models/trivy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
557
578
|
cartography/models/trivy/findings.py,sha256=SgI_h1aRyR20uAHvuXIZ1T6r4IZJt6SVhxRaF2bTsm0,3085
|
|
558
579
|
cartography/models/trivy/fix.py,sha256=ho9ENVl9HSXqyggyCwR6ilkOBKDxpQ7rGibo_j21NA4,2587
|
|
559
580
|
cartography/models/trivy/package.py,sha256=IwO1RZZ-MFRtNbt8Cq6YFl6fdNJMFmULnJkkK8Q4rL4,2809
|
|
560
|
-
cartography-0.
|
|
561
|
-
cartography-0.
|
|
562
|
-
cartography-0.
|
|
563
|
-
cartography-0.
|
|
564
|
-
cartography-0.
|
|
565
|
-
cartography-0.
|
|
581
|
+
cartography-0.109.0rc2.dist-info/licenses/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
|
|
582
|
+
cartography-0.109.0rc2.dist-info/METADATA,sha256=x8x0Hg37Mn7ctpEhcGeHqxPkCZkB7CbuM-3xf3AJHvs,12930
|
|
583
|
+
cartography-0.109.0rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
584
|
+
cartography-0.109.0rc2.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
|
|
585
|
+
cartography-0.109.0rc2.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
|
|
586
|
+
cartography-0.109.0rc2.dist-info/RECORD,,
|