@actsecurity/iam-lens 0.1.163 → 0.1.165

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 +357 -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 +356 -192
  53. package/dist/esm/simulate/simulate.js.map +1 -1
  54. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CONTEXT_KEYS = exports.knownContextKeys = exports.servicePrincipalKmsCallerAccountPlaceholder = void 0;
4
+ exports.isAnonymousPrincipalContextKey = isAnonymousPrincipalContextKey;
4
5
  exports.contextHasKey = contextHasKey;
5
6
  exports.contextValue = contextValue;
6
7
  exports.createContextKeys = createContextKeys;
@@ -46,6 +47,33 @@ exports.CONTEXT_KEYS = {
46
47
  vpcEndpointOrgPaths: 'aws:VpceOrgPaths',
47
48
  vpcArn: 'aws:SourceVpcArn'
48
49
  };
50
+ const anonymousPrincipalContextKeys = new Set([
51
+ 'aws:assumedroot',
52
+ 'aws:ec2instancesourceprivateipv4',
53
+ 'aws:ec2instancesourcevpc',
54
+ 'aws:federatedprovider',
55
+ 'aws:multifactorauthage',
56
+ 'aws:multifactorauthpresent',
57
+ 'aws:sourceidentity',
58
+ 'aws:tokenissuetime',
59
+ 'aws:username',
60
+ 'aws:userid',
61
+ 'kms:calleraccount'
62
+ ]);
63
+ /**
64
+ * Determine whether a context key requires an authenticated principal or its credentials.
65
+ *
66
+ * Anonymous requests cannot supply these keys as overrides because AWS treats the corresponding
67
+ * principal identity as absent. Principal-prefixed keys include fixed keys such as
68
+ * `aws:PrincipalArn` and dynamic keys such as `aws:PrincipalTag/team`.
69
+ *
70
+ * @param key context key name to classify
71
+ * @returns whether the key is unavailable to anonymous requests
72
+ */
73
+ function isAnonymousPrincipalContextKey(key) {
74
+ const normalizedKey = key.toLowerCase();
75
+ return (normalizedKey.startsWith('aws:principal') || anonymousPrincipalContextKeys.has(normalizedKey));
76
+ }
49
77
  /**
50
78
  * Checks if a context has a specific key (case-insensitive).
51
79
  *
@@ -75,20 +103,22 @@ function contextValue(context, key) {
75
103
  * @param service the service the request is for
76
104
  * @param contextKeyOverrides the context key overrides to apply
77
105
  * @param resolvedPrincipalArnForContext canonical principal ARN to use for role-backed context keys
106
+ * @param options controls collected resource metadata lookups
78
107
  * @returns a promise that resolves to the context keys for the simulation request
79
108
  */
80
- async function createContextKeys(collectClient, simulationRequest, service, contextKeyOverrides, resolvedPrincipalArnForContext) {
109
+ async function createContextKeys(collectClient, simulationRequest, service, contextKeyOverrides, resolvedPrincipalArnForContext, options = {}) {
81
110
  const contextKeys = {
82
111
  'aws:SecureTransport': 'true',
83
112
  'aws:CurrentTime': new Date().toISOString(),
84
113
  'aws:EpochTime': Math.floor(Date.now() / 1000).toString()
85
114
  };
86
- if ((0, principals_js_1.isArnPrincipal)(simulationRequest.principal)) {
87
- const arnParts = (0, iam_utils_1.splitArnParts)(simulationRequest.principal);
115
+ const principal = simulationRequest.principal;
116
+ if (principal && (0, principals_js_1.isArnPrincipal)(principal)) {
117
+ const arnParts = (0, iam_utils_1.splitArnParts)(principal);
88
118
  const principalArnForContext = resolvedPrincipalArnForContext ??
89
119
  (arnParts.resourceType === 'assumed-role'
90
- ? (0, iam_utils_1.convertAssumedRoleArnToRoleArn)(simulationRequest.principal)
91
- : simulationRequest.principal);
120
+ ? (0, iam_utils_1.convertAssumedRoleArnToRoleArn)(principal)
121
+ : principal);
92
122
  contextKeys['aws:PrincipalArn'] = principalArnForContext;
93
123
  const principalAccountId = arnParts.accountId;
94
124
  contextKeys['aws:PrincipalAccount'] = arnParts.accountId || '';
@@ -106,13 +136,13 @@ async function createContextKeys(collectClient, simulationRequest, service, cont
106
136
  if (service.toLowerCase() === 'kms') {
107
137
  contextKeys['kms:CallerAccount'] = principalAccountId;
108
138
  }
109
- if (simulationRequest.principal.endsWith(':root')) {
139
+ if (principal.endsWith(':root')) {
110
140
  contextKeys['aws:PrincipalType'] = 'Account';
111
141
  contextKeys['aws:userid'] = principalAccountId;
112
142
  }
113
143
  else if (arnParts.resourceType === 'user') {
114
144
  contextKeys['aws:PrincipalType'] = 'User';
115
- const userUniqueId = await collectClient.getUniqueIdForIamResource(simulationRequest.principal);
145
+ const userUniqueId = await collectClient.getUniqueIdForIamResource(principal);
116
146
  contextKeys['aws:userid'] = userUniqueId || 'UNKNOWN';
117
147
  const userName = arnParts.resourcePath?.split('/').at(-1);
118
148
  contextKeys['aws:username'] = userName;
@@ -126,7 +156,7 @@ async function createContextKeys(collectClient, simulationRequest, service, cont
126
156
  //TODO: Set aws:userId for role principals
127
157
  if (arnParts.resourceType === 'assumed-role') {
128
158
  const sessionName = arnParts.resourcePath?.split('/').at(-1);
129
- const roleArn = (0, iam_utils_1.convertAssumedRoleArnToRoleArn)(simulationRequest.principal);
159
+ const roleArn = (0, iam_utils_1.convertAssumedRoleArnToRoleArn)(principal);
130
160
  const roleUniqueId = await collectClient.getUniqueIdForIamResource(roleArn);
131
161
  contextKeys['aws:userid'] = `${roleUniqueId || 'UNKNOWN'}:${sessionName}`;
132
162
  }
@@ -143,7 +173,7 @@ async function createContextKeys(collectClient, simulationRequest, service, cont
143
173
  }
144
174
  }
145
175
  let resourceTagsAreKnown = false;
146
- if (simulationRequest.resourceArn) {
176
+ if (simulationRequest.resourceArn && options.includeResourceMetadata !== false) {
147
177
  const isBucket = (0, iam_utils_1.isS3BucketOrObjectArn)(simulationRequest.resourceArn);
148
178
  const { tags: resourceTags, present: resourceTagsPreset } = await collectClient.getTagsForResource(isBucket ? (0, iam_utils_1.bucketArn)(simulationRequest.resourceArn) : simulationRequest.resourceArn, simulationRequest.resourceAccount);
149
179
  resourceTagsAreKnown = resourceTagsPreset;
@@ -155,9 +185,9 @@ async function createContextKeys(collectClient, simulationRequest, service, cont
155
185
  }
156
186
  }
157
187
  //Service Principal context keys
158
- if ((0, principals_js_1.isServicePrincipal)(simulationRequest.principal)) {
188
+ if (principal && (0, principals_js_1.isServicePrincipal)(principal)) {
159
189
  contextKeys['aws:PrincipalIsAWSService'] = 'true';
160
- contextKeys['aws:PrincipalServiceName'] = simulationRequest.principal;
190
+ contextKeys['aws:PrincipalServiceName'] = principal;
161
191
  contextKeys['aws:SourceAccount'] = simulationRequest.resourceAccount;
162
192
  contextKeys['aws:SourceOwner'] = simulationRequest.resourceAccount;
163
193
  contextKeys['aws:SourceOrgID'] = contextKeys['aws:ResourceOrgID'];
@@ -1 +1 @@
1
- {"version":3,"file":"contextKeys.js","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextKeys.js","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type ValidatedPolicy } from '@actsecurity/iam-policy';
2
+ import type { InternalSimulationRequest, PrincipalPolicyInputs } from './simulate.js';
3
+ export declare const syntheticResourcePolicyName = "iam-lens:synthetic-resource-allow-all";
4
+ export declare const syntheticTrustPolicyName = "iam-lens:synthetic-trust-allow-all";
5
+ export declare const syntheticIdentityPolicy: PrincipalPolicyInputs['identityPolicies'][number];
6
+ export declare const syntheticTrustPolicy: {
7
+ readonly Version: "2012-10-17";
8
+ readonly Statement: {
9
+ readonly Effect: "Allow";
10
+ readonly Principal: "*";
11
+ readonly Action: "*";
12
+ };
13
+ };
14
+ /**
15
+ * Build and validate the caller-supplied or synthetic external resource policy.
16
+ *
17
+ * @param request the external-resource request
18
+ * @returns a validated resource or trust policy
19
+ */
20
+ export declare function externalResourcePolicy(request: InternalSimulationRequest): ValidatedPolicy<{
21
+ name: string;
22
+ }>;
23
+ //# sourceMappingURL=generatedPolicies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedPolicies.d.ts","sourceRoot":"","sources":["../../../src/simulate/generatedPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErF,eAAO,MAAM,2BAA2B,0CAA0C,CAAA;AAClF,eAAO,MAAM,wBAAwB,uCAAuC,CAAA;AAE5E,eAAO,MAAM,uBAAuB,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAU5E,CAAA;AAEV,eAAO,MAAM,oBAAoB;;;;;;;CAOvB,CAAA;AAEV;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,yBAAyB,GACjC,eAAe,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAanC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syntheticTrustPolicy = exports.syntheticIdentityPolicy = exports.syntheticTrustPolicyName = exports.syntheticResourcePolicyName = void 0;
4
+ exports.externalResourcePolicy = externalResourcePolicy;
5
+ const iam_policy_1 = require("@actsecurity/iam-policy");
6
+ const sts_js_1 = require("../utils/sts.js");
7
+ exports.syntheticResourcePolicyName = 'iam-lens:synthetic-resource-allow-all';
8
+ exports.syntheticTrustPolicyName = 'iam-lens:synthetic-trust-allow-all';
9
+ exports.syntheticIdentityPolicy = {
10
+ name: 'iam-lens:synthetic-identity-allow-all',
11
+ policy: {
12
+ Version: '2012-10-17',
13
+ Statement: {
14
+ Effect: 'Allow',
15
+ Action: '*',
16
+ Resource: '*'
17
+ }
18
+ }
19
+ };
20
+ exports.syntheticTrustPolicy = {
21
+ Version: '2012-10-17',
22
+ Statement: {
23
+ Effect: 'Allow',
24
+ Principal: '*',
25
+ Action: '*'
26
+ }
27
+ };
28
+ /**
29
+ * Build and validate the caller-supplied or synthetic external resource policy.
30
+ *
31
+ * @param request the external-resource request
32
+ * @returns a validated resource or trust policy
33
+ */
34
+ function externalResourcePolicy(request) {
35
+ const useTrustPolicy = sts_js_1.AssumeRoleActions.has(request.action.toLowerCase());
36
+ const policyDocument = request.resourcePolicy ??
37
+ (useTrustPolicy
38
+ ? exports.syntheticTrustPolicy
39
+ : makeSyntheticResourcePolicy(request.resourceArn || '*'));
40
+ const name = useTrustPolicy ? exports.syntheticTrustPolicyName : exports.syntheticResourcePolicyName;
41
+ return (0, iam_policy_1.createValidatedPolicy)(policyDocument, useTrustPolicy ? iam_policy_1.validateTrustPolicy : iam_policy_1.validateResourcePolicy, { name });
42
+ }
43
+ /**
44
+ * Build the default resource policy for an external resource.
45
+ *
46
+ * @param resourceArn the concrete or wildcard resource to allow
47
+ * @returns an allow-all resource policy document
48
+ */
49
+ function makeSyntheticResourcePolicy(resourceArn) {
50
+ return {
51
+ Version: '2012-10-17',
52
+ Statement: {
53
+ Effect: 'Allow',
54
+ Principal: '*',
55
+ Action: '*',
56
+ Resource: resourceArn
57
+ }
58
+ };
59
+ }
60
+ //# sourceMappingURL=generatedPolicies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedPolicies.js","sourceRoot":"","sources":["../../../src/simulate/generatedPolicies.ts"],"names":[],"mappings":";;;AAuCA,wDAeC;AAtDD,wDAKgC;AAChC,4CAAmD;AAGtC,QAAA,2BAA2B,GAAG,uCAAuC,CAAA;AACrE,QAAA,wBAAwB,GAAG,oCAAoC,CAAA;AAE/D,QAAA,uBAAuB,GAAsD;IACxF,IAAI,EAAE,uCAAuC;IAC7C,MAAM,EAAE;QACN,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE;YACT,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,GAAG;SACd;KACF;CACO,CAAA;AAEG,QAAA,oBAAoB,GAAG;IAClC,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE;QACT,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,GAAG;KACZ;CACO,CAAA;AAEV;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,OAAkC;IAElC,MAAM,cAAc,GAAG,0BAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1E,MAAM,cAAc,GAClB,OAAO,CAAC,cAAc;QACtB,CAAC,cAAc;YACb,CAAC,CAAC,4BAAoB;YACtB,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,gCAAwB,CAAC,CAAC,CAAC,mCAA2B,CAAA;IACpF,OAAO,IAAA,kCAAqB,EAC1B,cAAc,EACd,cAAc,CAAC,CAAC,CAAC,gCAAmB,CAAC,CAAC,CAAC,mCAAsB,EAC7D,EAAE,IAAI,EAAE,CACT,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,WAAmB;IACtD,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE;YACT,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,WAAW;SACtB;KACF,CAAA;AACH,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { type DiscoveryContextKeyConstraint, type EvaluationResult, type RunSimulationResults, type Simulation, type SimulationMode } from '@actsecurity/iam-simulate';
2
- import { IamCollectClient } from '../collect/client.js';
2
+ import { IamCollectClient, type SimulationOrgPolicies } from '../collect/client.js';
3
3
  import { type S3AbacOverride } from '../utils/s3Abac.js';
4
4
  import { type ContextKeys } from './contextKeys.js';
5
5
  /**
6
- * The request details for simulating an IAM request.
6
+ * The request details for simulating an IAM request from a collected principal.
7
7
  */
8
8
  export interface SimulationRequest {
9
9
  /**
@@ -31,10 +31,6 @@ export interface SimulationRequest {
31
31
  * The simulation mode to use for the request.
32
32
  */
33
33
  simulationMode: SimulationMode;
34
- /**
35
- * Whether to ignore missing principal errors.
36
- */
37
- ignoreMissingPrincipal?: boolean;
38
34
  /**
39
35
  * Override for S3 ABAC settings for the simulation.
40
36
  */
@@ -49,7 +45,31 @@ export interface SimulationRequest {
49
45
  additionalStrictContextKeys?: string[];
50
46
  }
51
47
  /**
52
- * The result of a simulation request, containing the original request and the simulation result.
48
+ * An unsigned simulation request against a concrete resource ARN.
49
+ * Anonymous requests have no identity, session, permission-boundary, or SCP inputs.
50
+ */
51
+ export interface AnonymousSimulationRequest extends Omit<SimulationRequest, 'principal' | 'resourceArn' | 'sessionPolicy'> {
52
+ /**
53
+ * The concrete resource ARN to access. Anonymous wildcard-only requests are unsupported.
54
+ */
55
+ resourceArn: string;
56
+ }
57
+ /**
58
+ * A simulation request targeting a resource that is not expected to exist in the collected dataset.
59
+ */
60
+ export interface ExternalResourceSimulationRequest extends Omit<SimulationRequest, 'resourceArn'> {
61
+ /**
62
+ * The concrete ARN of the resource outside the collected dataset.
63
+ */
64
+ resourceArn: string;
65
+ /**
66
+ * Optional raw resource policy, or trust policy for an STS assume-role action, to use instead of
67
+ * the synthetic allow-all policy.
68
+ */
69
+ resourcePolicy?: Record<string, unknown>;
70
+ }
71
+ /**
72
+ * The result of a simulation request, containing the normalized request and evaluation result.
53
73
  */
54
74
  export interface SimulateRequestResult {
55
75
  /**
@@ -62,29 +82,95 @@ export interface SimulateRequestResult {
62
82
  result: RunSimulationResults;
63
83
  }
64
84
  /**
65
- * Simulate an IAM request against the collected IAM data.
85
+ * Normalized request shape shared by authenticated and anonymous orchestration.
86
+ */
87
+ export type InternalSimulationRequest = Omit<SimulationRequest, 'principal'> & {
88
+ /**
89
+ * Authenticated principal string, or undefined for an anonymous request.
90
+ */
91
+ principal: string | undefined;
92
+ /**
93
+ * Caller-supplied external resource or trust policy.
94
+ */
95
+ resourcePolicy?: Record<string, unknown>;
96
+ };
97
+ /**
98
+ * Fully prepared principal-side policy inputs for an iam-simulate request.
99
+ */
100
+ export interface PrincipalPolicyInputs {
101
+ /**
102
+ * Identity policies applicable to the request principal.
103
+ */
104
+ identityPolicies: {
105
+ name: string;
106
+ policy: any;
107
+ }[];
108
+ /**
109
+ * Service control policy hierarchies applicable to the principal.
110
+ */
111
+ serviceControlPolicies: SimulationOrgPolicies[];
112
+ /**
113
+ * Permission boundary applicable to the principal, when one exists.
114
+ */
115
+ permissionBoundaryPolicies: {
116
+ name: string;
117
+ policy: any;
118
+ }[] | undefined;
119
+ /**
120
+ * RCP hierarchy for the principal account, used by collected wildcard-only requests.
121
+ */
122
+ principalAccountRcps: SimulationOrgPolicies[];
123
+ }
124
+ /**
125
+ * Simulate an IAM request using the collected policies for both the principal and resource.
66
126
  *
67
- * @param simulationRequest the simulation request details.
68
- * @param collectClient the IAM collect client to use for data access.
69
- * @returns the simulation result, including the request and the evaluation result.
127
+ * @param simulationRequest the simulation request details
128
+ * @param collectClient the IAM collect client to use for data access
129
+ * @returns the normalized request and simulation result
70
130
  */
71
131
  export declare function simulateRequest(simulationRequest: SimulationRequest, collectClient: IamCollectClient): Promise<SimulateRequestResult>;
72
132
  /**
73
- * Converts an iam-lens strict context key into an iam-simulate Discovery constraint.
133
+ * Simulate an unsigned request against a concrete resource ARN.
74
134
  *
75
- * Caller-provided keys are always authoritative. Other strict keys preserve the
76
- * existing behavior where both presence and value are authoritative. Service
77
- * source context keys are different during who-can discovery: iam-lens supplies
78
- * resource-derived placeholder values, but the actual source account/org for a
79
- * service principal request may differ. Treating those values as unknown lets
80
- * who-can return conditional access instead of incorrectly denying service-principal
81
- * statements.
135
+ * @param simulationRequest the anonymous request details
136
+ * @param collectClient the IAM collect client to use for data access
137
+ * @returns the normalized anonymous request and simulation result
138
+ */
139
+ export declare function simulateAnonymousRequest(simulationRequest: AnonymousSimulationRequest, collectClient: IamCollectClient): Promise<SimulateRequestResult>;
140
+ /**
141
+ * Simulate a request from an uncollected principal that has a synthetic administrator identity policy.
142
+ * SCPs and permission boundaries do not apply, while resource-side controls still apply.
143
+ * Wildcard-only actions are unsupported.
144
+ *
145
+ * @param simulationRequest the external principal request details
146
+ * @param collectClient the IAM collect client to use for resource-side data access
147
+ * @returns the normalized request and simulation result
148
+ */
149
+ export declare function simulateExternalPrincipalRequest(simulationRequest: SimulationRequest, collectClient: IamCollectClient): Promise<SimulateRequestResult>;
150
+ /**
151
+ * Simulate a collected principal accessing a resource outside the collected dataset.
152
+ * Wildcard-only actions are unsupported.
153
+ *
154
+ * @param simulationRequest the external resource request and optional resource/trust policy
155
+ * @param collectClient the IAM collect client to use for principal-side data access
156
+ * @returns the normalized request and simulation result
157
+ */
158
+ export declare function simulateExternalResourceRequest(simulationRequest: ExternalResourceSimulationRequest, collectClient: IamCollectClient): Promise<SimulateRequestResult>;
159
+ /**
160
+ * Convert an iam-lens strict context key into an iam-simulate Discovery constraint.
82
161
  *
83
162
  * @param keyName the literal context key or slash-delimited key pattern
84
- * @param simulationRequest the request whose context-key certainty is being modeled
163
+ * @param simulationRequest the normalized request whose context certainty is modeled
85
164
  * @returns the Discovery constraint to pass to iam-simulate
86
165
  * @internal
87
166
  */
88
- export declare function discoveryConstraintForStrictKey(keyName: string, simulationRequest: SimulationRequest): DiscoveryContextKeyConstraint;
167
+ export declare function discoveryConstraintForStrictKey(keyName: string, simulationRequest: Pick<InternalSimulationRequest, 'customContextKeys' | 'simulationMode' | 'principal'>): DiscoveryContextKeyConstraint;
168
+ /**
169
+ * Compare an actual simulation decision with an optional expected result.
170
+ *
171
+ * @param expected expected result or AnyDeny
172
+ * @param result actual evaluation result
173
+ * @returns whether the result satisfies the expectation
174
+ */
89
175
  export declare function resultMatchesExpectation(expected: EvaluationResult | 'AnyDeny' | undefined, result: EvaluationResult): boolean;
90
176
  //# sourceMappingURL=simulate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../../src/simulate/simulate.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAA;AAQlC,OAAO,EAAE,gBAAgB,EAA8B,MAAM,sBAAsB,CAAA;AAanF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,kBAAkB,CAAA;AAIzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAE/B;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IAEnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAGjB;;;OAGG;IACH,iBAAiB,EAAE,WAAW,CAAA;IAE9B;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;IAE9B;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAE/B;;OAEG;IACH,aAAa,CAAC,EAAE,GAAG,CAAA;IAEnB;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAE9B;;OAEG;IACH,MAAM,EAAE,oBAAoB,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA+LhC;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,iBAAiB,GACnC,6BAA6B,CAuC/B;AAsLD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,EAClD,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAQT"}
1
+ {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../../src/simulate/simulate.ts"],"names":[],"mappings":"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"}