@cloud-copilot/iam-lens 0.1.1 → 0.1.2
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/accounts.d.ts +3 -0
- package/dist/cjs/accounts.d.ts.map +1 -0
- package/dist/cjs/accounts.js +8 -0
- package/dist/cjs/accounts.js.map +1 -0
- package/dist/cjs/collect/client.d.ts +238 -0
- package/dist/cjs/collect/client.d.ts.map +1 -0
- package/dist/cjs/collect/client.js +459 -0
- package/dist/cjs/collect/client.js.map +1 -0
- package/dist/cjs/collect/collect.d.ts +18 -0
- package/dist/cjs/collect/collect.d.ts.map +1 -0
- package/dist/cjs/collect/collect.js +26 -0
- package/dist/cjs/collect/collect.js.map +1 -0
- package/dist/cjs/principals.d.ts +40 -0
- package/dist/cjs/principals.d.ts.map +1 -0
- package/dist/cjs/principals.js +71 -0
- package/dist/cjs/principals.js.map +1 -0
- package/dist/cjs/resources.d.ts +19 -0
- package/dist/cjs/resources.d.ts.map +1 -0
- package/dist/cjs/resources.js +43 -0
- package/dist/cjs/resources.js.map +1 -0
- package/dist/cjs/util/arn.d.ts +26 -0
- package/dist/cjs/util/arn.d.ts.map +1 -0
- package/dist/cjs/util/arn.js +68 -0
- package/dist/cjs/util/arn.js.map +1 -0
- package/dist/esm/accounts.d.ts +3 -0
- package/dist/esm/accounts.d.ts.map +1 -0
- package/dist/esm/accounts.js +5 -0
- package/dist/esm/accounts.js.map +1 -0
- package/dist/esm/collect/client.d.ts +238 -0
- package/dist/esm/collect/client.d.ts.map +1 -0
- package/dist/esm/collect/client.js +454 -0
- package/dist/esm/collect/client.js.map +1 -0
- package/dist/esm/collect/collect.d.ts +18 -0
- package/dist/esm/collect/collect.d.ts.map +1 -0
- package/dist/esm/collect/collect.js +22 -0
- package/dist/esm/collect/collect.js.map +1 -0
- package/dist/esm/principals.d.ts +40 -0
- package/dist/esm/principals.d.ts.map +1 -0
- package/dist/esm/principals.js +66 -0
- package/dist/esm/principals.js.map +1 -0
- package/dist/esm/resources.d.ts +19 -0
- package/dist/esm/resources.d.ts.map +1 -0
- package/dist/esm/resources.js +39 -0
- package/dist/esm/resources.js.map +1 -0
- package/dist/esm/util/arn.d.ts +26 -0
- package/dist/esm/util/arn.d.ts.map +1 -0
- package/dist/esm/util/arn.js +64 -0
- package/dist/esm/util/arn.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,wBAAsB,aAAa,CACjC,aAAa,EAAE,WAAW,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAGlB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.accountExists = accountExists;
|
|
4
|
+
async function accountExists(storageClient, accountId) {
|
|
5
|
+
const accounts = await storageClient.listAccountIds();
|
|
6
|
+
return accounts.includes(accountId);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":";;AAEA,sCAMC;AANM,KAAK,UAAU,aAAa,CACjC,aAA0B,EAC1B,SAAiB;IAEjB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,CAAA;IACrD,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AACrC,CAAC"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { AwsIamStore } from '@cloud-copilot/iam-collect';
|
|
2
|
+
export interface SimulationOrgPolicies {
|
|
3
|
+
orgIdentifier: string;
|
|
4
|
+
policies: {
|
|
5
|
+
name: string;
|
|
6
|
+
policy: any;
|
|
7
|
+
}[];
|
|
8
|
+
}
|
|
9
|
+
interface IamUserMetadata {
|
|
10
|
+
arn: string;
|
|
11
|
+
path: string;
|
|
12
|
+
permissionBoundary: string;
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
created: string;
|
|
16
|
+
}
|
|
17
|
+
export interface OrgPolicy {
|
|
18
|
+
arn: string;
|
|
19
|
+
name: string;
|
|
20
|
+
policy: any;
|
|
21
|
+
}
|
|
22
|
+
export interface ManagedPolicy {
|
|
23
|
+
arn: string;
|
|
24
|
+
name: string;
|
|
25
|
+
policy: any;
|
|
26
|
+
}
|
|
27
|
+
export interface InlinePolicy {
|
|
28
|
+
name: string;
|
|
29
|
+
policy: any;
|
|
30
|
+
}
|
|
31
|
+
interface OrgAccount {
|
|
32
|
+
ou: string;
|
|
33
|
+
rcps: string[];
|
|
34
|
+
scps: string[];
|
|
35
|
+
}
|
|
36
|
+
type OrgAccounts = Record<string, OrgAccount>;
|
|
37
|
+
interface OrgUnitDetails {
|
|
38
|
+
parent: string | undefined;
|
|
39
|
+
scps: string[];
|
|
40
|
+
rcps: string[];
|
|
41
|
+
}
|
|
42
|
+
type OrgUnits = Record<string, OrgUnitDetails>;
|
|
43
|
+
type OrgPolicyType = 'scps' | 'rcps';
|
|
44
|
+
interface OrganizationMetadata {
|
|
45
|
+
id: string;
|
|
46
|
+
arn: string;
|
|
47
|
+
rootOu: string;
|
|
48
|
+
rootAccountArn: string;
|
|
49
|
+
rootAccountId: string;
|
|
50
|
+
features: {
|
|
51
|
+
AISERVICES_OPT_OUT_POLICY?: boolean;
|
|
52
|
+
BACKUP_POLICY?: boolean;
|
|
53
|
+
RESOURCE_CONTROL_POLICY?: boolean;
|
|
54
|
+
SERVICE_CONTROL_POLICY?: boolean;
|
|
55
|
+
TAG_POLICY?: boolean;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export declare class IamCollectClient {
|
|
59
|
+
private storageClient;
|
|
60
|
+
constructor(storageClient: AwsIamStore);
|
|
61
|
+
/**
|
|
62
|
+
* Checks if an account exists in the store.
|
|
63
|
+
* @param accountId The ID of the account to check.
|
|
64
|
+
* @returns True if the account exists, false otherwise.
|
|
65
|
+
*/
|
|
66
|
+
accountExists(accountId: string): Promise<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Checks if a principal exists in the store.
|
|
69
|
+
* @param principalArn The ARN of the principal to check.
|
|
70
|
+
* @returns True if the principal exists, false otherwise.
|
|
71
|
+
*/
|
|
72
|
+
principalExists(principalArn: string): Promise<boolean>;
|
|
73
|
+
/**
|
|
74
|
+
* Gets the SCP Hierarchy for an account. The first element is the root, the last element is the account itself.
|
|
75
|
+
* @param accountId The ID of the account to get the SCP Hierarchy for.
|
|
76
|
+
* @returns The SCP Hierarchy for the account.
|
|
77
|
+
*/
|
|
78
|
+
getScpHierarchyForAccount(accountId: string): Promise<SimulationOrgPolicies[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Gets the policy hierarchy for an account for a given policy type.
|
|
81
|
+
* @param accountId The ID of the account.
|
|
82
|
+
* @param policyType The type of policy ('scps' or 'rcps').
|
|
83
|
+
* @returns The policy hierarchy for the account.
|
|
84
|
+
*/
|
|
85
|
+
getOrgPolicyHierarchyForAccount(accountId: string, policyType: OrgPolicyType): Promise<SimulationOrgPolicies[]>;
|
|
86
|
+
/**
|
|
87
|
+
* Gets the OUs for an account. The first element is the root,
|
|
88
|
+
* the last element is the parent OU of the account.
|
|
89
|
+
* @param accountId The ID of the account to get the OUs for.
|
|
90
|
+
* @returns The OUs for the account.
|
|
91
|
+
*/
|
|
92
|
+
getOrgUnitHierarchyForAccount(accountId: string): Promise<string[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Gets the org unit ID for an account.
|
|
95
|
+
* @param accountId The ID of the account.
|
|
96
|
+
* @returns The org unit ID for the account, or undefined if not found.
|
|
97
|
+
*/
|
|
98
|
+
getOrgUnitIdForAccount(accountId: string): Promise<string | undefined>;
|
|
99
|
+
/**
|
|
100
|
+
* Gets the parent org unit ID for a given org unit.
|
|
101
|
+
* @param orgId The ID of the organization.
|
|
102
|
+
* @param ouId The ID of the org unit.
|
|
103
|
+
* @returns The parent org unit ID, or undefined if not found.
|
|
104
|
+
*/
|
|
105
|
+
getParentOrgUnitIdForOrgUnit(orgId: string, ouId: string): Promise<string | undefined>;
|
|
106
|
+
/**
|
|
107
|
+
* Gets the SCPs for an account.
|
|
108
|
+
* @param accountId The ID of the account.
|
|
109
|
+
* @returns The SCPs for the account.
|
|
110
|
+
*/
|
|
111
|
+
getScpsForAccount(accountId: string): Promise<OrgPolicy[]>;
|
|
112
|
+
/**
|
|
113
|
+
* Gets the org policies for an account for a given policy type.
|
|
114
|
+
* @param accountId The ID of the account.
|
|
115
|
+
* @param policyType The type of policy ('scps' or 'rcps').
|
|
116
|
+
* @returns The org policies for the account.
|
|
117
|
+
*/
|
|
118
|
+
getOrgPoliciesForAccount(accountId: string, policyType: OrgPolicyType): Promise<OrgPolicy[]>;
|
|
119
|
+
/**
|
|
120
|
+
* Gets the account data for an organization.
|
|
121
|
+
* @param orgId The ID of the organization.
|
|
122
|
+
* @returns The account data for the organization.
|
|
123
|
+
*/
|
|
124
|
+
getAccountDataForOrg(orgId: string): Promise<OrgAccounts>;
|
|
125
|
+
/**
|
|
126
|
+
* Gets the org units data for an organization.
|
|
127
|
+
* @param orgId The ID of the organization.
|
|
128
|
+
* @returns The org units data for the organization.
|
|
129
|
+
*/
|
|
130
|
+
getOrgUnitsDataForOrg(orgId: string): Promise<OrgUnits>;
|
|
131
|
+
/**
|
|
132
|
+
* Gets a specific org policy.
|
|
133
|
+
* @param orgId The ID of the organization.
|
|
134
|
+
* @param policyType The type of policy ('scps' or 'rcps').
|
|
135
|
+
* @param policyArn The ARN of the policy.
|
|
136
|
+
* @returns The org policy.
|
|
137
|
+
*/
|
|
138
|
+
getOrgPolicy(orgId: string, policyType: OrgPolicyType, policyArn: string): Promise<OrgPolicy>;
|
|
139
|
+
/**
|
|
140
|
+
* Gets the RCPs for an account.
|
|
141
|
+
* @param accountId The ID of the account.
|
|
142
|
+
* @returns The RCPs for the account.
|
|
143
|
+
*/
|
|
144
|
+
getRcpsForAccount(accountId: string): Promise<OrgPolicy[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Gets the RCP hierarchy for an account.
|
|
147
|
+
* @param accountId The ID of the account.
|
|
148
|
+
* @returns The RCP hierarchy for the account.
|
|
149
|
+
*/
|
|
150
|
+
getRcpHierarchyForAccount(accountId: string): Promise<SimulationOrgPolicies[]>;
|
|
151
|
+
/**
|
|
152
|
+
* Gets the SCPs for an org unit.
|
|
153
|
+
* @param orgId The ID of the organization.
|
|
154
|
+
* @param orgUnitId The ID of the org unit.
|
|
155
|
+
* @returns The SCPs for the org unit.
|
|
156
|
+
*/
|
|
157
|
+
getScpsForOrgUnit(orgId: string, orgUnitId: string): Promise<OrgPolicy[]>;
|
|
158
|
+
/**
|
|
159
|
+
* Gets the org policies for an org unit for a given policy type.
|
|
160
|
+
* @param orgId The ID of the organization.
|
|
161
|
+
* @param orgUnitId The ID of the org unit.
|
|
162
|
+
* @param policyType The type of policy ('scps' or 'rcps').
|
|
163
|
+
* @returns The org policies for the org unit.
|
|
164
|
+
*/
|
|
165
|
+
getOrgPoliciesForOrgUnit(orgId: string, orgUnitId: string, policyType: OrgPolicyType): Promise<OrgPolicy[]>;
|
|
166
|
+
/**
|
|
167
|
+
* Gets the RCPs for an org unit.
|
|
168
|
+
* @param orgId The ID of the organization.
|
|
169
|
+
* @param orgUnitId The ID of the org unit.
|
|
170
|
+
* @returns The RCPs for the org unit.
|
|
171
|
+
*/
|
|
172
|
+
getRcpsForOrgUnit(orgId: string, orgUnitId: string): Promise<OrgPolicy[]>;
|
|
173
|
+
/**
|
|
174
|
+
* Gets the org ID for an account.
|
|
175
|
+
* @param accountId The ID of the account.
|
|
176
|
+
* @returns The org ID for the account, or undefined if not found.
|
|
177
|
+
*/
|
|
178
|
+
getOrgIdForAccount(accountId: string): Promise<string | undefined>;
|
|
179
|
+
/**
|
|
180
|
+
* Gets the account ID for a given S3 bucket name.
|
|
181
|
+
* @param bucketName The name of the bucket.
|
|
182
|
+
* @returns The account ID for the bucket, or undefined if not found.
|
|
183
|
+
*/
|
|
184
|
+
getAccountIdForBucket(bucketName: string): Promise<string | undefined>;
|
|
185
|
+
/**
|
|
186
|
+
* Gets the account ID for a given API Gateway ARN.
|
|
187
|
+
* @param apiArn The ARN of the API Gateway.
|
|
188
|
+
* @returns The account ID for the API Gateway, or undefined if not found.
|
|
189
|
+
*/
|
|
190
|
+
getAccountIdForRestApi(apiArn: string): Promise<string | undefined>;
|
|
191
|
+
/**
|
|
192
|
+
* Gets the managed policies attached to a user.
|
|
193
|
+
* @param userArn The ARN of the user.
|
|
194
|
+
* @returns The managed policies for the user.
|
|
195
|
+
*/
|
|
196
|
+
getManagedPoliciesForUser(userArn: string): Promise<ManagedPolicy[]>;
|
|
197
|
+
getManagedPolicy(accountId: string, policyArn: string): Promise<ManagedPolicy>;
|
|
198
|
+
/**
|
|
199
|
+
* Gets the inline policies attached to a user.
|
|
200
|
+
* @param userArn The ARN of the user.
|
|
201
|
+
* @returns The inline policies for the user.
|
|
202
|
+
*/
|
|
203
|
+
getInlinePoliciesForUser(userArn: string): Promise<InlinePolicy[]>;
|
|
204
|
+
getIamUserMetadata(userArn: string): Promise<IamUserMetadata | undefined>;
|
|
205
|
+
/**
|
|
206
|
+
* Gets the permissions boundary policy attached to a user, if any.
|
|
207
|
+
*
|
|
208
|
+
* @param userArn The ARN of the user.
|
|
209
|
+
* @returns The permissions boundary policy as an OrgPolicy, or undefined if none is set.
|
|
210
|
+
*/
|
|
211
|
+
getPermissionsBoundaryForUser(userArn: string): Promise<ManagedPolicy | undefined>;
|
|
212
|
+
/**
|
|
213
|
+
* Gets the group ARNs that the user is a member of.
|
|
214
|
+
* @param userArn The ARN of the user.
|
|
215
|
+
* @returns An array of group ARNs the user belongs to.
|
|
216
|
+
*/
|
|
217
|
+
getGroupsForUser(userArn: string): Promise<string[]>;
|
|
218
|
+
/**
|
|
219
|
+
* Gets the managed policies attached to a group.
|
|
220
|
+
*
|
|
221
|
+
* @param groupArn The ARN of the group.
|
|
222
|
+
* @returns The managed policies for the group.
|
|
223
|
+
*/
|
|
224
|
+
getManagedPoliciesForGroup(groupArn: string): Promise<ManagedPolicy[]>;
|
|
225
|
+
getInlinePoliciesForGroup(groupArn: string): Promise<InlinePolicy[]>;
|
|
226
|
+
getManagedPoliciesForRole(roleArn: string): Promise<ManagedPolicy[]>;
|
|
227
|
+
getInlinePoliciesForRole(roleArn: string): Promise<InlinePolicy[]>;
|
|
228
|
+
getPermissionsBoundaryForRole(roleArn: string): Promise<ManagedPolicy | undefined>;
|
|
229
|
+
/**
|
|
230
|
+
* Get the metadata for an organization.
|
|
231
|
+
*
|
|
232
|
+
* @param organizationId the id of the organization
|
|
233
|
+
* @returns the metadata for the organization
|
|
234
|
+
*/
|
|
235
|
+
getOrganizationMetadata(organizationId: string): Promise<OrganizationMetadata>;
|
|
236
|
+
}
|
|
237
|
+
export {};
|
|
238
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/collect/client.ts"],"names":[],"mappings":"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"}
|