@cloud-copilot/iam-lens 0.1.136 → 0.1.138

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 (31) hide show
  1. package/dist/cjs/index.d.ts +2 -2
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/principalCan/permission.d.ts +24 -5
  5. package/dist/cjs/principalCan/permission.d.ts.map +1 -1
  6. package/dist/cjs/principalCan/permission.js +114 -30
  7. package/dist/cjs/principalCan/permission.js.map +1 -1
  8. package/dist/cjs/principalCan/permissionSet.d.ts +7 -3
  9. package/dist/cjs/principalCan/permissionSet.d.ts.map +1 -1
  10. package/dist/cjs/principalCan/permissionSet.js +54 -31
  11. package/dist/cjs/principalCan/permissionSet.js.map +1 -1
  12. package/dist/cjs/principalCan/principalConstraints.d.ts +147 -0
  13. package/dist/cjs/principalCan/principalConstraints.d.ts.map +1 -0
  14. package/dist/cjs/principalCan/principalConstraints.js +472 -0
  15. package/dist/cjs/principalCan/principalConstraints.js.map +1 -0
  16. package/dist/esm/index.d.ts +2 -2
  17. package/dist/esm/index.d.ts.map +1 -1
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/principalCan/permission.d.ts +24 -5
  20. package/dist/esm/principalCan/permission.d.ts.map +1 -1
  21. package/dist/esm/principalCan/permission.js +112 -30
  22. package/dist/esm/principalCan/permission.js.map +1 -1
  23. package/dist/esm/principalCan/permissionSet.d.ts +7 -3
  24. package/dist/esm/principalCan/permissionSet.d.ts.map +1 -1
  25. package/dist/esm/principalCan/permissionSet.js +54 -31
  26. package/dist/esm/principalCan/permissionSet.js.map +1 -1
  27. package/dist/esm/principalCan/principalConstraints.d.ts +147 -0
  28. package/dist/esm/principalCan/principalConstraints.d.ts.map +1 -0
  29. package/dist/esm/principalCan/principalConstraints.js +456 -0
  30. package/dist/esm/principalCan/principalConstraints.js.map +1 -0
  31. package/package.json +1 -1
@@ -0,0 +1,456 @@
1
+ import { splitArnParts } from '@cloud-copilot/iam-utils';
2
+ const principalTypes = ['AWS', 'Service', 'Federated', 'CanonicalUser'];
3
+ /**
4
+ * Build an unconstrained principal dimension.
5
+ *
6
+ * @param explicit - True when the source policy explicitly used Principal: "*".
7
+ * @returns The unconstrained principal constraint.
8
+ */
9
+ export function anyPrincipalConstraint(explicit) {
10
+ return { kind: 'any', explicit };
11
+ }
12
+ /**
13
+ * Build a positive principal constraint.
14
+ *
15
+ * @param principals - The positive principal values.
16
+ * @returns A normalized principal constraint.
17
+ */
18
+ export function principalConstraint(principals) {
19
+ return normalizePrincipalConstraint(principals, undefined);
20
+ }
21
+ /**
22
+ * Build a negative principal constraint.
23
+ *
24
+ * @param notPrincipals - The excluded principal values.
25
+ * @returns A normalized not-principal constraint.
26
+ */
27
+ export function notPrincipalConstraint(notPrincipals) {
28
+ return normalizePrincipalConstraint(undefined, notPrincipals);
29
+ }
30
+ /**
31
+ * Normalize optional Principal and NotPrincipal values into an internal constraint.
32
+ *
33
+ * @param principal - Positive principals, if present.
34
+ * @param notPrincipal - Negative principals, if present.
35
+ * @returns The normalized principal constraint.
36
+ */
37
+ export function normalizePrincipalConstraint(principal, notPrincipal) {
38
+ if (principal && notPrincipal) {
39
+ throw new Error('Permission must have a principal or notPrincipal, not both.');
40
+ }
41
+ if (principal) {
42
+ const normalized = normalizePermissionPrincipals(principal);
43
+ if (normalized.wildcard)
44
+ return { kind: 'any', explicit: true };
45
+ return { kind: 'principal', principals: normalized };
46
+ }
47
+ if (notPrincipal) {
48
+ const normalized = normalizePermissionPrincipals(notPrincipal);
49
+ if (normalized.wildcard)
50
+ return { kind: 'notPrincipal', principals: normalized };
51
+ return { kind: 'notPrincipal', principals: normalized };
52
+ }
53
+ return { kind: 'any', explicit: false };
54
+ }
55
+ /**
56
+ * Normalize principal values by validating wildcard usage, de-duplicating values, and normalizing STS sessions.
57
+ *
58
+ * @param principals - Principal values to normalize.
59
+ * @returns Normalized principal values.
60
+ */
61
+ export function normalizePermissionPrincipals(principals) {
62
+ const hasTypedValues = principalTypes.some((type) => (principals[type]?.length ?? 0) > 0);
63
+ if (principals.wildcard && hasTypedValues) {
64
+ throw new Error('Permission principals cannot combine wildcard: true with typed principal values');
65
+ }
66
+ const normalized = {};
67
+ if (principals.wildcard) {
68
+ normalized.wildcard = true;
69
+ }
70
+ for (const type of principalTypes) {
71
+ const values = principals[type];
72
+ if (values && values.length > 0) {
73
+ normalized[type] = Array.from(new Set(values.map((value) => normalizePrincipalValue(type, value))));
74
+ }
75
+ }
76
+ if (!normalized.wildcard && principalEntries(normalized).length === 0) {
77
+ throw new Error('Permission principals must contain at least one principal value');
78
+ }
79
+ return normalized;
80
+ }
81
+ /**
82
+ * Determine whether one principal constraint fully includes another.
83
+ *
84
+ * @param a - Candidate including constraint.
85
+ * @param b - Candidate included constraint.
86
+ * @returns True when every principal in b is also in a.
87
+ */
88
+ export function principalIncludes(a, b) {
89
+ if (a.kind === 'any')
90
+ return true;
91
+ if (b.kind === 'any')
92
+ return constraintIsUniversal(a);
93
+ if (a.kind === 'principal' && b.kind === 'principal') {
94
+ return entriesIncludeAll(principalEntries(a.principals), principalEntries(b.principals));
95
+ }
96
+ if (a.kind === 'notPrincipal' && b.kind === 'principal') {
97
+ return principalEntries(b.principals).every((entry) => !principalEntries(a.principals).some((excluded) => entriesOverlap(excluded, entry)));
98
+ }
99
+ if (a.kind === 'notPrincipal' && b.kind === 'notPrincipal') {
100
+ return entriesIncludeAll(principalEntries(b.principals), principalEntries(a.principals));
101
+ }
102
+ if (a.kind === 'principal' && b.kind === 'notPrincipal') {
103
+ return constraintIsUniversal(a);
104
+ }
105
+ return false;
106
+ }
107
+ /**
108
+ * Determine whether two principal constraints have any possible overlap.
109
+ *
110
+ * @param a - First principal constraint.
111
+ * @param b - Second principal constraint.
112
+ * @returns True when at least one principal can satisfy both constraints.
113
+ */
114
+ export function principalConstraintsOverlap(a, b) {
115
+ return intersectPrincipalConstraints(a, b).length > 0;
116
+ }
117
+ /**
118
+ * Return compact principal constraints representing a union.
119
+ *
120
+ * @param a - First principal constraint.
121
+ * @param b - Second principal constraint.
122
+ * @returns One or more constraints representing the union.
123
+ */
124
+ export function unionPrincipalConstraints(a, b) {
125
+ if (principalIncludes(a, b))
126
+ return [a];
127
+ if (principalIncludes(b, a))
128
+ return [b];
129
+ if (a.kind === 'any')
130
+ return [{ kind: 'any', explicit: a.explicit }];
131
+ if (b.kind === 'any')
132
+ return [{ kind: 'any', explicit: b.explicit }];
133
+ if (a.kind === 'principal' && b.kind === 'principal') {
134
+ return [{ kind: 'principal', principals: mergePrincipals(a.principals, b.principals) }];
135
+ }
136
+ if (a.kind === 'notPrincipal' && b.kind === 'notPrincipal') {
137
+ const intersection = intersectPrincipalMaps(a.principals, b.principals);
138
+ return intersection
139
+ ? [{ kind: 'notPrincipal', principals: intersection }]
140
+ : [{ kind: 'any', explicit: true }];
141
+ }
142
+ const positive = a.kind === 'principal' ? a : b.kind === 'principal' ? b : undefined;
143
+ const negative = a.kind === 'notPrincipal' ? a : b.kind === 'notPrincipal' ? b : undefined;
144
+ if (positive && negative) {
145
+ const remainingExclusions = subtractPrincipalMap(negative.principals, positive.principals);
146
+ return remainingExclusions
147
+ ? [{ kind: 'notPrincipal', principals: remainingExclusions }]
148
+ : [{ kind: 'any', explicit: true }];
149
+ }
150
+ return [a, b];
151
+ }
152
+ /**
153
+ * Return constraints representing the intersection of two principal constraints.
154
+ *
155
+ * @param a - First principal constraint.
156
+ * @param b - Second principal constraint.
157
+ * @returns Constraints for the overlap, or an empty array when disjoint.
158
+ */
159
+ export function intersectPrincipalConstraints(a, b) {
160
+ if (a.kind === 'any')
161
+ return [b];
162
+ if (b.kind === 'any')
163
+ return [a];
164
+ if (a.kind === 'principal' && b.kind === 'principal') {
165
+ const intersection = intersectPrincipalMaps(a.principals, b.principals);
166
+ return intersection ? [{ kind: 'principal', principals: intersection }] : [];
167
+ }
168
+ if (a.kind === 'notPrincipal' && b.kind === 'notPrincipal') {
169
+ return [{ kind: 'notPrincipal', principals: mergePrincipals(a.principals, b.principals) }];
170
+ }
171
+ const positive = a.kind === 'principal' ? a : b.kind === 'principal' ? b : undefined;
172
+ const negative = a.kind === 'notPrincipal' ? a : b.kind === 'notPrincipal' ? b : undefined;
173
+ if (positive && negative) {
174
+ const remaining = subtractPrincipalMap(positive.principals, negative.principals);
175
+ return remaining ? [{ kind: 'principal', principals: remaining }] : [];
176
+ }
177
+ return [];
178
+ }
179
+ /**
180
+ * Return constraints for allow minus deny on the principal dimension.
181
+ *
182
+ * @param allow - Allow principal constraint.
183
+ * @param deny - Deny principal constraint.
184
+ * @returns Principal constraints that remain allowed.
185
+ */
186
+ export function subtractPrincipalConstraint(allow, deny) {
187
+ if (!principalConstraintsOverlap(allow, deny))
188
+ return [allow];
189
+ if (principalIncludes(deny, allow))
190
+ return [];
191
+ if (constraintIsUniversal(allow) && deny.kind === 'principal') {
192
+ return [{ kind: 'notPrincipal', principals: deny.principals }];
193
+ }
194
+ if (constraintIsUniversal(allow) && deny.kind === 'notPrincipal') {
195
+ return [{ kind: 'principal', principals: deny.principals }];
196
+ }
197
+ if (allow.kind === 'principal' && deny.kind === 'principal') {
198
+ const remaining = subtractPrincipalMap(allow.principals, deny.principals);
199
+ return remaining ? [{ kind: 'principal', principals: remaining }] : [];
200
+ }
201
+ if (allow.kind === 'notPrincipal' && deny.kind === 'principal') {
202
+ return [
203
+ { kind: 'notPrincipal', principals: mergePrincipals(allow.principals, deny.principals) }
204
+ ];
205
+ }
206
+ if (allow.kind === 'notPrincipal' && deny.kind === 'notPrincipal') {
207
+ const remaining = subtractPrincipalMap(deny.principals, allow.principals);
208
+ return remaining ? [{ kind: 'principal', principals: remaining }] : [];
209
+ }
210
+ return [allow];
211
+ }
212
+ /**
213
+ * Convert a constraint into Permission constructor principal arguments.
214
+ *
215
+ * @param constraint - The principal constraint to convert.
216
+ * @returns Principal and NotPrincipal fields for a Permission.
217
+ */
218
+ export function principalArgsForConstraint(constraint) {
219
+ if (constraint.kind === 'any') {
220
+ return {
221
+ principal: constraint.explicit ? { wildcard: true } : undefined,
222
+ notPrincipal: undefined
223
+ };
224
+ }
225
+ if (constraint.kind === 'principal') {
226
+ return { principal: constraint.principals, notPrincipal: undefined };
227
+ }
228
+ return { principal: undefined, notPrincipal: constraint.principals };
229
+ }
230
+ /**
231
+ * Convert principal values to a stable JSON value for bucketing policy statements.
232
+ *
233
+ * @param principal - Principal values to canonicalize.
234
+ * @returns A JSON-compatible canonical representation.
235
+ */
236
+ export function canonicalPrincipal(principal) {
237
+ if (!principal)
238
+ return null;
239
+ const normalized = normalizePermissionPrincipals(principal);
240
+ const out = {};
241
+ if (normalized.wildcard)
242
+ out.wildcard = true;
243
+ for (const type of principalTypes) {
244
+ if (normalized[type])
245
+ out[type] = [...normalized[type]].sort();
246
+ }
247
+ return out;
248
+ }
249
+ /**
250
+ * Convert a Principal/NotPrincipal raw policy value into PermissionPrincipals.
251
+ *
252
+ * @param value - The raw Principal or NotPrincipal value.
253
+ * @returns Permission principal values.
254
+ */
255
+ export function principalsFromRawPolicyValue(value) {
256
+ if (value === undefined)
257
+ return undefined;
258
+ if (value === '*')
259
+ return { wildcard: true };
260
+ if (!value || typeof value !== 'object' || Array.isArray(value))
261
+ return undefined;
262
+ const result = {};
263
+ const record = value;
264
+ for (const type of principalTypes) {
265
+ const rawValues = record[type];
266
+ if (rawValues === undefined)
267
+ continue;
268
+ result[type] = Array.isArray(rawValues) ? [...rawValues] : [rawValues];
269
+ }
270
+ return normalizePermissionPrincipals(result);
271
+ }
272
+ /**
273
+ * Convert PermissionPrincipals into a raw policy Principal or NotPrincipal value.
274
+ *
275
+ * @param principals - Principal values to convert.
276
+ * @returns A raw policy value.
277
+ */
278
+ export function principalsToPolicyValue(principals) {
279
+ const normalized = normalizePermissionPrincipals(principals);
280
+ if (normalized.wildcard)
281
+ return '*';
282
+ const out = {};
283
+ for (const type of principalTypes) {
284
+ const values = normalized[type];
285
+ if (values)
286
+ out[type] = values.length === 1 ? values[0] : [...values];
287
+ }
288
+ return out;
289
+ }
290
+ function constraintIsUniversal(constraint) {
291
+ return (constraint.kind === 'any' ||
292
+ (constraint.kind === 'principal' && isWildcardPrincipals(constraint.principals)));
293
+ }
294
+ function isWildcardPrincipals(principals) {
295
+ return principals.wildcard === true || principals.AWS?.includes('*') === true;
296
+ }
297
+ function principalEntries(principals) {
298
+ if (principals.wildcard)
299
+ return [{ type: 'Any', value: '*', semanticKind: 'wildcard' }];
300
+ return principalTypes.flatMap((type) => (principals[type] ?? []).map((value) => entryForValue(type, value)));
301
+ }
302
+ function entriesIncludeAll(a, b) {
303
+ return b.every((bEntry) => a.some((aEntry) => entryIncludes(aEntry, bEntry)));
304
+ }
305
+ function entryIncludes(a, b) {
306
+ if (a.semanticKind === 'wildcard')
307
+ return true;
308
+ if (a.type === 'AWS' && a.value === '*')
309
+ return true;
310
+ if (a.type !== b.type)
311
+ return false;
312
+ if (a.value === b.value)
313
+ return true;
314
+ if (a.semanticKind === 'account' &&
315
+ b.accountIds?.some((accountId) => a.accountIds?.includes(accountId))) {
316
+ return true;
317
+ }
318
+ return false;
319
+ }
320
+ function entriesOverlap(a, b) {
321
+ return entryIncludes(a, b) || entryIncludes(b, a);
322
+ }
323
+ function mergePrincipals(a, b) {
324
+ if (isWildcardPrincipals(a) || isWildcardPrincipals(b))
325
+ return a.wildcard || b.wildcard ? { wildcard: true } : { AWS: ['*'] };
326
+ const merged = {};
327
+ for (const type of principalTypes) {
328
+ const values = [...(a[type] ?? []), ...(b[type] ?? [])];
329
+ if (values.length > 0)
330
+ merged[type] = Array.from(new Set(values.map((v) => normalizePrincipalValue(type, v))));
331
+ }
332
+ return normalizePermissionPrincipals(merged);
333
+ }
334
+ function intersectPrincipalMaps(a, b) {
335
+ if (isWildcardPrincipals(a))
336
+ return b;
337
+ if (isWildcardPrincipals(b))
338
+ return a;
339
+ const entriesA = principalEntries(a);
340
+ const entriesB = principalEntries(b);
341
+ const kept = [];
342
+ for (const aEntry of entriesA) {
343
+ for (const bEntry of entriesB) {
344
+ const intersection = intersectEntries(aEntry, bEntry);
345
+ if (intersection)
346
+ kept.push(intersection);
347
+ }
348
+ }
349
+ return principalsFromEntries(kept);
350
+ }
351
+ function subtractPrincipalMap(source, remove) {
352
+ if (isWildcardPrincipals(remove))
353
+ return undefined;
354
+ // Universal-source subtraction that needs a NotPrincipal residual is handled by
355
+ // subtractPrincipalConstraint before this positive-map helper is called.
356
+ if (isWildcardPrincipals(source))
357
+ return source;
358
+ const removeEntries = principalEntries(remove);
359
+ const kept = principalEntries(source).filter((entry) => !removeEntries.some((removeEntry) => entryIncludes(removeEntry, entry)));
360
+ return principalsFromEntries(kept);
361
+ }
362
+ function intersectEntries(a, b) {
363
+ if (!entriesOverlap(a, b))
364
+ return undefined;
365
+ if (entryIncludes(a, b))
366
+ return b;
367
+ if (entryIncludes(b, a))
368
+ return a;
369
+ return undefined;
370
+ }
371
+ function principalsFromEntries(entries) {
372
+ const out = {};
373
+ for (const entry of entries) {
374
+ if (entry.semanticKind === 'wildcard')
375
+ return { wildcard: true };
376
+ if (entry.type === 'Any')
377
+ return { wildcard: true };
378
+ const type = entry.type;
379
+ out[type] = [...(out[type] ?? []), entry.value];
380
+ }
381
+ for (const type of principalTypes) {
382
+ if (out[type])
383
+ out[type] = Array.from(new Set(out[type]));
384
+ }
385
+ return principalEntries(out).length > 0 ? normalizePermissionPrincipals(out) : undefined;
386
+ }
387
+ function entryForValue(type, value) {
388
+ const normalizedValue = normalizePrincipalValue(type, value);
389
+ if (normalizedValue === '*')
390
+ return { type, value: normalizedValue, semanticKind: 'wildcard' };
391
+ if (type === 'AWS') {
392
+ const accountId = accountIdForAwsPrincipal(normalizedValue);
393
+ if (/^\d{12}$/.test(normalizedValue) || normalizedValue.endsWith(':root')) {
394
+ return {
395
+ type,
396
+ value: normalizedValue,
397
+ semanticKind: 'account',
398
+ accountIds: accountId ? [accountId] : undefined
399
+ };
400
+ }
401
+ return {
402
+ type,
403
+ value: normalizedValue,
404
+ semanticKind: 'arn',
405
+ accountIds: accountId ? [accountId] : undefined
406
+ };
407
+ }
408
+ if (type === 'Service') {
409
+ return {
410
+ type,
411
+ value: normalizedValue,
412
+ semanticKind: 'service',
413
+ servicePrincipals: [normalizedValue]
414
+ };
415
+ }
416
+ if (type === 'Federated')
417
+ return { type, value: normalizedValue, semanticKind: 'federated' };
418
+ return { type, value: normalizedValue, semanticKind: 'canonicalUser' };
419
+ }
420
+ function normalizePrincipalValue(type, value) {
421
+ if (type !== 'AWS')
422
+ return value;
423
+ return normalizeStsAssumedRoleArn(value);
424
+ }
425
+ function accountIdForAwsPrincipal(value) {
426
+ if (/^\d{12}$/.test(value))
427
+ return value;
428
+ if (!value.startsWith('arn:'))
429
+ return undefined;
430
+ try {
431
+ return splitArnParts(value).accountId;
432
+ }
433
+ catch (_err) {
434
+ return undefined;
435
+ }
436
+ }
437
+ function normalizeStsAssumedRoleArn(value) {
438
+ if (!value.startsWith('arn:'))
439
+ return value;
440
+ let parts;
441
+ try {
442
+ parts = splitArnParts(value);
443
+ }
444
+ catch (_err) {
445
+ return value;
446
+ }
447
+ const resource = parts.resource ?? '';
448
+ if (parts.service !== 'sts' || !resource.startsWith('assumed-role/'))
449
+ return value;
450
+ const assumedRoleParts = resource.slice('assumed-role/'.length).split('/');
451
+ if (assumedRoleParts.length < 2)
452
+ return value;
453
+ const rolePathAndName = assumedRoleParts.slice(0, -1).join('/');
454
+ return `arn:${parts.partition}:iam::${parts.accountId}:role/${rolePathAndName}`;
455
+ }
456
+ //# sourceMappingURL=principalConstraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"principalConstraints.js","sourceRoot":"","sources":["../../../src/principalCan/principalConstraints.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.136",
3
+ "version": "0.1.138",
4
4
  "description": "Visibility in IAM in and across AWS accounts",
5
5
  "keywords": [
6
6
  "aws",