@actsecurity/iam-lens 0.1.162 → 0.1.164

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.
Files changed (54) hide show
  1. package/README.md +30 -1
  2. package/dist/cjs/cli.js +38 -15
  3. package/dist/cjs/cli.js.map +1 -1
  4. package/dist/cjs/index.d.ts +1 -1
  5. package/dist/cjs/index.d.ts.map +1 -1
  6. package/dist/cjs/index.js +4 -1
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/principals.d.ts +1 -0
  9. package/dist/cjs/principals.d.ts.map +1 -1
  10. package/dist/cjs/principals.js +5 -2
  11. package/dist/cjs/principals.js.map +1 -1
  12. package/dist/cjs/simulate/cliVariant.d.ts +116 -0
  13. package/dist/cjs/simulate/cliVariant.d.ts.map +1 -0
  14. package/dist/cjs/simulate/cliVariant.js +87 -0
  15. package/dist/cjs/simulate/cliVariant.js.map +1 -0
  16. package/dist/cjs/simulate/contextKeys.d.ts +23 -2
  17. package/dist/cjs/simulate/contextKeys.d.ts.map +1 -1
  18. package/dist/cjs/simulate/contextKeys.js +41 -11
  19. package/dist/cjs/simulate/contextKeys.js.map +1 -1
  20. package/dist/cjs/simulate/generatedPolicies.d.ts +23 -0
  21. package/dist/cjs/simulate/generatedPolicies.d.ts.map +1 -0
  22. package/dist/cjs/simulate/generatedPolicies.js +60 -0
  23. package/dist/cjs/simulate/generatedPolicies.js.map +1 -0
  24. package/dist/cjs/simulate/simulate.d.ts +107 -21
  25. package/dist/cjs/simulate/simulate.d.ts.map +1 -1
  26. package/dist/cjs/simulate/simulate.js +351 -190
  27. package/dist/cjs/simulate/simulate.js.map +1 -1
  28. package/dist/esm/cli.js +39 -16
  29. package/dist/esm/cli.js.map +1 -1
  30. package/dist/esm/index.d.ts +1 -1
  31. package/dist/esm/index.d.ts.map +1 -1
  32. package/dist/esm/index.js +1 -1
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/principals.d.ts +1 -0
  35. package/dist/esm/principals.d.ts.map +1 -1
  36. package/dist/esm/principals.js +5 -2
  37. package/dist/esm/principals.js.map +1 -1
  38. package/dist/esm/simulate/cliVariant.d.ts +116 -0
  39. package/dist/esm/simulate/cliVariant.d.ts.map +1 -0
  40. package/dist/esm/simulate/cliVariant.js +84 -0
  41. package/dist/esm/simulate/cliVariant.js.map +1 -0
  42. package/dist/esm/simulate/contextKeys.d.ts +23 -2
  43. package/dist/esm/simulate/contextKeys.d.ts.map +1 -1
  44. package/dist/esm/simulate/contextKeys.js +40 -12
  45. package/dist/esm/simulate/contextKeys.js.map +1 -1
  46. package/dist/esm/simulate/generatedPolicies.d.ts +23 -0
  47. package/dist/esm/simulate/generatedPolicies.d.ts.map +1 -0
  48. package/dist/esm/simulate/generatedPolicies.js +56 -0
  49. package/dist/esm/simulate/generatedPolicies.js.map +1 -0
  50. package/dist/esm/simulate/simulate.d.ts +107 -21
  51. package/dist/esm/simulate/simulate.d.ts.map +1 -1
  52. package/dist/esm/simulate/simulate.js +350 -192
  53. package/dist/esm/simulate/simulate.js.map +1 -1
  54. package/package.json +1 -1
package/README.md CHANGED
@@ -106,7 +106,7 @@ iam-lens simulate \
106
106
  --resource arn:aws:s3:::my-bucket \
107
107
  --action s3:ListBucket
108
108
 
109
- # Simulate a wildcard action (ListAllMyBuckets) – this will assume the principals account
109
+ # Simulate a wildcard action (ListAllMyBuckets) – normal simulation uses the principal's account
110
110
  iam-lens simulate \
111
111
  --principal arn:aws:iam::222222222222:user/Alice \
112
112
  --action s3:ListAllMyBuckets
@@ -125,8 +125,37 @@ iam-lens simulate \
125
125
  --resource arn:aws:dynamodb:us-east-1:444444444444:table/Books \
126
126
  --action dynamodb:Query \
127
127
  --expect Allowed
128
+
129
+ # Simulate unsigned access to a concrete resource ARN
130
+ iam-lens simulate \
131
+ --anonymous \
132
+ --resource arn:aws:s3:::public-bucket/report.txt \
133
+ --action s3:GetObject
134
+
135
+ # Simulate an administrator principal outside the dataset, without SCPs
136
+ iam-lens simulate \
137
+ --external-principal \
138
+ --principal arn:aws:iam::999999999999:role/ExternalRole \
139
+ --resource arn:aws:s3:::example-bucket/report.txt \
140
+ --action s3:GetObject
141
+
142
+ # Simulate access to a resource outside the dataset
143
+ iam-lens simulate \
144
+ --external-resource \
145
+ --principal arn:aws:iam::444444444444:role/ReadOnly \
146
+ --resource arn:aws:s3:::external-bucket/report.txt \
147
+ --resource-account 999999999999 \
148
+ --action s3:GetObject
128
149
  ```
129
150
 
151
+ The variants make their assumptions explicit:
152
+
153
+ - **Anonymous** requests have no identity policy, session policy, permission boundary, or SCP. A concrete resource ARN is required, but the resource does not need to be collected; specify `--resource-account` when its account cannot be inferred. Principal-derived context keys cannot be supplied. Available resource policies, RCPs, VPC endpoint policies, and collected S3 controls still apply.
154
+ - **External principal** requests model a principal from an uncollected account with a synthetic allow-all identity policy and no permission boundary or SCP. Session policies and collected resource-side controls still apply, so cross-account access still requires an applicable resource-side grant. In Discovery mode, unknown principal attributes such as principal tags are returned as conditions.
155
+ - **External resource** requests require a concrete resource ARN and keep the collected principal's identity policies, permission boundary, session policy, SCPs, and VPC endpoint policies. They apply no RCPs and use a supplied or synthetic resource/trust policy. S3 ABAC and Block Public Access default to disabled for the uncollected resource; ABAC can be enabled with `--s3-abac-override enabled`.
156
+
157
+ Anonymous, external-principal, and external-resource simulations do not support wildcard-only actions. See the full documentation for policy overrides and other details.
158
+
130
159
  [Full simulate documentation](docs/Simulate.md)
131
160
 
132
161
  ### `who-can` - Find who can perform an action on a resource
package/dist/cjs/cli.js CHANGED
@@ -6,6 +6,7 @@ const client_js_1 = require("./collect/client.js");
6
6
  const collect_js_1 = require("./collect/collect.js");
7
7
  const principalCan_js_1 = require("./principalCan/principalCan.js");
8
8
  const makePrincipalIndex_js_1 = require("./principalIndex/makePrincipalIndex.js");
9
+ const cliVariant_js_1 = require("./simulate/cliVariant.js");
9
10
  const simulate_js_1 = require("./simulate/simulate.js");
10
11
  const packageVersion_js_1 = require("./utils/packageVersion.js");
11
12
  const stringOrFileArgument_js_1 = require("./utils/stringOrFileArgument.js");
@@ -39,9 +40,20 @@ const main = async () => {
39
40
  description: 'The expected result of the simulation, if the result does not match the expected response a non-zero exit code will be returned',
40
41
  validValues: ['Allowed', 'ImplicitlyDenied', 'ExplicitlyDenied', 'AnyDeny']
41
42
  }),
42
- ignoreMissingPrincipal: (0, cli_1.booleanArgument)({
43
- description: 'Ignore if the principal does not exist. Useful for simulating actions from principals that may not exist or are outside your data set',
44
- character: 'i'
43
+ anonymous: (0, cli_1.booleanArgument)({
44
+ description: 'Simulate an unsigned request to a concrete resource ARN. Wildcard-only actions are unsupported; cannot be combined with --principal or --session-policy',
45
+ character: 'a'
46
+ }),
47
+ externalPrincipal: (0, cli_1.booleanArgument)({
48
+ description: 'Simulate an uncollected principal with an allow-all identity policy and no SCPs. Wildcard-only actions are unsupported',
49
+ character: 'e'
50
+ }),
51
+ externalResource: (0, cli_1.booleanArgument)({
52
+ description: 'Simulate a concrete resource ARN outside the dataset with no RCPs and an allow-all resource or trust policy. Wildcard-only actions are unsupported',
53
+ character: 'x'
54
+ }),
55
+ resourcePolicy: (0, stringOrFileArgument_js_1.stringOrFileArgument)({
56
+ description: 'Resource policy for --external-resource, or trust policy for an STS assume-role action'
45
57
  }),
46
58
  s3AbacOverride: (0, cli_1.enumArgument)({
47
59
  description: 'Override the S3 ABAC setting for S3 buckets. Defaults to the bucket setting stored in your iam-collect data',
@@ -112,24 +124,35 @@ const main = async () => {
112
124
  checkForUpdates: '@actsecurity/iam-lens'
113
125
  }
114
126
  });
127
+ const simulateSelection = cli.subcommand === 'simulate'
128
+ ? (0, cliVariant_js_1.selectSimulateCliVariant)({
129
+ anonymous: cli.args.anonymous,
130
+ externalPrincipal: cli.args.externalPrincipal,
131
+ externalResource: cli.args.externalResource,
132
+ principal: cli.args.principal,
133
+ resource: cli.args.resource,
134
+ resourceAccount: cli.args.resourceAccount,
135
+ action: cli.args.action,
136
+ customContextKeys: singularizeOneEntryArrays(cli.args.context),
137
+ sessionPolicy: cli.args.sessionPolicy,
138
+ resourcePolicy: cli.args.resourcePolicy,
139
+ s3AbacOverride: cli.args.s3AbacOverride
140
+ })
141
+ : undefined;
115
142
  if (cli.args.collectConfigs.length === 0) {
116
143
  cli.args.collectConfigs.push('./iam-collect.jsonc');
117
144
  }
118
145
  const collectConfigs = await (0, collect_js_1.loadCollectConfigs)(cli.args.collectConfigs);
119
146
  const collectClient = await (0, collect_js_1.getCollectClient)(collectConfigs, cli.args.partition);
120
147
  if (cli.subcommand === 'simulate') {
121
- const { principal, resource, resourceAccount, action, context, ignoreMissingPrincipal, sessionPolicy } = cli.args;
122
- const { request, result } = await (0, simulate_js_1.simulateRequest)({
123
- sessionPolicy,
124
- principal: principal,
125
- resourceArn: resource,
126
- resourceAccount: resourceAccount,
127
- action: action,
128
- customContextKeys: singularizeOneEntryArrays(context),
129
- simulationMode: 'Strict',
130
- ignoreMissingPrincipal,
131
- s3AbacOverride: cli.args.s3AbacOverride
132
- }, collectClient);
148
+ const selection = simulateSelection;
149
+ const { request, result } = selection.variant === 'anonymous'
150
+ ? await (0, simulate_js_1.simulateAnonymousRequest)(selection.request, collectClient)
151
+ : selection.variant === 'externalPrincipal'
152
+ ? await (0, simulate_js_1.simulateExternalPrincipalRequest)(selection.request, collectClient)
153
+ : selection.variant === 'externalResource'
154
+ ? await (0, simulate_js_1.simulateExternalResourceRequest)(selection.request, collectClient)
155
+ : await (0, simulate_js_1.simulateRequest)(selection.request, collectClient);
133
156
  if (result.resultType === 'error') {
134
157
  console.error('Simulation Errors:');
135
158
  console.log(JSON.stringify(result.errors, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AAEA,0CAOyB;AACzB,mDAAqD;AACrD,qDAA2E;AAC3E,oEAA6D;AAC7D,kFAA2E;AAC3E,4DAAmE;AACnE,wDAM+B;AAC/B,iEAA0D;AAC1D,6EAAsE;AACtE,kDAA2C;AAE3C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAiB,EACjC,UAAU,EACV;QACE,QAAQ,EAAE;YACR,WAAW,EAAE,yBAAyB;YACtC,SAAS,EAAE;gBACT,SAAS,EAAE,IAAA,oBAAc,EAAC;oBACxB,WAAW,EAAE,yEAAyE;iBACvF,CAAC;gBACF,QAAQ,EAAE,IAAA,oBAAc,EAAC;oBACvB,WAAW,EACT,4EAA4E;iBAC/E,CAAC;gBACF,eAAe,EAAE,IAAA,oBAAc,EAAC;oBAC9B,WAAW,EACT,iGAAiG;iBACpG,CAAC;gBACF,MAAM,EAAE,IAAA,oBAAc,EAAC;oBACrB,WAAW,EACT,wFAAwF;iBAC3F,CAAC;gBACF,OAAO,EAAE,IAAA,iBAAW,EAAC;oBACnB,WAAW,EACT,6JAA6J;oBAC/J,YAAY,EAAE,EAAE;iBACjB,CAAC;gBACF,OAAO,EAAE,IAAA,qBAAe,EAAC;oBACvB,WAAW,EAAE,0CAA0C;oBACvD,SAAS,EAAE,GAAG;iBACf,CAAC;gBACF,MAAM,EAAE,IAAA,kBAAY,EAAC;oBACnB,WAAW,EACT,iIAAiI;oBACnI,WAAW,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,CAAC;iBAC5E,CAAC;gBACF,SAAS,EAAE,IAAA,qBAAe,EAAC;oBACzB,WAAW,EACT,yJAAyJ;oBAC3J,SAAS,EAAE,GAAG;iBACf,CAAC;gBACF,iBAAiB,EAAE,IAAA,qBAAe,EAAC;oBACjC,WAAW,EACT,wHAAwH;oBAC1H,SAAS,EAAE,GAAG;iBACf,CAAC;gBACF,gBAAgB,EAAE,IAAA,qBAAe,EAAC;oBAChC,WAAW,EACT,oJAAoJ;oBACtJ,SAAS,EAAE,GAAG;iBACf,CAAC;gBACF,cAAc,EAAE,IAAA,8CAAoB,EAAC;oBACnC,WAAW,EACT,wFAAwF;iBAC3F,CAAC;gBACF,cAAc,EAAE,IAAA,kBAAY,EAAC;oBAC3B,WAAW,EACT,6GAA6G;oBAC/G,WAAW,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;oBACpC,YAAY,EAAE,SAAS;iBACxB,CAAC;gBACF,aAAa,EAAE,IAAA,8CAAoB,EAAC;oBAClC,WAAW,EACT,iFAAiF;iBACpF,CAAC;aACH;SACF;QACD,SAAS,EAAE;YACT,WAAW,EAAE,8CAA8C;YAC3D,SAAS,EAAE;gBACT,QAAQ,EAAE,IAAA,oBAAc,EAAC;oBACvB,WAAW,EACT,+EAA+E;iBAClF,CAAC;gBACF,eAAe,EAAE,IAAA,oBAAc,EAAC;oBAC9B,WAAW,EACT,+HAA+H;iBAClI,CAAC;gBACF,OAAO,EAAE,IAAA,yBAAmB,EAAC;oBAC3B,WAAW,EACT,qGAAqG;oBACvG,YAAY,EAAE,EAAE;iBACjB,CAAC;gBACF,cAAc,EAAE,IAAA,kBAAY,EAAC;oBAC3B,WAAW,EACT,6GAA6G;oBAC/G,WAAW,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;oBACpC,YAAY,EAAE,SAAS;iBACxB,CAAC;gBACF,IAAI,EAAE,IAAA,qBAAe,EAAC;oBACpB,WAAW,EAAE,oCAAoC;oBACjD,SAAS,EAAE,GAAG;iBACf,CAAC;aACH;SACF;QACD,eAAe,EAAE;YACf,WAAW,EACT,2FAA2F;YAC7F,SAAS,EAAE;gBACT,SAAS,EAAE,IAAA,oBAAc,EAAC;oBACxB,WAAW,EAAE,+DAA+D;iBAC7E,CAAC;gBACF,iBAAiB,EAAE,IAAA,qBAAe,EAAC;oBACjC,WAAW,EAAE,2CAA2C;oBACxD,SAAS,EAAE,GAAG;iBACf,CAAC;aACH;SACF;QACD,kBAAkB,EAAE;YAClB,WAAW,EAAE,sBAAsB;YACnC,SAAS,EAAE,EAAE;SACd;KACF,EACD;QACE,cAAc,EAAE,IAAA,yBAAmB,EAAC;YAClC,WAAW,EAAE,4CAA4C;YACzD,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,SAAS,EAAE,IAAA,oBAAc,EAAC;YACxB,WAAW,EAAE,qEAAqE;YAClF,YAAY,EAAE,KAAK;SACpB,CAAC;KACH,EACD;QACE,SAAS,EAAE,UAAU;QACrB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,cAAc,EAAE,kCAAc;YAC9B,eAAe,EAAE,uBAAuB;SACzC;KACF,CACF,CAAA;IAED,MAAM,iBAAiB,GACrB,GAAG,CAAC,UAAU,KAAK,UAAU;QAC3B,CAAC,CAAC,IAAA,wCAAwB,EAAC;YACvB,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;YAC7B,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB;YAC7C,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB;YAC3C,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;YAC7B,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC3B,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe;YACzC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;YACvB,iBAAiB,EAAE,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9D,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa;YACrC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;YACvC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;SACxC,CAAC;QACJ,CAAC,CAAC,SAAS,CAAA;IAEf,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACrD,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,IAAA,+BAAkB,EAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACxE,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,EAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEhF,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,iBAAkB,CAAA;QACpC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GACvB,SAAS,CAAC,OAAO,KAAK,WAAW;YAC/B,CAAC,CAAC,MAAM,IAAA,sCAAwB,EAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;YAClE,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,mBAAmB;gBACzC,CAAC,CAAC,MAAM,IAAA,8CAAgC,EAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;gBAC1E,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,kBAAkB;oBACxC,CAAC,CAAC,MAAM,IAAA,6CAA+B,EAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;oBACzE,CAAC,CAAC,MAAM,IAAA,6BAAe,EAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAEjE,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;YACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;QACzD,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC,IAAA,sCAAwB,EAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,aAAc,CAAC,EAAE,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QACvD,IAAI,CAAC,eAAe,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAM,EAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YAC/D,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAS;YAC5B,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAQ;YAC1B,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe;YACzC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc;YACvC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;SACpB,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;QAC9C,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAA;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAY,EAAC,aAAa,EAAE;YAChD,SAAS,EAAE,SAAS;YACpB,iBAAiB;SAClB,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,kBAAkB,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,IAAA,6BAAgB,EAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YAC7E,aAAa,EAAE,IAAI,2BAAe,EAAE;SACrC,CAAC,CAAA;QACF,MAAM,IAAA,0CAAkB,EAAC,WAAW,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAChC,KAA+B;IAE/B,MAAM,MAAM,GAAsC,EAAE,CAAA;IACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,IAAI,EAAE;KACH,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC;KACD,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;KACd,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA"}
@@ -4,7 +4,7 @@ export { getCollectClient, loadCollectConfigs, type ClientFactoryPlugin, type Co
4
4
  export { principalCan, type PrincipalCanInput } from './principalCan/principalCan.js';
5
5
  export { makePrincipalIndex } from './principalIndex/makePrincipalIndex.js';
6
6
  export type { ContextKeys } from './simulate/contextKeys.js';
7
- export { simulateRequest, type SimulationRequest } from './simulate/simulate.js';
7
+ export { simulateRequest, simulateAnonymousRequest, simulateExternalPrincipalRequest, simulateExternalResourceRequest, type SimulationRequest, type AnonymousSimulationRequest, type ExternalResourceSimulationRequest, type SimulateRequestResult } from './simulate/simulate.js';
8
8
  export { whoCan, type WhoCanPrincipalScope, type ResourceAccessRequest, type WhoCanAllowed, type WhoCanAllowedResourcePattern, type WhoCanResponse } from './whoCan/whoCan.js';
9
9
  export { WhoCanProcessor, type WhoCanProcessorConfig, type WhoCanProcessorRequest, type WhoCanSettledEvent, type WhoCanSettledSuccess, type WhoCanSettledError, type WorkerBootstrapPlugin } from './whoCan/WhoCanProcessor.js';
10
10
  export { type LightRequestAnalysis, type LightResourceAnalysis, type LightResourceAnalysisWithPattern, type SingleResourceLightRequestAnalysis, type WildcardResourceLightRequestAnalysis } from './whoCan/requestAnalysis.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,qBAAqB,EACrB,aAAa,EACb,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACL,MAAM,EACN,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,EAC1C,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,0BAA0B,EAC1B,kBAAkB,EAClB,KAAK,kCAAkC,EACxC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,qBAAqB,EACrB,aAAa,EACb,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,gCAAgC,EAChC,+BAA+B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,MAAM,EACN,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,EAC1C,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,0BAA0B,EAC1B,kBAAkB,EAClB,KAAK,kCAAkC,EACxC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Permission = exports.toPolicyStatements = exports.addPoliciesToPermissionSet = exports.buildPermissionSetFromPolicies = exports.PermissionSet = exports.WhoCanProcessor = exports.whoCan = exports.simulateRequest = exports.makePrincipalIndex = exports.principalCan = exports.loadCollectConfigs = exports.getCollectClient = exports.NoCacheProvider = exports.InMemoryCacheProvider = exports.IamCollectClient = void 0;
3
+ exports.Permission = exports.toPolicyStatements = exports.addPoliciesToPermissionSet = exports.buildPermissionSetFromPolicies = exports.PermissionSet = exports.WhoCanProcessor = exports.whoCan = exports.simulateExternalResourceRequest = exports.simulateExternalPrincipalRequest = exports.simulateAnonymousRequest = exports.simulateRequest = exports.makePrincipalIndex = exports.principalCan = exports.loadCollectConfigs = exports.getCollectClient = exports.NoCacheProvider = exports.InMemoryCacheProvider = exports.IamCollectClient = void 0;
4
4
  var client_js_1 = require("./collect/client.js");
5
5
  Object.defineProperty(exports, "IamCollectClient", { enumerable: true, get: function () { return client_js_1.IamCollectClient; } });
6
6
  Object.defineProperty(exports, "InMemoryCacheProvider", { enumerable: true, get: function () { return client_js_1.InMemoryCacheProvider; } });
@@ -14,6 +14,9 @@ var makePrincipalIndex_js_1 = require("./principalIndex/makePrincipalIndex.js");
14
14
  Object.defineProperty(exports, "makePrincipalIndex", { enumerable: true, get: function () { return makePrincipalIndex_js_1.makePrincipalIndex; } });
15
15
  var simulate_js_1 = require("./simulate/simulate.js");
16
16
  Object.defineProperty(exports, "simulateRequest", { enumerable: true, get: function () { return simulate_js_1.simulateRequest; } });
17
+ Object.defineProperty(exports, "simulateAnonymousRequest", { enumerable: true, get: function () { return simulate_js_1.simulateAnonymousRequest; } });
18
+ Object.defineProperty(exports, "simulateExternalPrincipalRequest", { enumerable: true, get: function () { return simulate_js_1.simulateExternalPrincipalRequest; } });
19
+ Object.defineProperty(exports, "simulateExternalResourceRequest", { enumerable: true, get: function () { return simulate_js_1.simulateExternalResourceRequest; } });
17
20
  var whoCan_js_1 = require("./whoCan/whoCan.js");
18
21
  Object.defineProperty(exports, "whoCan", { enumerable: true, get: function () { return whoCan_js_1.whoCan; } });
19
22
  var WhoCanProcessor_js_1 = require("./whoCan/WhoCanProcessor.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAL1B,6GAAA,gBAAgB,OAAA;AAChB,kHAAA,qBAAqB,OAAA;AACrB,4GAAA,eAAe,OAAA;AAYjB,mDAK6B;AAJ3B,8GAAA,gBAAgB,OAAA;AAChB,gHAAA,kBAAkB,OAAA;AAIpB,kEAAqF;AAA5E,+GAAA,YAAY,OAAA;AACrB,gFAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAE3B,sDAAgF;AAAvE,8GAAA,eAAe,OAAA;AACxB,gDAO2B;AANzB,mGAAA,MAAM,OAAA;AAOR,kEAQoC;AAPlC,qHAAA,eAAe,OAAA;AAejB,oEAMwC;AALtC,iHAAA,aAAa,OAAA;AACb,kIAAA,8BAA8B,OAAA;AAC9B,8HAAA,0BAA0B,OAAA;AAC1B,sHAAA,kBAAkB,OAAA;AAGpB,8DAMqC;AALnC,2GAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAL1B,6GAAA,gBAAgB,OAAA;AAChB,kHAAA,qBAAqB,OAAA;AACrB,4GAAA,eAAe,OAAA;AAYjB,mDAK6B;AAJ3B,8GAAA,gBAAgB,OAAA;AAChB,gHAAA,kBAAkB,OAAA;AAIpB,kEAAqF;AAA5E,+GAAA,YAAY,OAAA;AACrB,gFAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAE3B,sDAS+B;AAR7B,8GAAA,eAAe,OAAA;AACf,uHAAA,wBAAwB,OAAA;AACxB,+HAAA,gCAAgC,OAAA;AAChC,8HAAA,+BAA+B,OAAA;AAMjC,gDAO2B;AANzB,mGAAA,MAAM,OAAA;AAOR,kEAQoC;AAPlC,qHAAA,eAAe,OAAA;AAejB,oEAMwC;AALtC,iHAAA,aAAa,OAAA;AACb,kIAAA,8BAA8B,OAAA;AAC9B,8HAAA,0BAA0B,OAAA;AAC1B,sHAAA,kBAAkB,OAAA;AAGpB,8DAMqC;AALnC,2GAAA,UAAU,OAAA"}
@@ -32,6 +32,7 @@ export declare function getAllPoliciesForRole(collectClient: IamCollectClient, p
32
32
  *
33
33
  * IAM role and assumed-role principals are resolved to their canonical stored ARN before
34
34
  * loading policies so pathless STS session principals can use path-qualified IAM role data.
35
+ * SCPs are omitted for service-linked roles because they are not subject to SCP enforcement.
35
36
  *
36
37
  * @param collectClient the IAM collect client to use for retrieving policies
37
38
  * @param principalArn the ARN or service principal to get policies for
@@ -1 +1 @@
1
- {"version":3,"file":"principals.d.ts","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,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;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,gBAAgB,EAC/B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC,CA4B5B;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;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM1D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM1D;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAMlB"}
1
+ {"version":3,"file":"principals.d.ts","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,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;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,gBAAgB,EAC/B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC,CA8B5B;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;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM1D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM1D;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAMlB"}
@@ -71,6 +71,7 @@ async function getAllPoliciesForRole(collectClient, principalArn) {
71
71
  *
72
72
  * IAM role and assumed-role principals are resolved to their canonical stored ARN before
73
73
  * loading policies so pathless STS session principals can use path-qualified IAM role data.
74
+ * SCPs are omitted for service-linked roles because they are not subject to SCP enforcement.
74
75
  *
75
76
  * @param collectClient the IAM collect client to use for retrieving policies
76
77
  * @param principalArn the ARN or service principal to get policies for
@@ -94,12 +95,14 @@ async function getAllPoliciesForPrincipal(collectClient, principalArn) {
94
95
  }
95
96
  else if ((0, iam_utils_1.isIamRoleArn)(principalArn)) {
96
97
  const roleArn = (await collectClient.resolvePrincipalArn(principalArn)) ?? principalArn;
97
- return getAllPoliciesForRole(collectClient, roleArn);
98
+ const policies = await getAllPoliciesForRole(collectClient, roleArn);
99
+ return isServiceLinkedRole(roleArn) ? { ...policies, scps: [] } : policies;
98
100
  }
99
101
  else if ((0, iam_utils_1.isAssumedRoleArn)(principalArn)) {
100
102
  const roleArn = (await collectClient.resolvePrincipalArn(principalArn)) ??
101
103
  (0, iam_utils_1.convertAssumedRoleArnToRoleArn)(principalArn);
102
- return getAllPoliciesForRole(collectClient, roleArn);
104
+ const policies = await getAllPoliciesForRole(collectClient, roleArn);
105
+ return isServiceLinkedRole(roleArn) ? { ...policies, scps: [] } : policies;
103
106
  }
104
107
  throw new Error(`Unsupported principal type: ${principalArn}`);
105
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import type { S3AbacOverride } from '../utils/s3Abac.js';
2
+ import { type ContextKeys } from './contextKeys.js';
3
+ import type { AnonymousSimulationRequest, ExternalResourceSimulationRequest, SimulationRequest } from './simulate.js';
4
+ /**
5
+ * Parsed CLI values used to select and construct a simulation request variant.
6
+ */
7
+ export interface SimulateCliOptions {
8
+ /**
9
+ * Whether to simulate an unsigned request.
10
+ */
11
+ anonymous?: boolean;
12
+ /**
13
+ * Whether to simulate a synthetic administrator principal.
14
+ */
15
+ externalPrincipal?: boolean;
16
+ /**
17
+ * Whether to simulate a resource outside the collected dataset.
18
+ */
19
+ externalResource?: boolean;
20
+ /**
21
+ * Authenticated principal for non-anonymous simulations.
22
+ */
23
+ principal?: string;
24
+ /**
25
+ * Resource ARN supplied on the command line.
26
+ */
27
+ resource?: string;
28
+ /**
29
+ * Explicit resource account supplied on the command line.
30
+ */
31
+ resourceAccount?: string;
32
+ /**
33
+ * IAM action supplied on the command line.
34
+ */
35
+ action?: string;
36
+ /**
37
+ * Caller-provided IAM context values.
38
+ */
39
+ customContextKeys: ContextKeys;
40
+ /**
41
+ * Optional session policy parsed from JSON or a file.
42
+ */
43
+ sessionPolicy?: any;
44
+ /**
45
+ * Optional external resource or trust policy parsed from JSON or a file.
46
+ */
47
+ resourcePolicy?: unknown;
48
+ /**
49
+ * Optional S3 ABAC behavior override.
50
+ */
51
+ s3AbacOverride?: S3AbacOverride;
52
+ }
53
+ /**
54
+ * A validated normal simulation selected by CLI options.
55
+ */
56
+ export interface NormalSimulateCliSelection {
57
+ /**
58
+ * Discriminant identifying normal collected-principal and collected-resource simulation.
59
+ */
60
+ variant: 'normal';
61
+ /**
62
+ * Request passed to {@link simulateRequest}.
63
+ */
64
+ request: SimulationRequest;
65
+ }
66
+ /**
67
+ * A validated anonymous simulation selected by CLI options.
68
+ */
69
+ export interface AnonymousSimulateCliSelection {
70
+ /**
71
+ * Discriminant identifying unsigned simulation.
72
+ */
73
+ variant: 'anonymous';
74
+ /**
75
+ * Request passed to {@link simulateAnonymousRequest}.
76
+ */
77
+ request: AnonymousSimulationRequest;
78
+ }
79
+ /**
80
+ * A validated external-principal simulation selected by CLI options.
81
+ */
82
+ export interface ExternalPrincipalSimulateCliSelection {
83
+ /**
84
+ * Discriminant identifying synthetic administrator-principal simulation.
85
+ */
86
+ variant: 'externalPrincipal';
87
+ /**
88
+ * Request passed to {@link simulateExternalPrincipalRequest}.
89
+ */
90
+ request: SimulationRequest;
91
+ }
92
+ /**
93
+ * A validated external-resource simulation selected by CLI options.
94
+ */
95
+ export interface ExternalResourceSimulateCliSelection {
96
+ /**
97
+ * Discriminant identifying simulation against an uncollected resource.
98
+ */
99
+ variant: 'externalResource';
100
+ /**
101
+ * Request passed to {@link simulateExternalResourceRequest}.
102
+ */
103
+ request: ExternalResourceSimulationRequest;
104
+ }
105
+ /**
106
+ * Validated simulation selection produced from CLI arguments.
107
+ */
108
+ export type SimulateCliSelection = NormalSimulateCliSelection | AnonymousSimulateCliSelection | ExternalPrincipalSimulateCliSelection | ExternalResourceSimulateCliSelection;
109
+ /**
110
+ * Validate simulation CLI options and construct the corresponding library request.
111
+ *
112
+ * @param options parsed CLI simulation options
113
+ * @returns a discriminated simulation selection ready for dispatch
114
+ */
115
+ export declare function selectSimulateCliVariant(options: SimulateCliOptions): SimulateCliSelection;
116
+ //# sourceMappingURL=cliVariant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliVariant.d.ts","sourceRoot":"","sources":["../../../src/simulate/cliVariant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,KAAK,EACV,0BAA0B,EAC1B,iCAAiC,EACjC,iBAAiB,EAClB,MAAM,eAAe,CAAA;AAEtB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,iBAAiB,EAAE,WAAW,CAAA;IAE9B;;OAEG;IACH,aAAa,CAAC,EAAE,GAAG,CAAA;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAA;IAEjB;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,OAAO,EAAE,WAAW,CAAA;IAEpB;;OAEG;IACH,OAAO,EAAE,0BAA0B,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,qCAAqC;IACpD;;OAEG;IACH,OAAO,EAAE,mBAAmB,CAAA;IAE5B;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD;;OAEG;IACH,OAAO,EAAE,kBAAkB,CAAA;IAE3B;;OAEG;IACH,OAAO,EAAE,iCAAiC,CAAA;CAC3C;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B,0BAA0B,GAC1B,6BAA6B,GAC7B,qCAAqC,GACrC,oCAAoC,CAAA;AAExC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,CAiF1F"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectSimulateCliVariant = selectSimulateCliVariant;
4
+ const contextKeys_js_1 = require("./contextKeys.js");
5
+ /**
6
+ * Validate simulation CLI options and construct the corresponding library request.
7
+ *
8
+ * @param options parsed CLI simulation options
9
+ * @returns a discriminated simulation selection ready for dispatch
10
+ */
11
+ function selectSimulateCliVariant(options) {
12
+ const variants = [options.anonymous, options.externalPrincipal, options.externalResource].filter(Boolean);
13
+ if (variants.length > 1) {
14
+ throw new Error('Only one of --anonymous, --external-principal, or --external-resource may be specified.');
15
+ }
16
+ if (!options.action) {
17
+ throw new Error('--action is required for simulate.');
18
+ }
19
+ if (options.resourcePolicy !== undefined && !options.externalResource) {
20
+ throw new Error('--resource-policy may only be used with --external-resource.');
21
+ }
22
+ const commonRequest = {
23
+ resourceArn: options.resource,
24
+ resourceAccount: options.resourceAccount,
25
+ action: options.action,
26
+ customContextKeys: options.customContextKeys,
27
+ simulationMode: 'Strict',
28
+ s3AbacOverride: options.s3AbacOverride
29
+ };
30
+ if (options.anonymous) {
31
+ if (options.principal) {
32
+ throw new Error('--principal cannot be used with --anonymous.');
33
+ }
34
+ if (options.sessionPolicy !== undefined) {
35
+ throw new Error('--session-policy cannot be used with --anonymous.');
36
+ }
37
+ if (!options.resource) {
38
+ throw new Error('--resource is required with --anonymous.');
39
+ }
40
+ const invalidContextKey = Object.keys(options.customContextKeys).find(contextKeys_js_1.isAnonymousPrincipalContextKey);
41
+ if (invalidContextKey) {
42
+ throw new Error(`Anonymous simulations cannot specify principal-derived context key ${invalidContextKey}.`);
43
+ }
44
+ return {
45
+ variant: 'anonymous',
46
+ request: { ...commonRequest, resourceArn: options.resource }
47
+ };
48
+ }
49
+ if (!options.principal) {
50
+ throw new Error('--principal is required unless --anonymous is specified.');
51
+ }
52
+ const authenticatedRequest = {
53
+ ...commonRequest,
54
+ principal: options.principal,
55
+ sessionPolicy: options.sessionPolicy
56
+ };
57
+ if (options.externalPrincipal) {
58
+ return { variant: 'externalPrincipal', request: authenticatedRequest };
59
+ }
60
+ if (options.externalResource) {
61
+ if (!options.resource) {
62
+ throw new Error('--resource is required with --external-resource.');
63
+ }
64
+ if (options.resourcePolicy !== undefined && !isJsonObject(options.resourcePolicy)) {
65
+ throw new Error('--resource-policy must contain a JSON object.');
66
+ }
67
+ return {
68
+ variant: 'externalResource',
69
+ request: {
70
+ ...authenticatedRequest,
71
+ resourceArn: options.resource,
72
+ resourcePolicy: options.resourcePolicy
73
+ }
74
+ };
75
+ }
76
+ return { variant: 'normal', request: authenticatedRequest };
77
+ }
78
+ /**
79
+ * Check whether a parsed JSON value is an object suitable for policy validation.
80
+ *
81
+ * @param value parsed JSON value
82
+ * @returns true for non-null, non-array objects
83
+ */
84
+ function isJsonObject(value) {
85
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
86
+ }
87
+ //# sourceMappingURL=cliVariant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliVariant.js","sourceRoot":"","sources":["../../../src/simulate/cliVariant.ts"],"names":[],"mappings":";;AA+IA,4DAiFC;AA/ND,qDAAmF;AAwInF;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,OAA2B;IAClE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAC9F,OAAO,CACR,CAAA;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAA;IACH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,WAAW,EAAE,OAAO,CAAC,QAAQ;QAC7B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,cAAc,EAAE,QAAiB;QACjC,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAA;IAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACtE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CACnE,+CAA8B,CAC/B,CAAA;QACD,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,sEAAsE,iBAAiB,GAAG,CAC3F,CAAA;QACH,CAAC;QACD,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE;SAC7D,CAAA;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,oBAAoB,GAAsB;QAC9C,GAAG,aAAa;QAChB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAA;IAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAA;IACxE,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAClE,CAAC;QACD,OAAO;YACL,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE;gBACP,GAAG,oBAAoB;gBACvB,WAAW,EAAE,OAAO,CAAC,QAAQ;gBAC7B,cAAc,EAAE,OAAO,CAAC,cAAc;aACvC;SACF,CAAA;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAC7D,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { IamCollectClient } from '../collect/client.js';
2
- import { type SimulationRequest } from './simulate.js';
2
+ import type { InternalSimulationRequest } from './simulate.js';
3
3
  /**
4
4
  * Context keys for IAM simulation requests.
5
5
  *
@@ -8,6 +8,15 @@ import { type SimulationRequest } from './simulate.js';
8
8
  * context keys that may be required for the simulation.
9
9
  */
10
10
  export type ContextKeys = Record<string, string | string[]>;
11
+ /**
12
+ * Controls optional collected metadata lookups while deriving context keys.
13
+ */
14
+ export interface CreateContextKeysOptions {
15
+ /**
16
+ * Whether resource tags and presence should be loaded from collected data.
17
+ */
18
+ includeResourceMetadata?: boolean;
19
+ }
11
20
  /**
12
21
  * Placeholder for the caller account AWS supplies on a service-mediated KMS request.
13
22
  *
@@ -25,6 +34,17 @@ export declare const CONTEXT_KEYS: {
25
34
  vpcEndpointOrgPaths: string;
26
35
  vpcArn: string;
27
36
  };
37
+ /**
38
+ * Determine whether a context key requires an authenticated principal or its credentials.
39
+ *
40
+ * Anonymous requests cannot supply these keys as overrides because AWS treats the corresponding
41
+ * principal identity as absent. Principal-prefixed keys include fixed keys such as
42
+ * `aws:PrincipalArn` and dynamic keys such as `aws:PrincipalTag/team`.
43
+ *
44
+ * @param key context key name to classify
45
+ * @returns whether the key is unavailable to anonymous requests
46
+ */
47
+ export declare function isAnonymousPrincipalContextKey(key: string): boolean;
28
48
  /**
29
49
  * Checks if a context has a specific key (case-insensitive).
30
50
  *
@@ -49,9 +69,10 @@ export declare function contextValue(context: ContextKeys, key: string): string
49
69
  * @param service the service the request is for
50
70
  * @param contextKeyOverrides the context key overrides to apply
51
71
  * @param resolvedPrincipalArnForContext canonical principal ARN to use for role-backed context keys
72
+ * @param options controls collected resource metadata lookups
52
73
  * @returns a promise that resolves to the context keys for the simulation request
53
74
  */
54
- export declare function createContextKeys(collectClient: IamCollectClient, simulationRequest: SimulationRequest, service: string, contextKeyOverrides: ContextKeys, resolvedPrincipalArnForContext?: string): Promise<{
75
+ export declare function createContextKeys(collectClient: IamCollectClient, simulationRequest: InternalSimulationRequest, service: string, contextKeyOverrides: ContextKeys, resolvedPrincipalArnForContext?: string, options?: CreateContextKeysOptions): Promise<{
55
76
  resourceTagsAreKnown: boolean;
56
77
  contextKeys: ContextKeys;
57
78
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"contextKeys.d.ts","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AAE3D;;;;GAIG;AACH,eAAO,MAAM,2CAA2C,iBAAiB,CAAA;AAEzE,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAyB7C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;CASxB,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAK7F;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,gBAAgB,EAC/B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,WAAW,EAChC,8BAA8B,CAAC,EAAE,MAAM,GACtC,OAAO,CAAC;IAAE,oBAAoB,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,CAAC,CAuItE;AAwBD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,WAAW,CAAC,CAgEtB;AAyCD;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E"}
1
+ {"version":3,"file":"contextKeys.d.ts","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAED;;;;GAIG;AACH,eAAO,MAAM,2CAA2C,iBAAiB,CAAA;AAEzE,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAyB7C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;CASxB,CAAA;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKnE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAK7F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,gBAAgB,EAC/B,iBAAiB,EAAE,yBAAyB,EAC5C,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,WAAW,EAChC,8BAA8B,CAAC,EAAE,MAAM,EACvC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC;IAAE,oBAAoB,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,CAAC,CAsItE;AAwBD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,WAAW,CAAC,CAgEtB;AAyCD;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E"}