cartography 0.109.0rc1__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 -15
- 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/resources.py +2 -0
- cartography/intel/aws/route53.py +334 -332
- 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/util.py +8 -1
- {cartography-0.109.0rc1.dist-info → cartography-0.109.0rc2.dist-info}/METADATA +2 -2
- {cartography-0.109.0rc1.dist-info → cartography-0.109.0rc2.dist-info}/RECORD +38 -23
- 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_kms_details.json +0 -10
- {cartography-0.109.0rc1.dist-info → cartography-0.109.0rc2.dist-info}/WHEEL +0 -0
- {cartography-0.109.0rc1.dist-info → cartography-0.109.0rc2.dist-info}/entry_points.txt +0 -0
- {cartography-0.109.0rc1.dist-info → cartography-0.109.0rc2.dist-info}/licenses/LICENSE +0 -0
- {cartography-0.109.0rc1.dist-info → cartography-0.109.0rc2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,214 @@
|
|
|
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 OtherRelationships
|
|
12
|
+
from cartography.models.core.relationships import TargetNodeMatcher
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass(frozen=True)
|
|
16
|
+
class AWSDNSRecordNodeProperties(CartographyNodeProperties):
|
|
17
|
+
id: PropertyRef = PropertyRef("id")
|
|
18
|
+
name: PropertyRef = PropertyRef("name", extra_index=True)
|
|
19
|
+
type: PropertyRef = PropertyRef("type")
|
|
20
|
+
value: PropertyRef = PropertyRef("value")
|
|
21
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@dataclass(frozen=True)
|
|
25
|
+
class AWSDNSRecordToZoneRelProperties(CartographyRelProperties):
|
|
26
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass(frozen=True)
|
|
30
|
+
class AWSDNSRecordToZoneRel(CartographyRelSchema):
|
|
31
|
+
target_node_label: str = "AWSDNSZone"
|
|
32
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
33
|
+
{"zoneid": PropertyRef("zoneid")}
|
|
34
|
+
)
|
|
35
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
36
|
+
rel_label: str = "MEMBER_OF_DNS_ZONE"
|
|
37
|
+
properties: AWSDNSRecordToZoneRelProperties = AWSDNSRecordToZoneRelProperties()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@dataclass(frozen=True)
|
|
41
|
+
class AWSDNSRecordToAWSAccountRelProperties(CartographyRelProperties):
|
|
42
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@dataclass(frozen=True)
|
|
46
|
+
class AWSDNSRecordToAWSAccountRel(CartographyRelSchema):
|
|
47
|
+
target_node_label: str = "AWSAccount"
|
|
48
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
49
|
+
{"id": PropertyRef("AWS_ID", set_in_kwargs=True)}
|
|
50
|
+
)
|
|
51
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
52
|
+
rel_label: str = "RESOURCE"
|
|
53
|
+
properties: AWSDNSRecordToAWSAccountRelProperties = (
|
|
54
|
+
AWSDNSRecordToAWSAccountRelProperties()
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@dataclass(frozen=True)
|
|
59
|
+
class AWSDNSRecordToNameServerRelProperties(CartographyRelProperties):
|
|
60
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@dataclass(frozen=True)
|
|
64
|
+
class AWSDNSRecordToNameServerRel(CartographyRelSchema):
|
|
65
|
+
target_node_label: str = "NameServer"
|
|
66
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
67
|
+
{
|
|
68
|
+
"id": PropertyRef("servers", one_to_many=True),
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
72
|
+
rel_label: str = "DNS_POINTS_TO"
|
|
73
|
+
properties: AWSDNSRecordToNameServerRelProperties = (
|
|
74
|
+
AWSDNSRecordToNameServerRelProperties()
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@dataclass(frozen=True)
|
|
79
|
+
class AWSDNSRecordToEC2InstanceRelProperties(CartographyRelProperties):
|
|
80
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@dataclass(frozen=True)
|
|
84
|
+
class AWSDNSRecordToEC2InstanceRel(CartographyRelSchema):
|
|
85
|
+
target_node_label: str = "EC2Instance"
|
|
86
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
87
|
+
{
|
|
88
|
+
"publicdnsname": PropertyRef("value"),
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
92
|
+
rel_label: str = "DNS_POINTS_TO"
|
|
93
|
+
properties: AWSDNSRecordToEC2InstanceRelProperties = (
|
|
94
|
+
AWSDNSRecordToEC2InstanceRelProperties()
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
@dataclass(frozen=True)
|
|
99
|
+
class AWSDNSRecordToLoadBalancerRelProperties(CartographyRelProperties):
|
|
100
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
@dataclass(frozen=True)
|
|
104
|
+
class AWSDNSRecordToLoadBalancerRel(CartographyRelSchema):
|
|
105
|
+
target_node_label: str = "LoadBalancer"
|
|
106
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
107
|
+
{
|
|
108
|
+
"dnsname": PropertyRef("value"),
|
|
109
|
+
}
|
|
110
|
+
)
|
|
111
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
112
|
+
rel_label: str = "DNS_POINTS_TO"
|
|
113
|
+
properties: AWSDNSRecordToLoadBalancerRelProperties = (
|
|
114
|
+
AWSDNSRecordToLoadBalancerRelProperties()
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
@dataclass(frozen=True)
|
|
119
|
+
class AWSDNSRecordToLoadBalancerV2RelProperties(CartographyRelProperties):
|
|
120
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
@dataclass(frozen=True)
|
|
124
|
+
class AWSDNSRecordToLoadBalancerV2Rel(CartographyRelSchema):
|
|
125
|
+
target_node_label: str = "LoadBalancerV2"
|
|
126
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
127
|
+
{
|
|
128
|
+
"dnsname": PropertyRef("value"),
|
|
129
|
+
}
|
|
130
|
+
)
|
|
131
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
132
|
+
rel_label: str = "DNS_POINTS_TO"
|
|
133
|
+
properties: AWSDNSRecordToLoadBalancerV2RelProperties = (
|
|
134
|
+
AWSDNSRecordToLoadBalancerV2RelProperties()
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
@dataclass(frozen=True)
|
|
139
|
+
class AWSDNSRecordToESDomainRelProperties(CartographyRelProperties):
|
|
140
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
@dataclass(frozen=True)
|
|
144
|
+
class AWSDNSRecordToESDomainRel(CartographyRelSchema):
|
|
145
|
+
target_node_label: str = "ESDomain"
|
|
146
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
147
|
+
{
|
|
148
|
+
"endpoint": PropertyRef("value"),
|
|
149
|
+
}
|
|
150
|
+
)
|
|
151
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
152
|
+
rel_label: str = "DNS_POINTS_TO"
|
|
153
|
+
properties: AWSDNSRecordToESDomainRelProperties = (
|
|
154
|
+
AWSDNSRecordToESDomainRelProperties()
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
@dataclass(frozen=True)
|
|
159
|
+
class AWSDNSRecordToDNSRecordRelProperties(CartographyRelProperties):
|
|
160
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
@dataclass(frozen=True)
|
|
164
|
+
class AWSDNSRecordToDNSRecordRel(CartographyRelSchema):
|
|
165
|
+
target_node_label: str = "AWSDNSRecord"
|
|
166
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
167
|
+
{
|
|
168
|
+
"name": PropertyRef("value"),
|
|
169
|
+
}
|
|
170
|
+
)
|
|
171
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
172
|
+
rel_label: str = "DNS_POINTS_TO"
|
|
173
|
+
properties: AWSDNSRecordToDNSRecordRelProperties = (
|
|
174
|
+
AWSDNSRecordToDNSRecordRelProperties()
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
@dataclass(frozen=True)
|
|
179
|
+
class AWSDNSRecordToIpRelProperties(CartographyRelProperties):
|
|
180
|
+
lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
@dataclass(frozen=True)
|
|
184
|
+
class AWSDNSRecordToIpRel(CartographyRelSchema):
|
|
185
|
+
target_node_label: str = "Ip"
|
|
186
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
187
|
+
{
|
|
188
|
+
"id": PropertyRef("ip_addresses", one_to_many=True),
|
|
189
|
+
}
|
|
190
|
+
)
|
|
191
|
+
direction: LinkDirection = LinkDirection.OUTWARD
|
|
192
|
+
rel_label: str = "DNS_POINTS_TO"
|
|
193
|
+
properties: AWSDNSRecordToIpRelProperties = AWSDNSRecordToIpRelProperties()
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
class AWSDNSRecordSchema(CartographyNodeSchema):
|
|
197
|
+
label: str = "AWSDNSRecord"
|
|
198
|
+
properties: AWSDNSRecordNodeProperties = AWSDNSRecordNodeProperties()
|
|
199
|
+
extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(["DNSRecord"])
|
|
200
|
+
sub_resource_relationship: AWSDNSRecordToAWSAccountRel = (
|
|
201
|
+
AWSDNSRecordToAWSAccountRel()
|
|
202
|
+
)
|
|
203
|
+
other_relationships: OtherRelationships = OtherRelationships(
|
|
204
|
+
[
|
|
205
|
+
AWSDNSRecordToNameServerRel(),
|
|
206
|
+
AWSDNSRecordToEC2InstanceRel(),
|
|
207
|
+
AWSDNSRecordToLoadBalancerRel(),
|
|
208
|
+
AWSDNSRecordToLoadBalancerV2Rel(),
|
|
209
|
+
AWSDNSRecordToESDomainRel(),
|
|
210
|
+
AWSDNSRecordToDNSRecordRel(),
|
|
211
|
+
AWSDNSRecordToZoneRel(),
|
|
212
|
+
AWSDNSRecordToIpRel(),
|
|
213
|
+
]
|
|
214
|
+
)
|
|
@@ -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()
|
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.109.
|
|
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,14 +41,9 @@ 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
|
|
@@ -67,7 +61,6 @@ cartography/data/jobs/cleanup/aws_ingest_ec2_auto_scaling_groups_cleanup.json,sh
|
|
|
67
61
|
cartography/data/jobs/cleanup/aws_ingest_load_balancers_cleanup.json,sha256=1vidNCrITt-_bxw5lsSzyqGsuyWiNhI6-bnuv5lMvRI,1729
|
|
68
62
|
cartography/data/jobs/cleanup/aws_ingest_load_balancers_v2_cleanup.json,sha256=kIMc5YTkWDOLdHCOAHPb7Q8Oz9pP6GzGO9gjBo0ZhR0,1596
|
|
69
63
|
cartography/data/jobs/cleanup/aws_ingest_subnets_cleanup.json,sha256=HtTXrA50PzBJ6LFnKZkO4hnnKxKqF6xUwqUrtFrp29Y,527
|
|
70
|
-
cartography/data/jobs/cleanup/aws_kms_details.json,sha256=awluz0DhiAcdABiTYL9M8EUQz2FAuXVpu8lICRpTEnU,319
|
|
71
64
|
cartography/data/jobs/cleanup/aws_post_ingestion_principals_cleanup.json,sha256=h3A6jNk7DGLFq6ob06-V9qzuYN-CltyHq_r2Gj8DqCI,266
|
|
72
65
|
cartography/data/jobs/cleanup/aws_s3_details.json,sha256=-GEnBicRjLBNEDS2k2MzE2PUFbQ5WmxXUbYeVTvlJzQ,316
|
|
73
66
|
cartography/data/jobs/cleanup/azure_cosmosdb_cassandra_keyspace_cleanup.json,sha256=_WIFvR-OGvG2q163NKsNXPqbDATz7rv7FLUTlWtnvK4,1358
|
|
@@ -166,20 +159,21 @@ cartography/intel/aws/eks.py,sha256=bPItyEj5q0nSDltJrr0S5MIrTPV0fK3xkqF6EV8fcqA,
|
|
|
166
159
|
cartography/intel/aws/elasticache.py,sha256=ePTi-49Lbw94L6m7id5dUk1cG6FZRizFxojxKZBk8XY,5552
|
|
167
160
|
cartography/intel/aws/elasticsearch.py,sha256=8X_Rp1zejkvXho0Zz_Cr4g-w9IpompdYRc-YS595Aso,8645
|
|
168
161
|
cartography/intel/aws/emr.py,sha256=EJoKjHQP7-F_A1trUNU05Sb42yNR1i0C9VIpGcCfAXw,3662
|
|
162
|
+
cartography/intel/aws/glue.py,sha256=-AQh1PIbWzi7y-uZbx2yaHnrEpMsENSBX-pGUFqc6xQ,3349
|
|
169
163
|
cartography/intel/aws/guardduty.py,sha256=QpwWisz3TzbOxkRKNjByk4WWDCCMXr8jgNOgOdjQM5g,8532
|
|
170
164
|
cartography/intel/aws/iam.py,sha256=bkyIzWw2OC4MHxuoCvTiZ5eEGEQhz2asiUgY_tkX2GY,34322
|
|
171
165
|
cartography/intel/aws/iam_instance_profiles.py,sha256=QUyu30xid60BFaemp-q0y9FgNsHaIQyQnQ8gHUzWC4k,2211
|
|
172
|
-
cartography/intel/aws/identitycenter.py,sha256=
|
|
166
|
+
cartography/intel/aws/identitycenter.py,sha256=Q1k1BuBmtA85s5tHGS7lvgGxQ-H-piIyiWgyevFL92U,11161
|
|
173
167
|
cartography/intel/aws/inspector.py,sha256=G8a60uuFCuENvR2DNJ9VmWEJwG9UDENaC1buULvuSZc,12415
|
|
174
|
-
cartography/intel/aws/kms.py,sha256=
|
|
175
|
-
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
|
|
176
170
|
cartography/intel/aws/organizations.py,sha256=m5qk60N6pe7iKLN-Rtfg9aYv7OozoloSkcsuePd-RGs,4680
|
|
177
171
|
cartography/intel/aws/permission_relationships.py,sha256=LTmnHS6zk9hcdL548V5ka3Ey-6NsFjy1JYZTfRyB9Ys,15647
|
|
178
|
-
cartography/intel/aws/rds.py,sha256=
|
|
172
|
+
cartography/intel/aws/rds.py,sha256=are2LsWe8tM4UkCaGVnXS7F-ZVawklpc9h4lsM-fpGY,16173
|
|
179
173
|
cartography/intel/aws/redshift.py,sha256=FGcCzcnm1OOrbJvLqtR1DwWVn1pt4Y6_eKkTUERT7Ws,7108
|
|
180
174
|
cartography/intel/aws/resourcegroupstaggingapi.py,sha256=TkMlUKLrRBWAyeUu-cHKce7TFkwBnWV_Im8DONgnLGU,12852
|
|
181
|
-
cartography/intel/aws/resources.py,sha256=
|
|
182
|
-
cartography/intel/aws/route53.py,sha256
|
|
175
|
+
cartography/intel/aws/resources.py,sha256=R4pDieVCbvvz_gAde606vnxFafKWjE2YfyE8-fv6R7o,4280
|
|
176
|
+
cartography/intel/aws/route53.py,sha256=27ocRlNnxiXi7M7eYLUCVBNwaLyArX4CAExoOBxGl3Y,14294
|
|
183
177
|
cartography/intel/aws/s3.py,sha256=Da_5NYvQ7MN1AIN7CK9XXlVZo0fPdNHkqBZY1JWnHH4,33598
|
|
184
178
|
cartography/intel/aws/s3accountpublicaccessblock.py,sha256=XkqHnbj9ODRcc7Rbl4swi03qvw_T-7Bnx3BHpTmlxio,4688
|
|
185
179
|
cartography/intel/aws/secretsmanager.py,sha256=xM6znqD0cKNJbAhO2Zg3svyO7YUOqPFbunhODAVXMgw,7777
|
|
@@ -432,17 +426,38 @@ cartography/models/aws/eks/clusters.py,sha256=OthI554MrYNSl-p6ArMJsSH43xKPRDSnEm
|
|
|
432
426
|
cartography/models/aws/elasticache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
433
427
|
cartography/models/aws/elasticache/cluster.py,sha256=3tx3fL3FPSp4QX3pd42sV71t6kYRl-IfvU_56S7WmGo,3227
|
|
434
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
|
|
435
431
|
cartography/models/aws/guardduty/__init__.py,sha256=ILQhP6R9RLgXzPKdmPzuGqhOgAXeIReUEyqKS-ZXS3k,19
|
|
436
432
|
cartography/models/aws/guardduty/findings.py,sha256=LwUE1DbDyl9c3g5fUSZxsYKQ8U44wDS4Pps-QPMyr3Y,4184
|
|
437
433
|
cartography/models/aws/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
438
434
|
cartography/models/aws/iam/instanceprofile.py,sha256=tlIkiCPX_9B9XPNAR0LcJAec8AbJq4dxgN8dgvEPXLs,2942
|
|
439
435
|
cartography/models/aws/identitycenter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
440
436
|
cartography/models/aws/identitycenter/awsidentitycenter.py,sha256=-ybcEgdZjwF0RINR_iLpmf5EOjuXYbz_CtixP-yqV30,2038
|
|
441
|
-
cartography/models/aws/identitycenter/awspermissionset.py,sha256=
|
|
437
|
+
cartography/models/aws/identitycenter/awspermissionset.py,sha256=egFas3D4tkUZhaE2uQTwLihsVtJB8QBMlgBO5Px4UYs,5294
|
|
442
438
|
cartography/models/aws/identitycenter/awsssouser.py,sha256=EWnyX5ev2aaK64YjKGuJSoknBF5b_kS5xc0kDf_0xfo,2886
|
|
443
439
|
cartography/models/aws/inspector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
444
440
|
cartography/models/aws/inspector/findings.py,sha256=ikm0vvjhGK_-BDt5VGyS4_0KwJsq81T6VgROq9HK2NE,8188
|
|
445
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
|
|
446
461
|
cartography/models/aws/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
447
462
|
cartography/models/aws/s3/account_public_access_block.py,sha256=L6AS0OncfSOWHP4pOXshnJFDPwnWqywzUIeUppJcw-Q,2256
|
|
448
463
|
cartography/models/aws/s3/notification.py,sha256=SF1VvCP_2WVh8K29d4ms8MUcg9AyO_MN8vCgzLFlGAs,1017
|
|
@@ -563,9 +578,9 @@ cartography/models/trivy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
563
578
|
cartography/models/trivy/findings.py,sha256=SgI_h1aRyR20uAHvuXIZ1T6r4IZJt6SVhxRaF2bTsm0,3085
|
|
564
579
|
cartography/models/trivy/fix.py,sha256=ho9ENVl9HSXqyggyCwR6ilkOBKDxpQ7rGibo_j21NA4,2587
|
|
565
580
|
cartography/models/trivy/package.py,sha256=IwO1RZZ-MFRtNbt8Cq6YFl6fdNJMFmULnJkkK8Q4rL4,2809
|
|
566
|
-
cartography-0.109.
|
|
567
|
-
cartography-0.109.
|
|
568
|
-
cartography-0.109.
|
|
569
|
-
cartography-0.109.
|
|
570
|
-
cartography-0.109.
|
|
571
|
-
cartography-0.109.
|
|
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,,
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"statements": [
|
|
3
|
-
{
|
|
4
|
-
"query": "MATCH (n:AWSDNSRecord)-[:MEMBER_OF_DNS_ZONE]->(:AWSDNSZone)<-[: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
|
-
"__comment__": "cleanup AWS DNS Records linked to current account"
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
"query": "MATCH (n:AWSDNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE n.lastupdated <> $UPDATE_TAG WITH n LIMIT $LIMIT_SIZE DETACH DELETE (n)",
|
|
11
|
-
"iterative": true,
|
|
12
|
-
"iterationsize": 100
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"query": "MATCH (n:NameServer)-[:NAMESERVER]->(:DNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE n.lastupdated <> $UPDATE_TAG WITH n LIMIT $LIMIT_SIZE DETACH DELETE (n)",
|
|
16
|
-
"iterative": true,
|
|
17
|
-
"iterationsize": 100
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"query": "MATCH (:AWSDNSRecord)<-[r:DNS_POINTS_TO]-(:AWSDNSRecord)-[:MEMBER_OF_DNS_ZONE]->(:AWSDNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
21
|
-
"iterative": true,
|
|
22
|
-
"iterationsize": 100,
|
|
23
|
-
"__comment__": "Clean up AWSDNSRecords pointing to other AWSDNSRecords within the current AWS account"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"query": "MATCH (:LoadBalancer)<-[r:DNS_POINTS_TO]-(:AWSDNSRecord)-[:MEMBER_OF_DNS_ZONE]->(:AWSDNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
27
|
-
"iterative": true,
|
|
28
|
-
"iterationsize": 100,
|
|
29
|
-
"__comment__": "Clean up AWSDNSRecords pointing to LoadBalancers within the current AWS account"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"query": "MATCH (:EC2Instance)<-[r:DNS_POINTS_TO]-(:AWSDNSRecord)-[:MEMBER_OF_DNS_ZONE]->(:AWSDNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
33
|
-
"iterative": true,
|
|
34
|
-
"iterationsize": 100,
|
|
35
|
-
"__comment__": "Clean up AWSDNSRecords pointing to EC2 Instances within the current AWS account"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"query": "MATCH (:NameServer)<-[r:DNS_POINTS_TO]-(:AWSDNSRecord)-[:MEMBER_OF_DNS_ZONE]->(:AWSDNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
39
|
-
"iterative": true,
|
|
40
|
-
"iterationsize": 100,
|
|
41
|
-
"__comment__": "Clean up AWSDNSRecords pointing to NameServers within the current AWS account"
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"query": "MATCH (:AWSDNSZone)-[r:NAMESERVER]->(:NameServer)-[:NAMESERVER]->(:DNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
45
|
-
"iterative": true,
|
|
46
|
-
"iterationsize": 100
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"query": "MATCH (:AWSDNSZone)<-[r:SUBZONE]-(:AWSDNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
50
|
-
"iterative": true,
|
|
51
|
-
"iterationsize": 100
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"query": "MATCH (:ESDomain)<-[r:DNS_POINTS_TO]-(:DNSRecord)-[:MEMBER_OF_DNS_ZONE]->(:AWSDNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
55
|
-
"iterative": true,
|
|
56
|
-
"iterationsize": 100
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"query": "MATCH (:Ip)<-[r:DNS_POINTS_TO]-(:AWSDNSRecord)-[:MEMBER_OF_DNS_ZONE]->(:AWSDNSZone)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
60
|
-
"iterative": true,
|
|
61
|
-
"iterationsize": 100
|
|
62
|
-
}
|
|
63
|
-
],
|
|
64
|
-
"name": "cleanup AWS DNS"
|
|
65
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"statements": [
|
|
3
|
-
|
|
4
|
-
{
|
|
5
|
-
"query": "MATCH (:AWSAccount{id: $AWS_ID})-[:RESOURCE]->(:AWSSSOUser)<-[r:CAN_ASSUME_IDENTITY]-(:OktaUser) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r) RETURN COUNT(*) as TotalDeleted",
|
|
6
|
-
"iterative": true,
|
|
7
|
-
"iterationsize": 100
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
"query": "MATCH (:AWSAccount{id: $AWS_ID})-[:RESOURCE]->(:AWSRole)-[r:ALLOWED_BY]->(:AWSSSOUser) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r) RETURN COUNT(*) as TotalDeleted",
|
|
11
|
-
"iterative": true,
|
|
12
|
-
"iterationsize": 100
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
"name": "cleanup AWS Identity Center Instances and Related Data"
|
|
16
|
-
}
|