@cloud-copilot/iam-lens 0.1.7 → 0.1.8
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.
- package/README.md +251 -1
- package/dist/cjs/cli.js +53 -5
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/collect/client.d.ts +37 -2
- package/dist/cjs/collect/client.d.ts.map +1 -1
- package/dist/cjs/collect/client.js +126 -27
- package/dist/cjs/collect/client.js.map +1 -1
- package/dist/cjs/principals.d.ts +0 -5
- package/dist/cjs/principals.d.ts.map +1 -1
- package/dist/cjs/principals.js +0 -9
- package/dist/cjs/principals.js.map +1 -1
- package/dist/cjs/resources.js +1 -1
- package/dist/cjs/resources.js.map +1 -1
- package/dist/cjs/{contextKeys.d.ts → simulate/contextKeys.d.ts} +1 -1
- package/dist/cjs/simulate/contextKeys.d.ts.map +1 -0
- package/dist/cjs/{contextKeys.js → simulate/contextKeys.js} +1 -1
- package/dist/cjs/simulate/contextKeys.js.map +1 -0
- package/dist/cjs/{simulate.d.ts → simulate/simulate.d.ts} +4 -2
- package/dist/cjs/simulate/simulate.d.ts.map +1 -0
- package/dist/cjs/{simulate.js → simulate/simulate.js} +38 -20
- package/dist/cjs/simulate/simulate.js.map +1 -0
- package/dist/cjs/test-datasets/testClient.d.ts +9 -0
- package/dist/cjs/test-datasets/testClient.d.ts.map +1 -0
- package/dist/cjs/test-datasets/testClient.js +28 -0
- package/dist/cjs/test-datasets/testClient.js.map +1 -0
- package/dist/cjs/utils/arn.d.ts +22 -0
- package/dist/cjs/utils/arn.d.ts.map +1 -0
- package/dist/cjs/utils/arn.js +49 -0
- package/dist/cjs/utils/arn.js.map +1 -0
- package/dist/cjs/utils/sts.d.ts +2 -0
- package/dist/cjs/utils/sts.d.ts.map +1 -0
- package/dist/cjs/utils/sts.js +9 -0
- package/dist/cjs/utils/sts.js.map +1 -0
- package/dist/cjs/whoCan/whoCan.d.ts +54 -0
- package/dist/cjs/whoCan/whoCan.d.ts.map +1 -0
- package/dist/cjs/whoCan/whoCan.js +320 -0
- package/dist/cjs/whoCan/whoCan.js.map +1 -0
- package/dist/esm/cli.js +53 -5
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/collect/client.d.ts +37 -2
- package/dist/esm/collect/client.d.ts.map +1 -1
- package/dist/esm/collect/client.js +125 -27
- package/dist/esm/collect/client.js.map +1 -1
- package/dist/esm/principals.d.ts +0 -5
- package/dist/esm/principals.d.ts.map +1 -1
- package/dist/esm/principals.js +0 -8
- package/dist/esm/principals.js.map +1 -1
- package/dist/esm/resources.js +1 -1
- package/dist/esm/resources.js.map +1 -1
- package/dist/esm/{contextKeys.d.ts → simulate/contextKeys.d.ts} +1 -1
- package/dist/esm/simulate/contextKeys.d.ts.map +1 -0
- package/dist/esm/{contextKeys.js → simulate/contextKeys.js} +1 -1
- package/dist/esm/simulate/contextKeys.js.map +1 -0
- package/dist/esm/{simulate.d.ts → simulate/simulate.d.ts} +4 -2
- package/dist/esm/simulate/simulate.d.ts.map +1 -0
- package/dist/esm/{simulate.js → simulate/simulate.js} +37 -20
- package/dist/esm/simulate/simulate.js.map +1 -0
- package/dist/esm/test-datasets/testClient.d.ts +9 -0
- package/dist/esm/test-datasets/testClient.d.ts.map +1 -0
- package/dist/esm/test-datasets/testClient.js +25 -0
- package/dist/esm/test-datasets/testClient.js.map +1 -0
- package/dist/esm/utils/arn.d.ts +22 -0
- package/dist/esm/utils/arn.d.ts.map +1 -0
- package/dist/esm/utils/arn.js +43 -0
- package/dist/esm/utils/arn.js.map +1 -0
- package/dist/esm/utils/sts.d.ts +2 -0
- package/dist/esm/utils/sts.d.ts.map +1 -0
- package/dist/esm/utils/sts.js +6 -0
- package/dist/esm/utils/sts.js.map +1 -0
- package/dist/esm/whoCan/whoCan.d.ts +54 -0
- package/dist/esm/whoCan/whoCan.d.ts.map +1 -0
- package/dist/esm/whoCan/whoCan.js +311 -0
- package/dist/esm/whoCan/whoCan.js.map +1 -0
- package/package.json +1 -1
- package/dist/cjs/accounts.d.ts +0 -3
- package/dist/cjs/accounts.d.ts.map +0 -1
- package/dist/cjs/accounts.js +0 -8
- package/dist/cjs/accounts.js.map +0 -1
- package/dist/cjs/contextKeys.d.ts.map +0 -1
- package/dist/cjs/contextKeys.js.map +0 -1
- package/dist/cjs/simulate.d.ts.map +0 -1
- package/dist/cjs/simulate.js.map +0 -1
- package/dist/esm/accounts.d.ts +0 -3
- package/dist/esm/accounts.d.ts.map +0 -1
- package/dist/esm/accounts.js +0 -5
- package/dist/esm/accounts.js.map +0 -1
- package/dist/esm/contextKeys.d.ts.map +0 -1
- package/dist/esm/contextKeys.js.map +0 -1
- package/dist/esm/simulate.d.ts.map +0 -1
- package/dist/esm/simulate.js.map +0 -1
|
@@ -4,8 +4,22 @@ exports.IamCollectClient = void 0;
|
|
|
4
4
|
const iam_utils_1 = require("@cloud-copilot/iam-utils");
|
|
5
5
|
class IamCollectClient {
|
|
6
6
|
storageClient;
|
|
7
|
-
|
|
7
|
+
_cache = {};
|
|
8
|
+
_enableCaching;
|
|
9
|
+
constructor(storageClient, clientOptions) {
|
|
8
10
|
this.storageClient = storageClient;
|
|
11
|
+
this._enableCaching = clientOptions?.enableCaching !== false;
|
|
12
|
+
}
|
|
13
|
+
// Generic cache helper
|
|
14
|
+
async withCache(cacheKey, fetcher) {
|
|
15
|
+
if (this._enableCaching && cacheKey in this._cache) {
|
|
16
|
+
return this._cache[cacheKey];
|
|
17
|
+
}
|
|
18
|
+
const value = await fetcher();
|
|
19
|
+
if (this._enableCaching) {
|
|
20
|
+
this._cache[cacheKey] = value;
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
9
23
|
}
|
|
10
24
|
/**
|
|
11
25
|
* Checks if an account exists in the store.
|
|
@@ -16,6 +30,14 @@ class IamCollectClient {
|
|
|
16
30
|
const accounts = await this.storageClient.listAccountIds();
|
|
17
31
|
return accounts.includes(accountId);
|
|
18
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Get all account IDs in the store.
|
|
35
|
+
*
|
|
36
|
+
* @returns all account IDs in the store
|
|
37
|
+
*/
|
|
38
|
+
async allAccounts() {
|
|
39
|
+
return this.storageClient.listAccountIds();
|
|
40
|
+
}
|
|
19
41
|
/**
|
|
20
42
|
* Checks if a principal exists in the store.
|
|
21
43
|
* @param principalArn The ARN of the principal to check.
|
|
@@ -41,36 +63,39 @@ class IamCollectClient {
|
|
|
41
63
|
* @returns The policy hierarchy for the account.
|
|
42
64
|
*/
|
|
43
65
|
async getOrgPolicyHierarchyForAccount(accountId, policyType) {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
66
|
+
const cacheKey = `orgPolicyHierarchy:${accountId}:${policyType}`;
|
|
67
|
+
return this.withCache(cacheKey, async () => {
|
|
68
|
+
const orgId = await this.getOrgIdForAccount(accountId);
|
|
69
|
+
if (!orgId) {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
// SCPs and RCPs do not apply to the root account
|
|
73
|
+
const orgMetadata = await this.getOrganizationMetadata(orgId);
|
|
74
|
+
if (orgMetadata.rootAccountId === accountId) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
const policyHierarchy = [];
|
|
78
|
+
const orgHierarchy = await this.getOrgUnitHierarchyForAccount(accountId);
|
|
79
|
+
for (const ouId of orgHierarchy) {
|
|
80
|
+
const policies = await this.getOrgPoliciesForOrgUnit(orgId, ouId, policyType);
|
|
81
|
+
policyHierarchy.push({
|
|
82
|
+
orgIdentifier: ouId,
|
|
83
|
+
policies: policies.map((p) => ({
|
|
84
|
+
name: p.arn,
|
|
85
|
+
policy: p.policy
|
|
86
|
+
}))
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
const accountPolicies = await this.getOrgPoliciesForAccount(accountId, policyType);
|
|
57
90
|
policyHierarchy.push({
|
|
58
|
-
orgIdentifier:
|
|
59
|
-
policies:
|
|
91
|
+
orgIdentifier: accountId,
|
|
92
|
+
policies: accountPolicies.map((p) => ({
|
|
60
93
|
name: p.arn,
|
|
61
94
|
policy: p.policy
|
|
62
95
|
}))
|
|
63
96
|
});
|
|
64
|
-
|
|
65
|
-
const accountPolicies = await this.getOrgPoliciesForAccount(accountId, policyType);
|
|
66
|
-
policyHierarchy.push({
|
|
67
|
-
orgIdentifier: accountId,
|
|
68
|
-
policies: accountPolicies.map((p) => ({
|
|
69
|
-
name: p.arn,
|
|
70
|
-
policy: p.policy
|
|
71
|
-
}))
|
|
97
|
+
return policyHierarchy;
|
|
72
98
|
});
|
|
73
|
-
return policyHierarchy;
|
|
74
99
|
}
|
|
75
100
|
/**
|
|
76
101
|
* Gets the OUs for an account. The first element is the root,
|
|
@@ -105,7 +130,7 @@ class IamCollectClient {
|
|
|
105
130
|
if (!orgId) {
|
|
106
131
|
return undefined;
|
|
107
132
|
}
|
|
108
|
-
const accounts = await this.getAccountDataForOrg(orgId);
|
|
133
|
+
const accounts = (await this.getAccountDataForOrg(orgId));
|
|
109
134
|
return accounts[accountId].ou;
|
|
110
135
|
}
|
|
111
136
|
/**
|
|
@@ -138,7 +163,7 @@ class IamCollectClient {
|
|
|
138
163
|
if (!orgId) {
|
|
139
164
|
return [];
|
|
140
165
|
}
|
|
141
|
-
const accounts = await this.getAccountDataForOrg(orgId);
|
|
166
|
+
const accounts = (await this.getAccountDataForOrg(orgId));
|
|
142
167
|
const orgInformation = accounts[accountId];
|
|
143
168
|
const policyArns = orgInformation[policyType];
|
|
144
169
|
const policies = [];
|
|
@@ -175,6 +200,9 @@ class IamCollectClient {
|
|
|
175
200
|
const policyId = policyArn.split('/').at(-1);
|
|
176
201
|
const policyData = await this.storageClient.getOrganizationPolicyMetadata(orgId, policyType, policyId, 'metadata');
|
|
177
202
|
const policyDocument = await this.storageClient.getOrganizationPolicyMetadata(orgId, policyType, policyId, 'policy');
|
|
203
|
+
if (!policyDocument) {
|
|
204
|
+
console.error(`Policy document not found for ${policyArn} in org ${orgId}`);
|
|
205
|
+
}
|
|
178
206
|
return {
|
|
179
207
|
arn: policyData.arn,
|
|
180
208
|
name: policyData.name,
|
|
@@ -280,6 +308,9 @@ class IamCollectClient {
|
|
|
280
308
|
async getManagedPolicy(accountId, policyArn) {
|
|
281
309
|
const policyMetadata = await this.storageClient.getResourceMetadata(accountId, policyArn, 'metadata');
|
|
282
310
|
const policyDocument = await this.storageClient.getResourceMetadata(accountId, policyArn, 'policy');
|
|
311
|
+
if (!policyDocument) {
|
|
312
|
+
console.error(`Policy document not found for ${policyArn} in account ${accountId}`);
|
|
313
|
+
}
|
|
283
314
|
return {
|
|
284
315
|
arn: policyMetadata.arn,
|
|
285
316
|
name: policyMetadata.name,
|
|
@@ -446,6 +477,74 @@ class IamCollectClient {
|
|
|
446
477
|
const resourceMetadata = await this.storageClient.getResourceMetadata(accountId, resourceArn, 'metadata');
|
|
447
478
|
return resourceMetadata?.id;
|
|
448
479
|
}
|
|
480
|
+
/**
|
|
481
|
+
* Get the account IDs for an organization.
|
|
482
|
+
*
|
|
483
|
+
* @param organizationId the ID of the organization
|
|
484
|
+
* @returns a tuple containing a boolean indicating success and an array of account IDs
|
|
485
|
+
*/
|
|
486
|
+
async getAccountsForOrganization(organizationId) {
|
|
487
|
+
const organizationAccounts = await this.getAccountDataForOrg(organizationId);
|
|
488
|
+
if (!organizationAccounts) {
|
|
489
|
+
return [false, []];
|
|
490
|
+
}
|
|
491
|
+
const accountIds = Object.keys(organizationAccounts);
|
|
492
|
+
return [true, accountIds];
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Get the organization structure or an organization.
|
|
496
|
+
*
|
|
497
|
+
* @param orgId the ID of the organization
|
|
498
|
+
* @returns returns the organization structure or undefined if not found
|
|
499
|
+
*/
|
|
500
|
+
async getOrganizationStructure(orgId) {
|
|
501
|
+
return this.storageClient.getOrganizationMetadata(orgId, 'structure');
|
|
502
|
+
}
|
|
503
|
+
async getAccountsForOrgPath(orgId, ouIds) {
|
|
504
|
+
const orgUnits = await this.getOrganizationStructure(orgId);
|
|
505
|
+
if (!orgUnits || ouIds.length === 0) {
|
|
506
|
+
return [false, []];
|
|
507
|
+
}
|
|
508
|
+
const rootOu = orgUnits[ouIds[0]];
|
|
509
|
+
// Now look through the structure to find the OU
|
|
510
|
+
let currentStructure = rootOu;
|
|
511
|
+
for (const ou of ouIds.slice(1)) {
|
|
512
|
+
currentStructure = currentStructure.children?.[ou];
|
|
513
|
+
if (!currentStructure) {
|
|
514
|
+
return [false, []]; // OU not found in the structure
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
const getAccountId = (a) => a.split('/').at(-1);
|
|
518
|
+
const accounts = [];
|
|
519
|
+
if (currentStructure.accounts) {
|
|
520
|
+
accounts.push(...currentStructure.accounts?.map(getAccountId));
|
|
521
|
+
}
|
|
522
|
+
const children = Object.values(currentStructure.children || {});
|
|
523
|
+
// Traverse the children to collect all accounts
|
|
524
|
+
while (children.length > 0) {
|
|
525
|
+
const child = children.shift();
|
|
526
|
+
if (child?.accounts) {
|
|
527
|
+
accounts.push(...child.accounts.map(getAccountId));
|
|
528
|
+
}
|
|
529
|
+
if (child?.children) {
|
|
530
|
+
children.push(...Object.values(child.children));
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
return [true, accounts];
|
|
534
|
+
}
|
|
535
|
+
async getAllPrincipalsInAccount(accountId) {
|
|
536
|
+
const iamUsers = await this.storageClient.findResourceMetadata(accountId, {
|
|
537
|
+
service: 'iam',
|
|
538
|
+
resourceType: 'user',
|
|
539
|
+
account: accountId
|
|
540
|
+
});
|
|
541
|
+
const iamRoles = await this.storageClient.findResourceMetadata(accountId, {
|
|
542
|
+
service: 'iam',
|
|
543
|
+
resourceType: 'role',
|
|
544
|
+
account: accountId
|
|
545
|
+
});
|
|
546
|
+
return [...iamUsers.map((user) => user.arn), ...iamRoles.map((role) => role.arn)];
|
|
547
|
+
}
|
|
449
548
|
}
|
|
450
549
|
exports.IamCollectClient = IamCollectClient;
|
|
451
550
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/collect/client.ts"],"names":[],"mappings":";;;AACA,wDAAwD;AA+FxD,MAAa,gBAAgB;IACP;IAApB,YAAoB,aAA0B;QAA1B,kBAAa,GAAb,aAAa,CAAa;IAAG,CAAC;IAElD;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAA;QAC1D,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,YAAoB;QACxC,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,YAAY,CAAC,CAAC,SAAU,CAAA;QACxD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAChE,SAAS,EACT,YAAY,EACZ,UAAU,CACX,CAAA;QACD,OAAO,CAAC,CAAC,aAAa,CAAA;IACxB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,yBAAyB,CAAC,SAAiB;QAC/C,OAAO,IAAI,CAAC,+BAA+B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,+BAA+B,CACnC,SAAiB,EACjB,UAAyB;QAEzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACX,CAAC;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAC7D,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,eAAe,GAA4B,EAAE,CAAA;QACnD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAA;QAExE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;YAE7E,eAAe,CAAC,IAAI,CAAC;gBACnB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7B,IAAI,EAAE,CAAC,CAAC,GAAG;oBACX,MAAM,EAAE,CAAC,CAAC,MAAM;iBACjB,CAAC,CAAC;aACJ,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAClF,eAAe,CAAC,IAAI,CAAC;YACnB,aAAa,EAAE,SAAS;YACxB,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,CAAC,CAAC,GAAG;gBACX,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;SACJ,CAAC,CAAA;QAEF,OAAO,eAAe,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,6BAA6B,CAAC,SAAiB;QACnD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAA;QACvD,KAAK,CAAC,IAAI,CAAC,IAAK,CAAC,CAAA;QACjB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACvE,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAC3B,CAAC;YACD,IAAI,GAAG,UAAU,CAAA;QACnB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,sBAAsB,CAAC,SAAiB;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACvD,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAA;IAC/B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,4BAA4B,CAAC,KAAa,EAAE,IAAY;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACtD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACvB,OAAO,EAAE,CAAC,MAAM,CAAA;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,wBAAwB,CAC5B,SAAiB,EACjB,UAAyB;QAEzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACvD,MAAM,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAgB,EAAE,CAAA;QAChC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YACxE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAA2B,KAAK,EAAE,UAAU,CAAC,CAAA;IAChG,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,KAAa;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAqB,KAAK,EAAE,KAAK,CAAC,CAAA;IACrF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,UAAyB,EACzB,SAAiB;QAEjB,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;QAC7C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAGvE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;QAC1C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAC3E,KAAK,EACL,UAAU,EACV,QAAQ,EACR,QAAQ,CACT,CAAA;QAED,OAAO;YACL,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,cAAc;SACvB,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,yBAAyB,CAAC,SAAiB;QAC/C,OAAO,IAAI,CAAC,+BAA+B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAa,EAAE,SAAiB;QACtD,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAC5B,KAAa,EACb,SAAiB,EACjB,UAAyB;QAEzB,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAClE,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAgB,EAAE,CAAA;QAChC,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YACxE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAa,EAAE,SAAiB;QACtD,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAyB,kBAAkB,EAAE,EAAE,CAAC,CAAA;QAC/F,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAA;QAClC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,UAAkB;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC7C,qBAAqB,EACrB,EAAE,CACH,CAAA;QACD,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAA;QACrC,OAAO,kBAAkB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAA;IAClD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,sBAAsB,CAAC,MAAc;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC7C,yBAAyB,EACzB,EAAE,CACH,CAAA;QACD,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAA;QACrC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,yBAAyB,CAAC,OAAe;QAC7C,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,SAAU,CAAA;QACnD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAClE,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,EAAE,CACH,CAAA;QAED,MAAM,OAAO,GAAoB,EAAE,CAAA;QAEnC,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,SAAiB;QACzD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAGjE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QACnC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACjE,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAA;QACD,OAAO;YACL,GAAG,EAAE,cAAc,CAAC,GAAG;YACvB,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,MAAM,EAAE,cAAc;SACvB,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,wBAAwB,CAAC,OAAe;QAC5C,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,SAAU,CAAA;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAGjE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAA;QAE5C,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,MAAM,EAAE,CAAC,CAAC,cAAc;SACzB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,SAAU,CAAA;QACnD,mFAAmF;QACnF,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAC3C,SAAS,EACT,OAAO,EACP,UAAU,CACX,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,6BAA6B,CAAC,OAAe;QACjD,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,SAAU,CAAA;QACnD,mFAAmF;QACnF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,sBAAsB,GAAG,YAAY,CAAC,kBAAkB,CAAA;QAC9D,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAA;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,SAAU,CAAA;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACzD,SAAS,EACT,OAAO,EACP,QAAQ,EACR,EAAE,CACH,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,0BAA0B,CAAC,QAAgB;QAC/C,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,QAAQ,CAAC,CAAC,SAAU,CAAA;QACpD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAClE,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,EAAE,CACH,CAAA;QAED,MAAM,OAAO,GAAoB,EAAE,CAAA;QAEnC,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,QAAgB;QAC9C,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,QAAQ,CAAC,CAAC,SAAU,CAAA;QACpD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAGjE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAA;QAE7C,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,MAAM,EAAE,CAAC,CAAC,cAAc;SACzB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,OAAe;QAC7C,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,SAAU,CAAA;QACnD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAClE,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,EAAE,CACH,CAAA;QAED,MAAM,OAAO,GAAoB,EAAE,CAAA;QAEnC,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,OAAe;QAC5C,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,SAAU,CAAA;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAGjE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAA;QAE5C,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,MAAM,EAAE,CAAC,CAAC,cAAc;SACzB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,OAAe;QACjD,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,SAAU,CAAA;QACnD,mFAAmF;QACnF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,sBAAsB,GAAG,YAAY,CAAC,kBAAkB,CAAA;QAC9D,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAA;IACjE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAAC,cAAsB;QAClD,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAC/C,cAAc,EACd,UAAU,CACX,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,WAAmB,EAAE,SAAiB;QAClE,MAAM,QAAQ,GAAG,IAAA,yBAAa,EAAC,WAAW,CAAC,CAAA;QAC3C,IAAI,WAAW,GAAG,QAAQ,CAAA;QAE1B,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,QAAQ,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YACnE,WAAW,GAAG,cAAc,CAAA;QAC9B,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACjE,SAAS,EACT,WAAW,EACX,WAAW,CACZ,CAAA;QACD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,WAAmB,EAAE,SAAiB;QAClE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAC5D,SAAS,EACT,WAAW,CACZ,CAAA;QACD,OAAO,cAAc,EAAE,MAAM,CAAA;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CACtB,WAAmB,EACnB,SAAiB;QAEjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAGvD,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACjC,OAAO,IAAI,IAAI,EAAE,CAAA;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,yBAAyB,CAAC,WAAmB;QACjD,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,WAAW,CAAC,CAAC,SAAU,CAAA;QACvD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAGnE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;QAErC,OAAO,gBAAgB,EAAE,EAAE,CAAA;IAC7B,CAAC;CACF;AAtlBD,4CAslBC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/collect/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/principals.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import { AwsIamStore } from '@cloud-copilot/iam-collect';
|
|
2
1
|
import { IamCollectClient, InlinePolicy, ManagedPolicy, SimulationOrgPolicies } from './collect/client.js';
|
|
3
|
-
/**
|
|
4
|
-
* Check if a principal exists in the specified AWS IAM store.
|
|
5
|
-
*/
|
|
6
|
-
export declare function principalExists(storageClient: AwsIamStore, principalArn: string): Promise<boolean>;
|
|
7
2
|
export interface PrincipalPolicies {
|
|
8
3
|
managedPolicies: ManagedPolicy[];
|
|
9
4
|
inlinePolicies: InlinePolicy[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principals.d.ts","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"principals.d.ts","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAE5B,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,aAAa,EAAE,CAAA;IAChC,cAAc,EAAE,YAAY,EAAE,CAAA;IAC9B,kBAAkB,EAAE,aAAa,GAAG,SAAS,CAAA;IAC7C,IAAI,EAAE,qBAAqB,EAAE,CAAA;IAC7B,IAAI,EAAE,qBAAqB,EAAE,CAAA;IAC7B,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,CAAA;QACb,eAAe,EAAE,aAAa,EAAE,CAAA;QAChC,cAAc,EAAE,YAAY,EAAE,CAAA;KAC/B,EAAE,CAAA;CACJ;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,gBAAgB,EAC/B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC,CA2B5B;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,gBAAgB,EAC/B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAgB5B;AAED,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,gBAAgB,EAC/B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAqB5B;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAG9D"}
|
package/dist/cjs/principals.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.principalExists = principalExists;
|
|
4
3
|
exports.getAllPoliciesForUser = getAllPoliciesForUser;
|
|
5
4
|
exports.getAllPoliciesForRole = getAllPoliciesForRole;
|
|
6
5
|
exports.getAllPoliciesForPrincipal = getAllPoliciesForPrincipal;
|
|
@@ -8,14 +7,6 @@ exports.isArnPrincipal = isArnPrincipal;
|
|
|
8
7
|
exports.isServicePrincipal = isServicePrincipal;
|
|
9
8
|
exports.isServiceLinkedRole = isServiceLinkedRole;
|
|
10
9
|
const iam_utils_1 = require("@cloud-copilot/iam-utils");
|
|
11
|
-
/**
|
|
12
|
-
* Check if a principal exists in the specified AWS IAM store.
|
|
13
|
-
*/
|
|
14
|
-
async function principalExists(storageClient, principalArn) {
|
|
15
|
-
const accountId = (0, iam_utils_1.splitArnParts)(principalArn).accountId;
|
|
16
|
-
const principalData = await storageClient.getResourceMetadata(accountId, principalArn, 'metadata');
|
|
17
|
-
return !!principalData;
|
|
18
|
-
}
|
|
19
10
|
/**
|
|
20
11
|
* Get all the IAM policies for a user, including managed and inline policies, permission boundaries, and group policies.
|
|
21
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/resources.js
CHANGED
|
@@ -18,7 +18,7 @@ async function getAccountIdForResource(collectClient, resourceArn) {
|
|
|
18
18
|
return accountId;
|
|
19
19
|
}
|
|
20
20
|
if (arnParts.service === 's3' && arnParts.resourceType === '') {
|
|
21
|
-
const bucketName = arnParts.resourcePath;
|
|
21
|
+
const bucketName = arnParts.resourcePath.split('/')[0];
|
|
22
22
|
return collectClient.getAccountIdForBucket(bucketName);
|
|
23
23
|
}
|
|
24
24
|
else if (arnParts.service === 'apigateway' && arnParts.resourceType === 'restapis') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/resources.ts"],"names":[],"mappings":";;AAWA,0DAiBC;AASD,gDASC;AAED,oEAqBC;AApED,wDAAwD;AAGxD;;;;;;GAMG;AACI,KAAK,UAAU,uBAAuB,CAC3C,aAA+B,EAC/B,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAA,yBAAa,EAAC,WAAW,CAAC,CAAA;IAC3C,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IAClC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/resources.ts"],"names":[],"mappings":";;AAWA,0DAiBC;AASD,gDASC;AAED,oEAqBC;AApED,wDAAwD;AAGxD;;;;;;GAMG;AACI,KAAK,UAAU,uBAAuB,CAC3C,aAA+B,EAC/B,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAA,yBAAa,EAAC,WAAW,CAAC,CAAA;IAC3C,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IAClC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACvD,OAAO,aAAa,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,QAAQ,CAAC,OAAO,KAAK,YAAY,IAAI,QAAQ,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QACrF,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAa,CAAA;QACpC,OAAO,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CACtC,aAA+B,EAC/B,WAAmB;IAEnB,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oDAAoD,WAAW,EAAE,CAAC,CAAA;IACpF,CAAC;IACD,OAAO,aAAa,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;AAC3D,CAAC;AAEM,KAAK,UAAU,4BAA4B,CAChD,aAA+B,EAC/B,WAAmB;IAEnB,2CAA2C;IAC3C,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oDAAoD,WAAW,EAAE,CAAC,CAAA;IACpF,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC1F,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACrF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,gEAAgE;IAChE,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IamCollectClient } from '
|
|
1
|
+
import { IamCollectClient } from '../collect/client.js';
|
|
2
2
|
import { SimulationRequest } from './simulate.js';
|
|
3
3
|
export type ContextKeys = Record<string, string | string[]>;
|
|
4
4
|
export declare function createContextKeys(collectClient: IamCollectClient, simulationRequest: SimulationRequest, contextKeyOverrides: ContextKeys): Promise<ContextKeys>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextKeys.d.ts","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AAE3D,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,gBAAgB,EAC/B,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,WAAW,GAC/B,OAAO,CAAC,WAAW,CAAC,CAkGtB"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createContextKeys = createContextKeys;
|
|
4
4
|
const iam_utils_1 = require("@cloud-copilot/iam-utils");
|
|
5
|
-
const principals_js_1 = require("
|
|
5
|
+
const principals_js_1 = require("../principals.js");
|
|
6
6
|
async function createContextKeys(collectClient, simulationRequest, contextKeyOverrides) {
|
|
7
7
|
const result = {
|
|
8
8
|
'aws:SecureTransport': 'true',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextKeys.js","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EvaluationResult } from '@cloud-copilot/iam-simulate';
|
|
2
|
+
import { IamCollectClient } from '../collect/client.js';
|
|
2
3
|
import { ContextKeys } from './contextKeys.js';
|
|
3
4
|
export interface SimulationRequest {
|
|
4
|
-
resourceArn: string;
|
|
5
|
+
resourceArn: string | undefined;
|
|
5
6
|
resourceAccount: string | undefined;
|
|
6
7
|
action: string;
|
|
7
8
|
principal: string;
|
|
8
9
|
customContextKeys: ContextKeys;
|
|
9
10
|
}
|
|
10
11
|
export declare function simulateRequest(simulationRequest: SimulationRequest, collectClient: IamCollectClient): Promise<import("@cloud-copilot/iam-simulate").SimulationResult>;
|
|
12
|
+
export declare function resultMatchesExpectation(expected: EvaluationResult | 'AnyDeny' | undefined, result: EvaluationResult): boolean;
|
|
11
13
|
//# sourceMappingURL=simulate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../../src/simulate/simulate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAA6B,MAAM,6BAA6B,CAAA;AAEzF,OAAO,EAAE,gBAAgB,EAAyB,MAAM,sBAAsB,CAAA;AAY9E,OAAO,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAA;AAEjE,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IAEjB,iBAAiB,EAAE,WAAW,CAAA;CAC/B;AAED,wBAAsB,eAAe,CACnC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,gBAAgB,mEAqFhC;AA0GD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,EAClD,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAQT"}
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.simulateRequest = simulateRequest;
|
|
4
|
+
exports.resultMatchesExpectation = resultMatchesExpectation;
|
|
4
5
|
const iam_data_1 = require("@cloud-copilot/iam-data");
|
|
5
6
|
const iam_simulate_1 = require("@cloud-copilot/iam-simulate");
|
|
6
7
|
const iam_utils_1 = require("@cloud-copilot/iam-utils");
|
|
8
|
+
const principals_js_1 = require("../principals.js");
|
|
9
|
+
const resources_js_1 = require("../resources.js");
|
|
10
|
+
const sts_js_1 = require("../utils/sts.js");
|
|
7
11
|
const contextKeys_js_1 = require("./contextKeys.js");
|
|
8
|
-
const principals_js_1 = require("./principals.js");
|
|
9
|
-
const resources_js_1 = require("./resources.js");
|
|
10
|
-
const assumeRoleActions = new Set([
|
|
11
|
-
'sts:assumerole',
|
|
12
|
-
'sts:assumerolewithwebidentity',
|
|
13
|
-
'sts:assumerolewithsaml'
|
|
14
|
-
]);
|
|
15
12
|
async function simulateRequest(simulationRequest, collectClient) {
|
|
16
|
-
simulationRequest.resourceAccount =
|
|
17
|
-
simulationRequest.resourceAccount ||
|
|
18
|
-
(await (0, resources_js_1.getAccountIdForResource)(collectClient, simulationRequest.resourceArn));
|
|
19
|
-
if (!simulationRequest.resourceAccount) {
|
|
20
|
-
throw new Error(`Unable to find account ID for resource ${simulationRequest.resourceArn}`);
|
|
21
|
-
}
|
|
22
13
|
const actionParts = simulationRequest.action.split(':');
|
|
23
14
|
const service = actionParts[0];
|
|
24
15
|
const serviceAction = actionParts[1];
|
|
@@ -28,17 +19,27 @@ async function simulateRequest(simulationRequest, collectClient) {
|
|
|
28
19
|
throw new Error(`Unable to find action details for ${simulationRequest.action}`);
|
|
29
20
|
}
|
|
30
21
|
const actionDetails = await (0, iam_data_1.iamActionDetails)(service, serviceAction);
|
|
22
|
+
// If it is a wildcard action, the resource account is always the principal account
|
|
31
23
|
if (actionDetails.isWildcardOnly) {
|
|
32
24
|
simulationRequest.resourceAccount = (0, iam_utils_1.splitArnParts)(simulationRequest.principal).accountId;
|
|
33
25
|
}
|
|
26
|
+
if (!simulationRequest.resourceAccount && !simulationRequest.resourceArn) {
|
|
27
|
+
throw new Error('Non wildcard actions require a resource ARN or resource account to be specified.');
|
|
28
|
+
}
|
|
29
|
+
simulationRequest.resourceAccount =
|
|
30
|
+
simulationRequest.resourceAccount ||
|
|
31
|
+
(await (0, resources_js_1.getAccountIdForResource)(collectClient, simulationRequest.resourceArn));
|
|
32
|
+
if (!simulationRequest.resourceAccount) {
|
|
33
|
+
throw new Error(`Unable to find account ID for resource ${simulationRequest.resourceArn}`);
|
|
34
|
+
}
|
|
34
35
|
//Lookup the principal policies
|
|
35
36
|
const principalPolicies = await (0, principals_js_1.getAllPoliciesForPrincipal)(collectClient, simulationRequest.principal);
|
|
36
|
-
const resourcePolicy = await (
|
|
37
|
-
const useResourcePolicy =
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
const { resourcePolicy, resourceRcps } = await getResourcePolicies(collectClient, simulationRequest.resourceArn);
|
|
38
|
+
const useResourcePolicy = simulationRequest.resourceArn &&
|
|
39
|
+
!((0, iam_utils_1.isIamRoleArn)(simulationRequest.resourceArn) && service.toLowerCase() === 'iam');
|
|
40
|
+
if (sts_js_1.AssumeRoleActions.has(simulationRequest.action.toLowerCase()) && !resourcePolicy) {
|
|
41
|
+
throw new Error(`Trust policy not found for resource ${simulationRequest.resourceArn}. sts assume role actions require a trust policy.`);
|
|
40
42
|
}
|
|
41
|
-
const resourceRcps = await (0, resources_js_1.getRcpsForResource)(collectClient, simulationRequest.resourceArn);
|
|
42
43
|
const context = await (0, contextKeys_js_1.createContextKeys)(collectClient, simulationRequest, simulationRequest.customContextKeys);
|
|
43
44
|
const applicableScps = (0, principals_js_1.isServiceLinkedRole)(simulationRequest.principal)
|
|
44
45
|
? []
|
|
@@ -47,7 +48,7 @@ async function simulateRequest(simulationRequest, collectClient) {
|
|
|
47
48
|
request: {
|
|
48
49
|
action: simulationRequest.action,
|
|
49
50
|
resource: {
|
|
50
|
-
resource: simulationRequest.resourceArn,
|
|
51
|
+
resource: simulationRequest.resourceArn || '*',
|
|
51
52
|
accountId: simulationRequest.resourceAccount
|
|
52
53
|
},
|
|
53
54
|
principal: simulationRequest.principal,
|
|
@@ -55,13 +56,21 @@ async function simulateRequest(simulationRequest, collectClient) {
|
|
|
55
56
|
},
|
|
56
57
|
identityPolicies: prepareIdentityPolicies(simulationRequest.principal, principalPolicies),
|
|
57
58
|
serviceControlPolicies: applicableScps,
|
|
58
|
-
resourceControlPolicies: rcpsForRequest(simulationRequest.principal, actionDetails.isWildcardOnly, resourceRcps, principalPolicies.
|
|
59
|
+
resourceControlPolicies: rcpsForRequest(simulationRequest.principal, actionDetails.isWildcardOnly, resourceRcps, principalPolicies.rcps),
|
|
59
60
|
resourcePolicy: useResourcePolicy ? resourcePolicy : undefined,
|
|
60
61
|
permissionBoundaryPolicies: preparePermissionBoundary(principalPolicies)
|
|
61
62
|
};
|
|
62
63
|
const result = await (0, iam_simulate_1.runSimulation)(simulation, {});
|
|
63
64
|
return result;
|
|
64
65
|
}
|
|
66
|
+
async function getResourcePolicies(collectClient, resourceArn) {
|
|
67
|
+
if (!resourceArn) {
|
|
68
|
+
return { resourcePolicy: undefined, resourceRcps: [] };
|
|
69
|
+
}
|
|
70
|
+
const resourcePolicy = await (0, resources_js_1.getResourcePolicyForResource)(collectClient, resourceArn);
|
|
71
|
+
const resourceRcps = await (0, resources_js_1.getRcpsForResource)(collectClient, resourceArn);
|
|
72
|
+
return { resourcePolicy, resourceRcps };
|
|
73
|
+
}
|
|
65
74
|
function rcpsForRequest(principalArn, actionIsWildcard, resourceRcps, principalRcps) {
|
|
66
75
|
if ((0, principals_js_1.isServiceLinkedRole)(principalArn)) {
|
|
67
76
|
return [];
|
|
@@ -129,4 +138,13 @@ function preparePermissionBoundary(principalPolicies) {
|
|
|
129
138
|
}
|
|
130
139
|
return undefined;
|
|
131
140
|
}
|
|
141
|
+
function resultMatchesExpectation(expected, result) {
|
|
142
|
+
if (!expected) {
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
if (expected === 'AnyDeny') {
|
|
146
|
+
return result.includes('Denied');
|
|
147
|
+
}
|
|
148
|
+
return expected === result;
|
|
149
|
+
}
|
|
132
150
|
//# sourceMappingURL=simulate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../../src/simulate/simulate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IamCollectClient } from '../collect/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get an IAMCollectClient for a test database
|
|
4
|
+
*
|
|
5
|
+
* @param dataSetId the ID of the test dataset to use
|
|
6
|
+
* @returns IamCollectClient instance configured for the specified dataset
|
|
7
|
+
*/
|
|
8
|
+
export declare function getTestDatasetClient(dataSetId: string): IamCollectClient;
|
|
9
|
+
//# sourceMappingURL=testClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testClient.d.ts","sourceRoot":"","sources":["../../../src/test-datasets/testClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAoBxE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTestDatasetClient = getTestDatasetClient;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const collect_js_1 = require("../collect/collect.js");
|
|
7
|
+
/**
|
|
8
|
+
* Get an IAMCollectClient for a test database
|
|
9
|
+
*
|
|
10
|
+
* @param dataSetId the ID of the test dataset to use
|
|
11
|
+
* @returns IamCollectClient instance configured for the specified dataset
|
|
12
|
+
*/
|
|
13
|
+
function getTestDatasetClient(dataSetId) {
|
|
14
|
+
const path = (0, path_1.resolve)((0, path_1.join)('./src', 'test-datasets', `iam-data-${dataSetId}`));
|
|
15
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
16
|
+
throw new Error(`Test dataset with ID ${dataSetId} does not exist at path ${path}. Someone messed up.`);
|
|
17
|
+
}
|
|
18
|
+
return (0, collect_js_1.getCollectClient)([
|
|
19
|
+
{
|
|
20
|
+
iamCollectVersion: '0.0.0',
|
|
21
|
+
storage: {
|
|
22
|
+
type: 'file',
|
|
23
|
+
path: (0, path_1.resolve)((0, path_1.join)('./src', 'test-datasets', `iam-data-${dataSetId}`))
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
], 'aws');
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=testClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testClient.js","sourceRoot":"","sources":["../../../src/test-datasets/testClient.ts"],"names":[],"mappings":";;AAWA,oDAoBC;AA/BD,2BAA+B;AAC/B,+BAAoC;AAEpC,sDAAwD;AAExD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IACpD,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,eAAe,EAAE,YAAY,SAAS,EAAE,CAAC,CAAC,CAAA;IAC7E,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,wBAAwB,SAAS,2BAA2B,IAAI,sBAAsB,CACvF,CAAA;IACH,CAAC;IAED,OAAO,IAAA,6BAAgB,EACrB;QACE;YACE,iBAAiB,EAAE,OAAO;YAC1B,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAA,cAAO,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,eAAe,EAAE,YAAY,SAAS,EAAE,CAAC,CAAC;aACvE;SACF;KACF,EACD,KAAK,CACN,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ArnParts } from '@cloud-copilot/iam-utils';
|
|
2
|
+
export declare class Arn {
|
|
3
|
+
private readonly arn;
|
|
4
|
+
private readonly parts;
|
|
5
|
+
constructor(arn: string);
|
|
6
|
+
get service(): string;
|
|
7
|
+
get partition(): string;
|
|
8
|
+
get region(): string | undefined;
|
|
9
|
+
get accountId(): string | undefined;
|
|
10
|
+
get resourceType(): string | undefined;
|
|
11
|
+
get resourcePath(): string | undefined;
|
|
12
|
+
get resource(): string;
|
|
13
|
+
get value(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Check
|
|
16
|
+
*
|
|
17
|
+
* @param parts
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
matches(parts: Partial<ArnParts>): boolean;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=arn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arn.d.ts","sourceRoot":"","sources":["../../../src/utils/arn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,MAAM,0BAA0B,CAAA;AAElE,qBAAa,GAAG;IAGF,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAEH,GAAG,EAAE,MAAM;IAIxC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO;CAK3C"}
|