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