@cloud-copilot/iam-lens 0.1.51 → 0.1.52

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.
@@ -41,6 +41,11 @@ export declare class Permission {
41
41
  * Returns an array of resulting Allow permissions (may be empty if fully denied).
42
42
  */
43
43
  subtract(other: Permission): Permission[];
44
+ /**
45
+ * Handle subtraction when the Deny permission has multiple conditions.
46
+ * Creates separate Allow permissions for each inverted condition.
47
+ */
48
+ private subtractWithMultipleConditions;
44
49
  }
45
50
  /**
46
51
  * Returns a new PermissionConditions object with all operator and context keys lowercased.
@@ -1 +1 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAA;AAE/C,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAU3E;;;;;;GAMG;AACH,qBAAa,UAAU;aAEH,MAAM,EAAE,gBAAgB;aACxB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS;aAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS;aACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;gBALhE,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;IASlF;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAyH3C;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IAiE7C;;;;;;;OAOG;IACI,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAkL9D;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;CA6HjD;AAmKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAWxF;AA+BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAqB1C"}
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAA;AAE/C,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAU3E;;;;;;GAMG;AACH,qBAAa,UAAU;aAEH,MAAM,EAAE,gBAAgB;aACxB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS;aAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS;aACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;gBALhE,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;IASlF;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAyH3C;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IAiE7C;;;;;;;OAOG;IACI,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAkL9D;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IA0JhD;;;OAGG;IACH,OAAO,CAAC,8BAA8B;CAqFvC;AAmKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAWxF;AA+BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAqB1C"}
@@ -419,8 +419,26 @@ class Permission {
419
419
  }
420
420
  }
421
421
  }
422
+ // When Deny has multiple conditions, we need to create separate Allow permissions
423
+ // for each inverted condition, since IAM can't express NOT(A AND B AND C) in one block
424
+ const denyConditions = other.conditions || {};
425
+ const hasMultipleConditions = Object.keys(denyConditions).length > 1 ||
426
+ Object.values(denyConditions).some((keyMap) => Object.keys(keyMap).length > 1);
427
+ if (hasMultipleConditions) {
428
+ // Special case: If deny resource is a proper subset of allow resource, keep both statements separate
429
+ // because it's impossible to merge them cleanly
430
+ if (this.resource && other.resource) {
431
+ const isDenySubsetOfAllow = other.resource.every((denyRes) => this.resource.some((allowRes) => allowRes !== denyRes && wildcardToRegex(allowRes).test(denyRes)));
432
+ if (isDenySubsetOfAllow) {
433
+ // Keep both the original allow and deny statements
434
+ return [this, other];
435
+ }
436
+ }
437
+ return this.subtractWithMultipleConditions(other);
438
+ }
439
+ // Handle simpler cases with single/no conditions using the existing logic
422
440
  // 1. Invert Deny conditions
423
- const inverted = invertConditions(other.conditions || {});
441
+ const inverted = invertConditions(denyConditions);
424
442
  // 2. Merge conditions: original Allow ∧ inverted Deny
425
443
  const allowConds = normalizeConditionKeys(this.conditions || {});
426
444
  const mergedConds = mergeComplementaryConditions(mergeConditions(allowConds, inverted) || {
@@ -493,6 +511,83 @@ class Permission {
493
511
  // This should never happen
494
512
  throw new Error('Permission.subtract: This should never happen—invalid state.');
495
513
  }
514
+ /**
515
+ * Handle subtraction when the Deny permission has multiple conditions.
516
+ * Creates separate Allow permissions for each inverted condition.
517
+ */
518
+ subtractWithMultipleConditions(other) {
519
+ const allowResource = this.resource;
520
+ const allowNotResource = this.notResource;
521
+ const denyResource = other.resource;
522
+ const denyNotResource = other.notResource;
523
+ const eff = this.effect;
524
+ const svc = this.service;
525
+ const act = this.action;
526
+ // Determine resulting resource/notResource based on Allow vs Deny patterns
527
+ let resultResource;
528
+ let resultNotResource;
529
+ // Case: Allow.resource & Deny.notResource --> The Deny excludes everything EXCEPT notResource
530
+ // So the intersection is the items from Deny.notResource that match Allow.resource patterns
531
+ if (allowResource !== undefined && denyNotResource !== undefined) {
532
+ resultResource = denyNotResource.filter((dnr) => allowResource.some((ar) => wildcardToRegex(ar).test(dnr)));
533
+ if (resultResource.length === 0)
534
+ return [];
535
+ }
536
+ // Case: Allow.notResource & Deny.resource --> resultNotResource = ANR ∪ DR
537
+ else if (allowNotResource !== undefined && denyResource !== undefined) {
538
+ // Check if every Deny resource is already excluded by allowNotResource
539
+ const denyCovered = denyResource.every((dr) => allowNotResource.some((anr) => wildcardToRegex(anr).test(dr)));
540
+ if (denyCovered) {
541
+ resultNotResource = allowNotResource;
542
+ }
543
+ else {
544
+ resultNotResource = Array.from(new Set([...allowNotResource, ...denyResource]));
545
+ }
546
+ }
547
+ // Case: Allow.resource & Deny.resource --> keep allow resource, conditions handle exclusion
548
+ else if (allowResource !== undefined && denyResource !== undefined) {
549
+ resultResource = allowResource;
550
+ }
551
+ // Case: Allow.notResource & Deny.notResource --> keep allow notResource, conditions handle exclusion
552
+ else if (allowNotResource !== undefined && denyNotResource !== undefined) {
553
+ resultNotResource = allowNotResource;
554
+ }
555
+ // Create separate Allow permissions for each condition key-value pair in Deny
556
+ const results = [];
557
+ const allowConds = normalizeConditionKeys(this.conditions || {});
558
+ for (const [operator, keyMap] of Object.entries(other.conditions || {})) {
559
+ for (const [contextKey, values] of Object.entries(keyMap)) {
560
+ // Invert this specific condition
561
+ const singleCondition = { [operator]: { [contextKey]: values } };
562
+ const invertedCondition = invertConditions(singleCondition);
563
+ // Merge with the original Allow conditions
564
+ const mergedConds = { ...allowConds };
565
+ for (const [invertedOp, invertedKeyMap] of Object.entries(invertedCondition)) {
566
+ if (mergedConds[invertedOp]) {
567
+ // Merge keys under the same operator
568
+ for (const [invertedKey, invertedVals] of Object.entries(invertedKeyMap)) {
569
+ if (mergedConds[invertedOp][invertedKey]) {
570
+ // Union the values
571
+ mergedConds[invertedOp][invertedKey] = Array.from(new Set([...mergedConds[invertedOp][invertedKey], ...invertedVals]));
572
+ }
573
+ else {
574
+ mergedConds[invertedOp][invertedKey] = Array.from(invertedVals);
575
+ }
576
+ }
577
+ }
578
+ else {
579
+ mergedConds[invertedOp] = { ...invertedKeyMap };
580
+ }
581
+ }
582
+ // Apply complementary condition logic
583
+ const finalMergedConds = mergeComplementaryConditions(mergedConds);
584
+ const finalConds = Object.keys(finalMergedConds).length ? finalMergedConds : undefined;
585
+ // Create a new Allow permission with this specific inverted condition
586
+ results.push(new Permission(eff, svc, act, resultResource, resultNotResource, finalConds));
587
+ }
588
+ }
589
+ return results;
590
+ }
496
591
  }
497
592
  exports.Permission = Permission;
498
593
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"principalCan.d.ts","sourceRoot":"","sources":["../../../src/principalCan/principalCan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAcvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB;;;GAkH3F"}
1
+ {"version":3,"file":"principalCan.d.ts","sourceRoot":"","sources":["../../../src/principalCan/principalCan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAkBvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB;;;GA8I3F"}
@@ -6,6 +6,7 @@ const iam_shrink_1 = require("@cloud-copilot/iam-shrink");
6
6
  const iam_utils_1 = require("@cloud-copilot/iam-utils");
7
7
  const principals_js_1 = require("../principals.js");
8
8
  const permissionSet_js_1 = require("./permissionSet.js");
9
+ const iamRoles_js_1 = require("./resources/resourceTypes/iamRoles.js");
9
10
  const kmsKeys_js_1 = require("./resources/resourceTypes/kmsKeys.js");
10
11
  const s3Buckets_js_1 = require("./resources/resourceTypes/s3Buckets.js");
11
12
  /**
@@ -48,6 +49,22 @@ async function principalCan(collectClient, input) {
48
49
  // Add the denies for later
49
50
  resourceDenyPermissions.addAll(keyDenies);
50
51
  /*********** End KMS Keys *************/
52
+ /*********** Start Role Trust Policies *************/
53
+ const { roleAllows: allRolesAllow, roleDenies: allRolesDeny } = await (0, iamRoles_js_1.allIamRolesAssumeRolePermissionSets)();
54
+ const identityAssumeRolePermissions = allRolesAllow.intersection(allowedPermissions);
55
+ // Remove all the IAM role permissions from the identityAllows, add them back later
56
+ finalPermissions = finalPermissions.subtract(allRolesDeny).allow;
57
+ // Get all the KMS permission for the same account
58
+ const { accountAllows: roleAccountAllows, principalAllows: rolePrincipalAllows, denies: roleDenies } = await (0, iamRoles_js_1.iamRolesSameAccount)(collectClient, principal);
59
+ // Add in the principal allows
60
+ finalPermissions.addAll(rolePrincipalAllows);
61
+ // Add the account allows intersected with the identity allows
62
+ for (const roleAcctAllow of roleAccountAllows) {
63
+ finalPermissions.addAll(roleAcctAllow.intersection(identityAssumeRolePermissions));
64
+ }
65
+ // Add the denies for later
66
+ resourceDenyPermissions.addAll(roleDenies);
67
+ /*********** End Role Trust Policies *************/
51
68
  /*********** Start Buckets *************/
52
69
  const { allows: bucketAllows, denies: bucketDenies } = await (0, s3Buckets_js_1.s3BucketsSameAccount)(collectClient, principal);
53
70
  finalPermissions.addAll(bucketAllows);
@@ -1 +1 @@
1
- {"version":3,"file":"principalCan.js","sourceRoot":"","sources":["../../../src/principalCan/principalCan.ts"],"names":[],"mappings":";;AAuCA,oCAkHC;AAzJD,0DAAsD;AACtD,0DAA8D;AAC9D,wDAAwD;AAExD,oDAA6D;AAC7D,yDAK2B;AAC3B,qEAG6C;AAC7C,yEAA6E;AAiB7E;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAAC,aAA+B,EAAE,KAAwB;IAC1F,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAE3B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAA,yBAAa,EAAC,SAAS,CAAC,CAAA;IAElD,MAAM,iBAAiB,GAAG,MAAM,IAAA,0CAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAEpF,MAAM,gBAAgB,GAAG;QACvB,GAAG,iBAAiB,CAAC,eAAe;QACpC,GAAG,iBAAiB,CAAC,cAAc;QACnC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACxF,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;KACxF,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,uBAAU,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAE5C,MAAM,kBAAkB,GAAG,MAAM,IAAA,iDAA8B,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;IAC1F,MAAM,uBAAuB,GAAG,MAAM,IAAA,iDAA8B,EAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAE9F,IAAI,gBAAgB,GAAG,kBAAkB,CAAA;IAEzC,MAAM,uBAAuB,GAAG,IAAI,gCAAa,CAAC,MAAM,CAAC,CAAA;IAEzD,0CAA0C;IAC1C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,GACvD,MAAM,IAAA,+CAAkC,GAAE,CAAA;IAE5C,MAAM,sBAAsB,GAAG,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;IAE5E,8EAA8E;IAC9E,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAA;IAE/D,kDAAkD;IAClD,MAAM,EACJ,aAAa,EAAE,gBAAgB,EAC/B,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,SAAS,EAClB,GAAG,MAAM,IAAA,+BAAkB,EAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAEtD,8BAA8B;IAC9B,gBAAgB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE3C,8DAA8D;IAC9D,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC5C,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,2BAA2B;IAC3B,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzC,wCAAwC;IAExC,yCAAyC;IACzC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,mCAAoB,EAC/E,aAAa,EACb,SAAS,CACV,CAAA;IAED,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACrC,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5C,uCAAuC;IAEvC,gIAAgI;IAChI,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,IAAA,uBAAU,EAAC,iBAAiB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC9E,MAAM,mBAAmB,GAAG,MAAM,IAAA,iDAA8B,EAAC,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;QAC3F,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,gBAAgB,GAAoB,EAAE,CAAA;IAC5C,MAAM,gBAAgB,GAAoB,EAAE,CAAA;IAE5C,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,uBAAU,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAA,iDAA8B,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;QACjF,MAAM,IAAA,6CAA0B,EAAC,uBAAuB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IAChF,CAAC;IAED,MAAM,+BAA+B,GAAG,uBAAuB,CAAC,KAAK,EAAE,CAAA;IACvE,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,uBAAU,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAA,iDAA8B,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;QACjF,MAAM,IAAA,6CAA0B,EAAC,+BAA+B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IACxF,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,gBAAgB,GAAG,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,gBAAgB,GAAG,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,6BAA6B;IAC7B,+BAA+B,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAE/D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAA;IACvF,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,CAAA;IAC7C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAA;IAEnD,MAAM,eAAe,GAAG,IAAA,qCAAkB,EAAC,gBAAgB,CAAC,CAAA;IAC5D,MAAM,cAAc,GAAG,IAAA,qCAAkB,EAAC,iBAAiB,CAAC,CAAA;IAE5D,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC;KACnD,CAAA;IAED,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,MAAM,IAAA,+BAAkB,EAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"principalCan.js","sourceRoot":"","sources":["../../../src/principalCan/principalCan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { IamCollectClient } from '../../../collect/client.js';
2
+ import { PermissionSet } from '../../permissionSet.js';
3
+ /**
4
+ * Get the list of IAM Actions to assume a role.
5
+ *
6
+ * @returns the list of IAM Actions to assume a role
7
+ */
8
+ export declare function stsRoleActions(): Promise<string[]>;
9
+ /**
10
+ * Get the permission sets for all IAM roles to assume a role.
11
+ *
12
+ * @returns the permission sets for all IAM roles to assume a role
13
+ */
14
+ export declare function allIamRolesAssumeRolePermissionSets(): Promise<{
15
+ roleAllows: PermissionSet;
16
+ roleDenies: PermissionSet;
17
+ }>;
18
+ /**
19
+ * Get the permissions a principal has to assume roles in the same account.
20
+ * This will only return permissions for sts:AssumeRole and not other assume role actions.
21
+ *
22
+ * @param collectClient the client to use to collect IAM information
23
+ * @param principal the principal to check permissions for
24
+ * @returns the permissions the principal has to assume roles in the same account
25
+ */
26
+ export declare function iamRolesSameAccount(collectClient: IamCollectClient, principal: string): Promise<{
27
+ accountAllows: PermissionSet[];
28
+ principalAllows: PermissionSet[];
29
+ denies: PermissionSet[];
30
+ }>;
31
+ //# sourceMappingURL=iamRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iamRoles.d.ts","sourceRoot":"","sources":["../../../../../src/principalCan/resources/resourceTypes/iamRoles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAA+B,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGnF;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAIxD;AAED;;;;GAIG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC;IACnE,UAAU,EAAE,aAAa,CAAA;IACzB,UAAU,EAAE,aAAa,CAAA;CAC1B,CAAC,CAYD;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,gBAAgB,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IACT,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,eAAe,EAAE,aAAa,EAAE,CAAA;IAChC,MAAM,EAAE,aAAa,EAAE,CAAA;CACxB,CAAC,CAoED"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stsRoleActions = stsRoleActions;
4
+ exports.allIamRolesAssumeRolePermissionSets = allIamRolesAssumeRolePermissionSets;
5
+ exports.iamRolesSameAccount = iamRolesSameAccount;
6
+ const iam_expand_1 = require("@cloud-copilot/iam-expand");
7
+ const iam_policy_1 = require("@cloud-copilot/iam-policy");
8
+ const iam_utils_1 = require("@cloud-copilot/iam-utils");
9
+ const permission_js_1 = require("../../permission.js");
10
+ const permissionSet_js_1 = require("../../permissionSet.js");
11
+ const statements_js_1 = require("../statements.js");
12
+ /**
13
+ * Get the list of IAM Actions to assume a role.
14
+ *
15
+ * @returns the list of IAM Actions to assume a role
16
+ */
17
+ async function stsRoleActions() {
18
+ const serviceActions = await (0, iam_expand_1.expandIamActions)('sts:AssumeRole*');
19
+ const actions = serviceActions.map((a) => a.split(':').at(1));
20
+ return [...actions, 'SetContext', 'TagSession', 'SetSourceIdentity'];
21
+ }
22
+ /**
23
+ * Get the permission sets for all IAM roles to assume a role.
24
+ *
25
+ * @returns the permission sets for all IAM roles to assume a role
26
+ */
27
+ async function allIamRolesAssumeRolePermissionSets() {
28
+ const assumeRoleActions = await stsRoleActions();
29
+ const allowPerimeter = new permissionSet_js_1.PermissionSet('Allow');
30
+ const denyPerimeter = new permissionSet_js_1.PermissionSet('Deny');
31
+ for (const action of assumeRoleActions) {
32
+ allowPerimeter.addPermission(new permission_js_1.Permission('Allow', 'sts', action, ['*'], undefined, undefined));
33
+ denyPerimeter.addPermission(new permission_js_1.Permission('Deny', 'sts', action, ['*'], undefined, undefined));
34
+ }
35
+ return { roleAllows: allowPerimeter, roleDenies: denyPerimeter };
36
+ }
37
+ /**
38
+ * Get the permissions a principal has to assume roles in the same account.
39
+ * This will only return permissions for sts:AssumeRole and not other assume role actions.
40
+ *
41
+ * @param collectClient the client to use to collect IAM information
42
+ * @param principal the principal to check permissions for
43
+ * @returns the permissions the principal has to assume roles in the same account
44
+ */
45
+ async function iamRolesSameAccount(collectClient, principal) {
46
+ const principalArnParts = (0, iam_utils_1.splitArnParts)(principal);
47
+ const principalAccountId = principalArnParts.accountId;
48
+ const assumeRoleActions = ['AssumeRole', 'SetContext', 'TagSession', 'SetSourceIdentity'];
49
+ const allRoles = await collectClient.listResources(principalAccountId, 'iam', 'role', undefined);
50
+ const accountAllows = [];
51
+ const principalAllows = [];
52
+ const denies = [];
53
+ for (const roleArn of allRoles) {
54
+ const rawPolicy = await collectClient.getResourcePolicyForArn(roleArn, principalAccountId);
55
+ if (!rawPolicy) {
56
+ continue;
57
+ }
58
+ const allowPerimeter = new permissionSet_js_1.PermissionSet('Allow');
59
+ const denyPerimeter = new permissionSet_js_1.PermissionSet('Deny');
60
+ for (const action of assumeRoleActions) {
61
+ allowPerimeter.addPermission(new permission_js_1.Permission('Allow', 'sts', action, [roleArn], undefined, undefined));
62
+ denyPerimeter.addPermission(new permission_js_1.Permission('Deny', 'sts', action, [roleArn], undefined, undefined));
63
+ }
64
+ const roleAcctAllow = new permissionSet_js_1.PermissionSet('Allow');
65
+ const rolePrincipalAllow = new permissionSet_js_1.PermissionSet('Allow');
66
+ const roleDeny = new permissionSet_js_1.PermissionSet('Deny');
67
+ addRoleArnToStatements(rawPolicy, roleArn);
68
+ const trustPolicy = (0, iam_policy_1.loadPolicy)(rawPolicy);
69
+ for (const statement of trustPolicy.statements()) {
70
+ const applies = await (0, statements_js_1.statementAppliesToPrincipal)(statement, principal, collectClient);
71
+ if (applies === 'PrincipalMatch') {
72
+ if (statement.isAllow()) {
73
+ await (0, permissionSet_js_1.addStatementToPermissionSet)(statement, rolePrincipalAllow);
74
+ }
75
+ else {
76
+ await (0, permissionSet_js_1.addStatementToPermissionSet)(statement, roleDeny);
77
+ }
78
+ }
79
+ else if (applies === 'AccountMatch' && statement.isAllow()) {
80
+ await (0, permissionSet_js_1.addStatementToPermissionSet)(statement, roleAcctAllow);
81
+ }
82
+ }
83
+ const effectivePrincipalAllow = rolePrincipalAllow.intersection(allowPerimeter);
84
+ const effectiveAccountAllow = roleAcctAllow.intersection(allowPerimeter);
85
+ const effectiveDeny = roleDeny.intersection(denyPerimeter);
86
+ if (!effectivePrincipalAllow.isEmpty()) {
87
+ principalAllows.push(effectivePrincipalAllow);
88
+ }
89
+ if (!effectiveAccountAllow.isEmpty()) {
90
+ accountAllows.push(effectiveAccountAllow);
91
+ }
92
+ if (!effectiveDeny.isEmpty()) {
93
+ denies.push(effectiveDeny);
94
+ }
95
+ }
96
+ return {
97
+ accountAllows,
98
+ principalAllows,
99
+ denies
100
+ };
101
+ }
102
+ function addRoleArnToStatements(policy, roleArn) {
103
+ const statement = policy.Statement;
104
+ if (Array.isArray(statement)) {
105
+ for (const statement of policy.Statement) {
106
+ statement.Resource = [roleArn];
107
+ }
108
+ }
109
+ else if (statement) {
110
+ statement.Resource = [roleArn];
111
+ }
112
+ }
113
+ //# sourceMappingURL=iamRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iamRoles.js","sourceRoot":"","sources":["../../../../../src/principalCan/resources/resourceTypes/iamRoles.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,11 @@ export declare class Permission {
41
41
  * Returns an array of resulting Allow permissions (may be empty if fully denied).
42
42
  */
43
43
  subtract(other: Permission): Permission[];
44
+ /**
45
+ * Handle subtraction when the Deny permission has multiple conditions.
46
+ * Creates separate Allow permissions for each inverted condition.
47
+ */
48
+ private subtractWithMultipleConditions;
44
49
  }
45
50
  /**
46
51
  * Returns a new PermissionConditions object with all operator and context keys lowercased.
@@ -1 +1 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAA;AAE/C,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAU3E;;;;;;GAMG;AACH,qBAAa,UAAU;aAEH,MAAM,EAAE,gBAAgB;aACxB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS;aAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS;aACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;gBALhE,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;IASlF;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAyH3C;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IAiE7C;;;;;;;OAOG;IACI,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAkL9D;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;CA6HjD;AAmKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAWxF;AA+BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAqB1C"}
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAA;AAE/C,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAU3E;;;;;;GAMG;AACH,qBAAa,UAAU;aAEH,MAAM,EAAE,gBAAgB;aACxB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS;aAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS;aACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;gBALhE,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;IASlF;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAyH3C;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IAiE7C;;;;;;;OAOG;IACI,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAkL9D;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IA0JhD;;;OAGG;IACH,OAAO,CAAC,8BAA8B;CAqFvC;AAmKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAWxF;AA+BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAqB1C"}
@@ -408,8 +408,26 @@ export class Permission {
408
408
  }
409
409
  }
410
410
  }
411
+ // When Deny has multiple conditions, we need to create separate Allow permissions
412
+ // for each inverted condition, since IAM can't express NOT(A AND B AND C) in one block
413
+ const denyConditions = other.conditions || {};
414
+ const hasMultipleConditions = Object.keys(denyConditions).length > 1 ||
415
+ Object.values(denyConditions).some((keyMap) => Object.keys(keyMap).length > 1);
416
+ if (hasMultipleConditions) {
417
+ // Special case: If deny resource is a proper subset of allow resource, keep both statements separate
418
+ // because it's impossible to merge them cleanly
419
+ if (this.resource && other.resource) {
420
+ const isDenySubsetOfAllow = other.resource.every((denyRes) => this.resource.some((allowRes) => allowRes !== denyRes && wildcardToRegex(allowRes).test(denyRes)));
421
+ if (isDenySubsetOfAllow) {
422
+ // Keep both the original allow and deny statements
423
+ return [this, other];
424
+ }
425
+ }
426
+ return this.subtractWithMultipleConditions(other);
427
+ }
428
+ // Handle simpler cases with single/no conditions using the existing logic
411
429
  // 1. Invert Deny conditions
412
- const inverted = invertConditions(other.conditions || {});
430
+ const inverted = invertConditions(denyConditions);
413
431
  // 2. Merge conditions: original Allow ∧ inverted Deny
414
432
  const allowConds = normalizeConditionKeys(this.conditions || {});
415
433
  const mergedConds = mergeComplementaryConditions(mergeConditions(allowConds, inverted) || {
@@ -482,6 +500,83 @@ export class Permission {
482
500
  // This should never happen
483
501
  throw new Error('Permission.subtract: This should never happen—invalid state.');
484
502
  }
503
+ /**
504
+ * Handle subtraction when the Deny permission has multiple conditions.
505
+ * Creates separate Allow permissions for each inverted condition.
506
+ */
507
+ subtractWithMultipleConditions(other) {
508
+ const allowResource = this.resource;
509
+ const allowNotResource = this.notResource;
510
+ const denyResource = other.resource;
511
+ const denyNotResource = other.notResource;
512
+ const eff = this.effect;
513
+ const svc = this.service;
514
+ const act = this.action;
515
+ // Determine resulting resource/notResource based on Allow vs Deny patterns
516
+ let resultResource;
517
+ let resultNotResource;
518
+ // Case: Allow.resource & Deny.notResource --> The Deny excludes everything EXCEPT notResource
519
+ // So the intersection is the items from Deny.notResource that match Allow.resource patterns
520
+ if (allowResource !== undefined && denyNotResource !== undefined) {
521
+ resultResource = denyNotResource.filter((dnr) => allowResource.some((ar) => wildcardToRegex(ar).test(dnr)));
522
+ if (resultResource.length === 0)
523
+ return [];
524
+ }
525
+ // Case: Allow.notResource & Deny.resource --> resultNotResource = ANR ∪ DR
526
+ else if (allowNotResource !== undefined && denyResource !== undefined) {
527
+ // Check if every Deny resource is already excluded by allowNotResource
528
+ const denyCovered = denyResource.every((dr) => allowNotResource.some((anr) => wildcardToRegex(anr).test(dr)));
529
+ if (denyCovered) {
530
+ resultNotResource = allowNotResource;
531
+ }
532
+ else {
533
+ resultNotResource = Array.from(new Set([...allowNotResource, ...denyResource]));
534
+ }
535
+ }
536
+ // Case: Allow.resource & Deny.resource --> keep allow resource, conditions handle exclusion
537
+ else if (allowResource !== undefined && denyResource !== undefined) {
538
+ resultResource = allowResource;
539
+ }
540
+ // Case: Allow.notResource & Deny.notResource --> keep allow notResource, conditions handle exclusion
541
+ else if (allowNotResource !== undefined && denyNotResource !== undefined) {
542
+ resultNotResource = allowNotResource;
543
+ }
544
+ // Create separate Allow permissions for each condition key-value pair in Deny
545
+ const results = [];
546
+ const allowConds = normalizeConditionKeys(this.conditions || {});
547
+ for (const [operator, keyMap] of Object.entries(other.conditions || {})) {
548
+ for (const [contextKey, values] of Object.entries(keyMap)) {
549
+ // Invert this specific condition
550
+ const singleCondition = { [operator]: { [contextKey]: values } };
551
+ const invertedCondition = invertConditions(singleCondition);
552
+ // Merge with the original Allow conditions
553
+ const mergedConds = { ...allowConds };
554
+ for (const [invertedOp, invertedKeyMap] of Object.entries(invertedCondition)) {
555
+ if (mergedConds[invertedOp]) {
556
+ // Merge keys under the same operator
557
+ for (const [invertedKey, invertedVals] of Object.entries(invertedKeyMap)) {
558
+ if (mergedConds[invertedOp][invertedKey]) {
559
+ // Union the values
560
+ mergedConds[invertedOp][invertedKey] = Array.from(new Set([...mergedConds[invertedOp][invertedKey], ...invertedVals]));
561
+ }
562
+ else {
563
+ mergedConds[invertedOp][invertedKey] = Array.from(invertedVals);
564
+ }
565
+ }
566
+ }
567
+ else {
568
+ mergedConds[invertedOp] = { ...invertedKeyMap };
569
+ }
570
+ }
571
+ // Apply complementary condition logic
572
+ const finalMergedConds = mergeComplementaryConditions(mergedConds);
573
+ const finalConds = Object.keys(finalMergedConds).length ? finalMergedConds : undefined;
574
+ // Create a new Allow permission with this specific inverted condition
575
+ results.push(new Permission(eff, svc, act, resultResource, resultNotResource, finalConds));
576
+ }
577
+ }
578
+ return results;
579
+ }
485
580
  }
486
581
  /**
487
582
  * Attempt to merge two condition‐maps. If they can be expressed as a single IAM condition block,
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"principalCan.d.ts","sourceRoot":"","sources":["../../../src/principalCan/principalCan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAcvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB;;;GAkH3F"}
1
+ {"version":3,"file":"principalCan.d.ts","sourceRoot":"","sources":["../../../src/principalCan/principalCan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAkBvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB;;;GA8I3F"}
@@ -3,6 +3,7 @@ import { shrinkJsonDocument } from '@cloud-copilot/iam-shrink';
3
3
  import { splitArnParts } from '@cloud-copilot/iam-utils';
4
4
  import { getAllPoliciesForPrincipal } from '../principals.js';
5
5
  import { addPoliciesToPermissionSet, buildPermissionSetFromPolicies, PermissionSet, toPolicyStatements } from './permissionSet.js';
6
+ import { allIamRolesAssumeRolePermissionSets, iamRolesSameAccount } from './resources/resourceTypes/iamRoles.js';
6
7
  import { allKmsKeysAllActionsPermissionSets, kmsKeysSameAccount } from './resources/resourceTypes/kmsKeys.js';
7
8
  import { s3BucketsSameAccount } from './resources/resourceTypes/s3Buckets.js';
8
9
  /**
@@ -45,6 +46,22 @@ export async function principalCan(collectClient, input) {
45
46
  // Add the denies for later
46
47
  resourceDenyPermissions.addAll(keyDenies);
47
48
  /*********** End KMS Keys *************/
49
+ /*********** Start Role Trust Policies *************/
50
+ const { roleAllows: allRolesAllow, roleDenies: allRolesDeny } = await allIamRolesAssumeRolePermissionSets();
51
+ const identityAssumeRolePermissions = allRolesAllow.intersection(allowedPermissions);
52
+ // Remove all the IAM role permissions from the identityAllows, add them back later
53
+ finalPermissions = finalPermissions.subtract(allRolesDeny).allow;
54
+ // Get all the KMS permission for the same account
55
+ const { accountAllows: roleAccountAllows, principalAllows: rolePrincipalAllows, denies: roleDenies } = await iamRolesSameAccount(collectClient, principal);
56
+ // Add in the principal allows
57
+ finalPermissions.addAll(rolePrincipalAllows);
58
+ // Add the account allows intersected with the identity allows
59
+ for (const roleAcctAllow of roleAccountAllows) {
60
+ finalPermissions.addAll(roleAcctAllow.intersection(identityAssumeRolePermissions));
61
+ }
62
+ // Add the denies for later
63
+ resourceDenyPermissions.addAll(roleDenies);
64
+ /*********** End Role Trust Policies *************/
48
65
  /*********** Start Buckets *************/
49
66
  const { allows: bucketAllows, denies: bucketDenies } = await s3BucketsSameAccount(collectClient, principal);
50
67
  finalPermissions.addAll(bucketAllows);
@@ -1 +1 @@
1
- {"version":3,"file":"principalCan.js","sourceRoot":"","sources":["../../../src/principalCan/principalCan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"principalCan.js","sourceRoot":"","sources":["../../../src/principalCan/principalCan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,aAAa,EACb,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,mCAAmC,EACnC,mBAAmB,EACpB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,kCAAkC,EAClC,kBAAkB,EACnB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAiB7E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,aAA+B,EAAE,KAAwB;IAC1F,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAE3B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAElD,MAAM,iBAAiB,GAAG,MAAM,0BAA0B,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAEpF,MAAM,gBAAgB,GAAG;QACvB,GAAG,iBAAiB,CAAC,eAAe;QACpC,GAAG,iBAAiB,CAAC,cAAc;QACnC,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACxF,GAAG,CAAC,iBAAiB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;KACxF,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAE5C,MAAM,kBAAkB,GAAG,MAAM,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;IAC1F,MAAM,uBAAuB,GAAG,MAAM,8BAA8B,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAE9F,IAAI,gBAAgB,GAAG,kBAAkB,CAAA;IAEzC,MAAM,uBAAuB,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IAEzD,0CAA0C;IAC1C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,GACvD,MAAM,kCAAkC,EAAE,CAAA;IAE5C,MAAM,sBAAsB,GAAG,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;IAE5E,8EAA8E;IAC9E,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAA;IAE/D,kDAAkD;IAClD,MAAM,EACJ,aAAa,EAAE,gBAAgB,EAC/B,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,SAAS,EAClB,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAEtD,8BAA8B;IAC9B,gBAAgB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE3C,8DAA8D;IAC9D,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC5C,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,2BAA2B;IAC3B,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzC,wCAAwC;IAExC,qDAAqD;IACrD,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,GAC3D,MAAM,mCAAmC,EAAE,CAAA;IAE7C,MAAM,6BAA6B,GAAG,aAAa,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;IAEpF,mFAAmF;IACnF,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAA;IAEhE,kDAAkD;IAClD,MAAM,EACJ,aAAa,EAAE,iBAAiB,EAChC,eAAe,EAAE,mBAAmB,EACpC,MAAM,EAAE,UAAU,EACnB,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAEvD,8BAA8B;IAC9B,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAE5C,8DAA8D;IAC9D,KAAK,MAAM,aAAa,IAAI,iBAAiB,EAAE,CAAC;QAC9C,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC,CAAA;IACpF,CAAC;IAED,2BAA2B;IAC3B,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC1C,mDAAmD;IAEnD,yCAAyC;IACzC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,oBAAoB,CAC/E,aAAa,EACb,SAAS,CACV,CAAA;IAED,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACrC,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5C,uCAAuC;IAEvC,gIAAgI;IAChI,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC9E,MAAM,mBAAmB,GAAG,MAAM,8BAA8B,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;QAC3F,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,gBAAgB,GAAoB,EAAE,CAAA;IAC5C,MAAM,gBAAgB,GAAoB,EAAE,CAAA;IAE5C,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,gBAAgB,CAAC,IAAI,CAAC,MAAM,8BAA8B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;QACjF,MAAM,0BAA0B,CAAC,uBAAuB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IAChF,CAAC;IAED,MAAM,+BAA+B,GAAG,uBAAuB,CAAC,KAAK,EAAE,CAAA;IACvE,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,gBAAgB,CAAC,IAAI,CAAC,MAAM,8BAA8B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;QACjF,MAAM,0BAA0B,CAAC,+BAA+B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IACxF,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,gBAAgB,GAAG,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,gBAAgB,GAAG,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,6BAA6B;IAC7B,+BAA+B,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAE/D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAA;IACvF,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,CAAA;IAC7C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAA;IAEnD,MAAM,eAAe,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IAC5D,MAAM,cAAc,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;IAE5D,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC;KACnD,CAAA;IAED,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { IamCollectClient } from '../../../collect/client.js';
2
+ import { PermissionSet } from '../../permissionSet.js';
3
+ /**
4
+ * Get the list of IAM Actions to assume a role.
5
+ *
6
+ * @returns the list of IAM Actions to assume a role
7
+ */
8
+ export declare function stsRoleActions(): Promise<string[]>;
9
+ /**
10
+ * Get the permission sets for all IAM roles to assume a role.
11
+ *
12
+ * @returns the permission sets for all IAM roles to assume a role
13
+ */
14
+ export declare function allIamRolesAssumeRolePermissionSets(): Promise<{
15
+ roleAllows: PermissionSet;
16
+ roleDenies: PermissionSet;
17
+ }>;
18
+ /**
19
+ * Get the permissions a principal has to assume roles in the same account.
20
+ * This will only return permissions for sts:AssumeRole and not other assume role actions.
21
+ *
22
+ * @param collectClient the client to use to collect IAM information
23
+ * @param principal the principal to check permissions for
24
+ * @returns the permissions the principal has to assume roles in the same account
25
+ */
26
+ export declare function iamRolesSameAccount(collectClient: IamCollectClient, principal: string): Promise<{
27
+ accountAllows: PermissionSet[];
28
+ principalAllows: PermissionSet[];
29
+ denies: PermissionSet[];
30
+ }>;
31
+ //# sourceMappingURL=iamRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iamRoles.d.ts","sourceRoot":"","sources":["../../../../../src/principalCan/resources/resourceTypes/iamRoles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAA+B,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGnF;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAIxD;AAED;;;;GAIG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC;IACnE,UAAU,EAAE,aAAa,CAAA;IACzB,UAAU,EAAE,aAAa,CAAA;CAC1B,CAAC,CAYD;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,gBAAgB,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IACT,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,eAAe,EAAE,aAAa,EAAE,CAAA;IAChC,MAAM,EAAE,aAAa,EAAE,CAAA;CACxB,CAAC,CAoED"}
@@ -0,0 +1,108 @@
1
+ import { expandIamActions } from '@cloud-copilot/iam-expand';
2
+ import { loadPolicy } from '@cloud-copilot/iam-policy';
3
+ import { splitArnParts } from '@cloud-copilot/iam-utils';
4
+ import { Permission } from '../../permission.js';
5
+ import { addStatementToPermissionSet, PermissionSet } from '../../permissionSet.js';
6
+ import { statementAppliesToPrincipal } from '../statements.js';
7
+ /**
8
+ * Get the list of IAM Actions to assume a role.
9
+ *
10
+ * @returns the list of IAM Actions to assume a role
11
+ */
12
+ export async function stsRoleActions() {
13
+ const serviceActions = await expandIamActions('sts:AssumeRole*');
14
+ const actions = serviceActions.map((a) => a.split(':').at(1));
15
+ return [...actions, 'SetContext', 'TagSession', 'SetSourceIdentity'];
16
+ }
17
+ /**
18
+ * Get the permission sets for all IAM roles to assume a role.
19
+ *
20
+ * @returns the permission sets for all IAM roles to assume a role
21
+ */
22
+ export async function allIamRolesAssumeRolePermissionSets() {
23
+ const assumeRoleActions = await stsRoleActions();
24
+ const allowPerimeter = new PermissionSet('Allow');
25
+ const denyPerimeter = new PermissionSet('Deny');
26
+ for (const action of assumeRoleActions) {
27
+ allowPerimeter.addPermission(new Permission('Allow', 'sts', action, ['*'], undefined, undefined));
28
+ denyPerimeter.addPermission(new Permission('Deny', 'sts', action, ['*'], undefined, undefined));
29
+ }
30
+ return { roleAllows: allowPerimeter, roleDenies: denyPerimeter };
31
+ }
32
+ /**
33
+ * Get the permissions a principal has to assume roles in the same account.
34
+ * This will only return permissions for sts:AssumeRole and not other assume role actions.
35
+ *
36
+ * @param collectClient the client to use to collect IAM information
37
+ * @param principal the principal to check permissions for
38
+ * @returns the permissions the principal has to assume roles in the same account
39
+ */
40
+ export async function iamRolesSameAccount(collectClient, principal) {
41
+ const principalArnParts = splitArnParts(principal);
42
+ const principalAccountId = principalArnParts.accountId;
43
+ const assumeRoleActions = ['AssumeRole', 'SetContext', 'TagSession', 'SetSourceIdentity'];
44
+ const allRoles = await collectClient.listResources(principalAccountId, 'iam', 'role', undefined);
45
+ const accountAllows = [];
46
+ const principalAllows = [];
47
+ const denies = [];
48
+ for (const roleArn of allRoles) {
49
+ const rawPolicy = await collectClient.getResourcePolicyForArn(roleArn, principalAccountId);
50
+ if (!rawPolicy) {
51
+ continue;
52
+ }
53
+ const allowPerimeter = new PermissionSet('Allow');
54
+ const denyPerimeter = new PermissionSet('Deny');
55
+ for (const action of assumeRoleActions) {
56
+ allowPerimeter.addPermission(new Permission('Allow', 'sts', action, [roleArn], undefined, undefined));
57
+ denyPerimeter.addPermission(new Permission('Deny', 'sts', action, [roleArn], undefined, undefined));
58
+ }
59
+ const roleAcctAllow = new PermissionSet('Allow');
60
+ const rolePrincipalAllow = new PermissionSet('Allow');
61
+ const roleDeny = new PermissionSet('Deny');
62
+ addRoleArnToStatements(rawPolicy, roleArn);
63
+ const trustPolicy = loadPolicy(rawPolicy);
64
+ for (const statement of trustPolicy.statements()) {
65
+ const applies = await statementAppliesToPrincipal(statement, principal, collectClient);
66
+ if (applies === 'PrincipalMatch') {
67
+ if (statement.isAllow()) {
68
+ await addStatementToPermissionSet(statement, rolePrincipalAllow);
69
+ }
70
+ else {
71
+ await addStatementToPermissionSet(statement, roleDeny);
72
+ }
73
+ }
74
+ else if (applies === 'AccountMatch' && statement.isAllow()) {
75
+ await addStatementToPermissionSet(statement, roleAcctAllow);
76
+ }
77
+ }
78
+ const effectivePrincipalAllow = rolePrincipalAllow.intersection(allowPerimeter);
79
+ const effectiveAccountAllow = roleAcctAllow.intersection(allowPerimeter);
80
+ const effectiveDeny = roleDeny.intersection(denyPerimeter);
81
+ if (!effectivePrincipalAllow.isEmpty()) {
82
+ principalAllows.push(effectivePrincipalAllow);
83
+ }
84
+ if (!effectiveAccountAllow.isEmpty()) {
85
+ accountAllows.push(effectiveAccountAllow);
86
+ }
87
+ if (!effectiveDeny.isEmpty()) {
88
+ denies.push(effectiveDeny);
89
+ }
90
+ }
91
+ return {
92
+ accountAllows,
93
+ principalAllows,
94
+ denies
95
+ };
96
+ }
97
+ function addRoleArnToStatements(policy, roleArn) {
98
+ const statement = policy.Statement;
99
+ if (Array.isArray(statement)) {
100
+ for (const statement of policy.Statement) {
101
+ statement.Resource = [roleArn];
102
+ }
103
+ }
104
+ else if (statement) {
105
+ statement.Resource = [roleArn];
106
+ }
107
+ }
108
+ //# sourceMappingURL=iamRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iamRoles.js","sourceRoot":"","sources":["../../../../../src/principalCan/resources/resourceTypes/iamRoles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-copilot/iam-lens",
3
- "version": "0.1.51",
3
+ "version": "0.1.52",
4
4
  "description": "Visibility in IAM in and across AWS accounts",
5
5
  "keywords": [
6
6
  "aws",