@cloud-copilot/iam-collect 0.1.37 → 0.1.39

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/README.md CHANGED
@@ -56,11 +56,13 @@ This will download the IAM data from the current account to the `./iam-data` dir
56
56
  | iam | Customer and AWS Managed Policies | name, path, id, default version, default version doc, tags |
57
57
  | iam | OIDC Providers | arn, audiences, thumbprints, url, tags |
58
58
  | iam | SAML Providers | arn, metadata document, uuid, private keys, valid until, tags |
59
+ | iam | Instance Profiles | arn, name, roles, id, path, tags |
59
60
  | apigateway | Rest APIs | id, name, policy, tags |
60
61
  | dynamodb | Tables | name, arn, region, tags, resource policy |
61
62
  | ecr | Repositories | name, arn, region, tags, resource policy, key id |
62
63
  | ecr | Registries | policy |
63
64
  | ec2 | VPC Endpoints | id, name, type, vpc, policy |
65
+ | glacier | Vaults | name, arn, region, tags, policy |
64
66
  | kms | Keys | id, policy, tags |
65
67
  | lambda | Functions | name, role, tags, policy |
66
68
  | s3 | Buckets | name, region, tags, policy, block public access configuration, default encryption |
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * All Valid AWS Services
3
3
  */
4
- export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "iam", "kms", "lambda", "organizations", "s3", "secretsmanager", "sns", "sqs", "sso"];
4
+ export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "glacier", "iam", "kms", "lambda", "organizations", "s3", "secretsmanager", "sns", "sqs", "sso"];
5
5
  /**
6
6
  * Type representing a valid AWS service. A union of all strings in `allServices`.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,yIAcd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,oJAed,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -9,6 +9,7 @@ exports.allServices = [
9
9
  'dynamodb',
10
10
  'ec2',
11
11
  'ecr',
12
+ 'glacier',
12
13
  'iam',
13
14
  'kms',
14
15
  'lambda',
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Sync } from '../sync.js';
2
+ export declare const InstanceProfilesSync: Sync;
3
+ //# sourceMappingURL=instanceProfiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanceProfiles.d.ts","sourceRoot":"","sources":["../../../../src/syncs/iam/instanceProfiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC,eAAO,MAAM,oBAAoB,EAAE,IA2BlC,CAAA"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InstanceProfilesSync = void 0;
4
+ const client_iam_1 = require("@aws-sdk/client-iam");
5
+ const typedSync_js_1 = require("../typedSync.js");
6
+ exports.InstanceProfilesSync = (0, typedSync_js_1.createTypedSyncOperation)('iam', 'instanceprofiles', (0, typedSync_js_1.createResourceSyncType)({
7
+ client: client_iam_1.IAMClient,
8
+ command: client_iam_1.ListInstanceProfilesCommand,
9
+ key: 'InstanceProfiles',
10
+ paginationConfig: {
11
+ inputKey: 'Marker',
12
+ outputKey: 'Marker'
13
+ },
14
+ arn: (profile) => profile.Arn,
15
+ tags: (profile) => profile.Tags,
16
+ resourceTypeParts: (account, region) => ({
17
+ service: 'iam',
18
+ account,
19
+ resourceType: 'instance-profile'
20
+ }),
21
+ results: (profile) => ({
22
+ metadata: {
23
+ name: profile.Path,
24
+ roles: profile.Roles?.map((role) => role.Arn),
25
+ id: profile.InstanceProfileId,
26
+ path: profile.Path
27
+ }
28
+ })
29
+ }));
30
+ //# sourceMappingURL=instanceProfiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanceProfiles.js","sourceRoot":"","sources":["../../../../src/syncs/iam/instanceProfiles.ts"],"names":[],"mappings":";;;AAAA,oDAA4E;AAE5E,kDAAkF;AAErE,QAAA,oBAAoB,GAAS,IAAA,uCAAwB,EAChE,KAAK,EACL,kBAAkB,EAClB,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,sBAAS;IACjB,OAAO,EAAE,wCAA2B;IACpC,GAAG,EAAE,kBAAkB;IACvB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAI;IAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI;IAC/B,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,KAAK;QACd,OAAO;QACP,YAAY,EAAE,kBAAkB;KACjC,CAAC;IACF,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrB,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,EAAE,EAAE,OAAO,CAAC,iBAAiB;YAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB;KACF,CAAC;CACH,CAAC,CACH,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const GlacierVaultsSync: import("../sync.js").Sync;
2
+ //# sourceMappingURL=vaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaults.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3/vaults.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iBAAiB,2BAmD7B,CAAA"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GlacierVaultsSync = void 0;
4
+ const client_glacier_1 = require("@aws-sdk/client-glacier");
5
+ const client_tools_js_1 = require("../../utils/client-tools.js");
6
+ const typedSync_js_1 = require("../typedSync.js");
7
+ exports.GlacierVaultsSync = (0, typedSync_js_1.createTypedSyncOperation)('glacier', 'glacierVaults', (0, typedSync_js_1.createResourceSyncType)({
8
+ client: client_glacier_1.GlacierClient,
9
+ command: client_glacier_1.ListVaultsCommand,
10
+ key: 'VaultList',
11
+ paginationConfig: {
12
+ inputKey: 'marker',
13
+ outputKey: 'Marker'
14
+ },
15
+ arn: (vault) => vault.VaultARN,
16
+ resourceTypeParts: (account, region) => ({
17
+ account,
18
+ region,
19
+ resourceType: 'vaults',
20
+ service: 'glacier'
21
+ }),
22
+ tags: (vault) => vault.extraFields.tags,
23
+ extraFields: {
24
+ policy: async (client, vault, accountId) => {
25
+ const policy = await (0, client_tools_js_1.runAndCatch404)(async () => {
26
+ const result = await client.send(new client_glacier_1.GetVaultAccessPolicyCommand({
27
+ accountId,
28
+ vaultName: vault.VaultName
29
+ }));
30
+ return JSON.parse(result.policy?.Policy || '{}');
31
+ });
32
+ return policy;
33
+ },
34
+ tags: async (client, vault, accountId) => {
35
+ const tags = await client.send(new client_glacier_1.ListTagsForVaultCommand({
36
+ accountId,
37
+ vaultName: vault.VaultName
38
+ }));
39
+ return tags.Tags;
40
+ }
41
+ },
42
+ results: (vault) => ({
43
+ metadata: {
44
+ name: vault.VaultName
45
+ },
46
+ policy: vault.extraFields.policy
47
+ })
48
+ }));
49
+ //# sourceMappingURL=vaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaults.js","sourceRoot":"","sources":["../../../../src/syncs/s3/vaults.ts"],"names":[],"mappings":";;;AAAA,4DAKgC;AAChC,iEAA4D;AAC5D,kDAAkF;AAErE,QAAA,iBAAiB,GAAG,IAAA,uCAAwB,EACvD,SAAS,EACT,eAAe,EACf,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,8BAAa;IACrB,OAAO,EAAE,kCAAiB;IAC1B,GAAG,EAAE,WAAW;IAChB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAS;IAC/B,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO;QACP,MAAM;QACN,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,SAAS;KACnB,CAAC;IACF,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;IACvC,WAAW,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,4CAA2B,CAAC;oBAC9B,SAAS;oBACT,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC3B,CAAC,CACH,CAAA;gBAED,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B,IAAI,wCAAuB,CAAC;gBAC1B,SAAS;gBACT,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CACH,CAAA;YACD,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;KACF;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnB,QAAQ,EAAE;YACR,IAAI,EAAE,KAAK,CAAC,SAAS;SACtB;QACD,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;KACjC,CAAC;CACH,CAAC,CACH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAgB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAsChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
1
+ {"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAkB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAwChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
@@ -8,11 +8,13 @@ const vpcEndpoints_js_1 = require("./ec2/vpcEndpoints.js");
8
8
  const ecrSyncs_js_1 = require("./ecr/ecrSyncs.js");
9
9
  const authorizationDetails_js_1 = require("./iam/authorizationDetails.js");
10
10
  const identityProviders_js_1 = require("./iam/identityProviders.js");
11
+ const instanceProfiles_js_1 = require("./iam/instanceProfiles.js");
11
12
  const key_js_1 = require("./kms/key.js");
12
13
  const lambda_js_1 = require("./lambda/lambda.js");
13
14
  const organizations_js_1 = require("./organizations/organizations.js");
14
15
  const accountBpa_js_1 = require("./s3/accountBpa.js");
15
16
  const buckets_js_1 = require("./s3/buckets.js");
17
+ const vaults_js_1 = require("./s3/vaults.js");
16
18
  const secrets_js_1 = require("./secretsmanager/secrets.js");
17
19
  const topics_js_1 = require("./sns/topics.js");
18
20
  const queues_js_1 = require("./sqs/queues.js");
@@ -22,7 +24,9 @@ const allSyncs = [
22
24
  authorizationDetails_js_1.AuthorizationDetailsSync,
23
25
  tables_js_1.DynamoDBTableSync,
24
26
  ...ecrSyncs_js_1.EcrSyncs,
27
+ instanceProfiles_js_1.InstanceProfilesSync,
25
28
  ...identityProviders_js_1.IdentityProviderSyncs,
29
+ vaults_js_1.GlacierVaultsSync,
26
30
  key_js_1.KeySync,
27
31
  lambda_js_1.LambdaSync,
28
32
  organizations_js_1.OrganizationSync,
@@ -1 +1 @@
1
- {"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":";;AA4DA,4DAMC;AAQD,gEAMC;AA/ED,0DAAuD;AACvD,oDAAwD;AACxD,2DAAwD;AACxD,mDAA4C;AAC5C,2EAAwE;AACxE,qEAAkE;AAClE,yCAAsC;AACtC,kDAA+C;AAC/C,uEAAmE;AACnE,sDAAqD;AACrD,gDAA4D;AAC5D,4DAAwD;AACxD,+CAA+C;AAC/C,+CAA8C;AAC9C,2DAAmD;AAGnD,MAAM,QAAQ,GAAG;IACf,gCAAgB;IAChB,kDAAwB;IACxB,6BAAiB;IACjB,GAAG,sBAAQ;IACX,GAAG,4CAAqB;IACxB,gBAAO;IACP,sBAAU;IACV,mCAAgB;IAChB,0BAAY;IACZ,uCAA0B;IAC1B,uBAAU;IACV,yBAAa;IACb,wBAAY;IACZ,6BAAW;IACX,kCAAgB;CACjB,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoD,CAAA;AAE3E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA;IAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,OAAmB;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,OAAmB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":";;AAgEA,4DAMC;AAQD,gEAMC;AAnFD,0DAAuD;AACvD,oDAAwD;AACxD,2DAAwD;AACxD,mDAA4C;AAC5C,2EAAwE;AACxE,qEAAkE;AAClE,mEAAgE;AAChE,yCAAsC;AACtC,kDAA+C;AAC/C,uEAAmE;AACnE,sDAAqD;AACrD,gDAA4D;AAC5D,8CAAkD;AAClD,4DAAwD;AACxD,+CAA+C;AAC/C,+CAA8C;AAC9C,2DAAmD;AAGnD,MAAM,QAAQ,GAAG;IACf,gCAAgB;IAChB,kDAAwB;IACxB,6BAAiB;IACjB,GAAG,sBAAQ;IACX,0CAAoB;IACpB,GAAG,4CAAqB;IACxB,6BAAiB;IACjB,gBAAO;IACP,sBAAU;IACV,mCAAgB;IAChB,0BAAY;IACZ,uCAA0B;IAC1B,uBAAU;IACV,yBAAa;IACb,wBAAY;IACZ,6BAAW;IACX,kCAAgB;CACjB,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoD,CAAA;AAE3E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA;IAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,OAAmB;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,OAAmB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * All Valid AWS Services
3
3
  */
4
- export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "iam", "kms", "lambda", "organizations", "s3", "secretsmanager", "sns", "sqs", "sso"];
4
+ export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "glacier", "iam", "kms", "lambda", "organizations", "s3", "secretsmanager", "sns", "sqs", "sso"];
5
5
  /**
6
6
  * Type representing a valid AWS service. A union of all strings in `allServices`.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,yIAcd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,oJAed,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -6,6 +6,7 @@ export const allServices = [
6
6
  'dynamodb',
7
7
  'ec2',
8
8
  'ecr',
9
+ 'glacier',
9
10
  'iam',
10
11
  'kms',
11
12
  'lambda',
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Sync } from '../sync.js';
2
+ export declare const InstanceProfilesSync: Sync;
3
+ //# sourceMappingURL=instanceProfiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanceProfiles.d.ts","sourceRoot":"","sources":["../../../../src/syncs/iam/instanceProfiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC,eAAO,MAAM,oBAAoB,EAAE,IA2BlC,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { IAMClient, ListInstanceProfilesCommand } from '@aws-sdk/client-iam';
2
+ import { createResourceSyncType, createTypedSyncOperation } from '../typedSync.js';
3
+ export const InstanceProfilesSync = createTypedSyncOperation('iam', 'instanceprofiles', createResourceSyncType({
4
+ client: IAMClient,
5
+ command: ListInstanceProfilesCommand,
6
+ key: 'InstanceProfiles',
7
+ paginationConfig: {
8
+ inputKey: 'Marker',
9
+ outputKey: 'Marker'
10
+ },
11
+ arn: (profile) => profile.Arn,
12
+ tags: (profile) => profile.Tags,
13
+ resourceTypeParts: (account, region) => ({
14
+ service: 'iam',
15
+ account,
16
+ resourceType: 'instance-profile'
17
+ }),
18
+ results: (profile) => ({
19
+ metadata: {
20
+ name: profile.Path,
21
+ roles: profile.Roles?.map((role) => role.Arn),
22
+ id: profile.InstanceProfileId,
23
+ path: profile.Path
24
+ }
25
+ })
26
+ }));
27
+ //# sourceMappingURL=instanceProfiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instanceProfiles.js","sourceRoot":"","sources":["../../../../src/syncs/iam/instanceProfiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAE5E,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAElF,MAAM,CAAC,MAAM,oBAAoB,GAAS,wBAAwB,CAChE,KAAK,EACL,kBAAkB,EAClB,sBAAsB,CAAC;IACrB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,2BAA2B;IACpC,GAAG,EAAE,kBAAkB;IACvB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAI;IAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI;IAC/B,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,KAAK;QACd,OAAO;QACP,YAAY,EAAE,kBAAkB;KACjC,CAAC;IACF,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrB,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,EAAE,EAAE,OAAO,CAAC,iBAAiB;YAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB;KACF,CAAC;CACH,CAAC,CACH,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const GlacierVaultsSync: import("../sync.js").Sync;
2
+ //# sourceMappingURL=vaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaults.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3/vaults.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iBAAiB,2BAmD7B,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { GetVaultAccessPolicyCommand, GlacierClient, ListTagsForVaultCommand, ListVaultsCommand } from '@aws-sdk/client-glacier';
2
+ import { runAndCatch404 } from '../../utils/client-tools.js';
3
+ import { createResourceSyncType, createTypedSyncOperation } from '../typedSync.js';
4
+ export const GlacierVaultsSync = createTypedSyncOperation('glacier', 'glacierVaults', createResourceSyncType({
5
+ client: GlacierClient,
6
+ command: ListVaultsCommand,
7
+ key: 'VaultList',
8
+ paginationConfig: {
9
+ inputKey: 'marker',
10
+ outputKey: 'Marker'
11
+ },
12
+ arn: (vault) => vault.VaultARN,
13
+ resourceTypeParts: (account, region) => ({
14
+ account,
15
+ region,
16
+ resourceType: 'vaults',
17
+ service: 'glacier'
18
+ }),
19
+ tags: (vault) => vault.extraFields.tags,
20
+ extraFields: {
21
+ policy: async (client, vault, accountId) => {
22
+ const policy = await runAndCatch404(async () => {
23
+ const result = await client.send(new GetVaultAccessPolicyCommand({
24
+ accountId,
25
+ vaultName: vault.VaultName
26
+ }));
27
+ return JSON.parse(result.policy?.Policy || '{}');
28
+ });
29
+ return policy;
30
+ },
31
+ tags: async (client, vault, accountId) => {
32
+ const tags = await client.send(new ListTagsForVaultCommand({
33
+ accountId,
34
+ vaultName: vault.VaultName
35
+ }));
36
+ return tags.Tags;
37
+ }
38
+ },
39
+ results: (vault) => ({
40
+ metadata: {
41
+ name: vault.VaultName
42
+ },
43
+ policy: vault.extraFields.policy
44
+ })
45
+ }));
46
+ //# sourceMappingURL=vaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaults.js","sourceRoot":"","sources":["../../../../src/syncs/s3/vaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAElF,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CACvD,SAAS,EACT,eAAe,EACf,sBAAsB,CAAC;IACrB,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,iBAAiB;IAC1B,GAAG,EAAE,WAAW;IAChB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAS;IAC/B,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO;QACP,MAAM;QACN,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,SAAS;KACnB,CAAC;IACF,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;IACvC,WAAW,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,2BAA2B,CAAC;oBAC9B,SAAS;oBACT,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC3B,CAAC,CACH,CAAA;gBAED,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAC5B,IAAI,uBAAuB,CAAC;gBAC1B,SAAS;gBACT,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CACH,CAAA;YACD,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;KACF;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnB,QAAQ,EAAE;YACR,IAAI,EAAE,KAAK,CAAC,SAAS;SACtB;QACD,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;KACjC,CAAC;CACH,CAAC,CACH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAgB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAsChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
1
+ {"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAkB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAwChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
@@ -4,11 +4,13 @@ import { VpcEndpointsSync } from './ec2/vpcEndpoints.js';
4
4
  import { EcrSyncs } from './ecr/ecrSyncs.js';
5
5
  import { AuthorizationDetailsSync } from './iam/authorizationDetails.js';
6
6
  import { IdentityProviderSyncs } from './iam/identityProviders.js';
7
+ import { InstanceProfilesSync } from './iam/instanceProfiles.js';
7
8
  import { KeySync } from './kms/key.js';
8
9
  import { LambdaSync } from './lambda/lambda.js';
9
10
  import { OrganizationSync } from './organizations/organizations.js';
10
11
  import { AccountS3BpaSync } from './s3/accountBpa.js';
11
12
  import { S3GeneralPurposeBucketSync } from './s3/buckets.js';
13
+ import { GlacierVaultsSync } from './s3/vaults.js';
12
14
  import { SecretSync } from './secretsmanager/secrets.js';
13
15
  import { SnsTopicsSync } from './sns/topics.js';
14
16
  import { SqsQueueSync } from './sqs/queues.js';
@@ -18,7 +20,9 @@ const allSyncs = [
18
20
  AuthorizationDetailsSync,
19
21
  DynamoDBTableSync,
20
22
  ...EcrSyncs,
23
+ InstanceProfilesSync,
21
24
  ...IdentityProviderSyncs,
25
+ GlacierVaultsSync,
22
26
  KeySync,
23
27
  LambdaSync,
24
28
  OrganizationSync,
@@ -1 +1 @@
1
- {"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,MAAM,QAAQ,GAAG;IACf,gBAAgB;IAChB,wBAAwB;IACxB,iBAAiB;IACjB,GAAG,QAAQ;IACX,GAAG,qBAAqB;IACxB,OAAO;IACP,UAAU;IACV,gBAAgB;IAChB,YAAY;IACZ,0BAA0B;IAC1B,UAAU;IACV,aAAa;IACb,YAAY;IACZ,WAAW;IACX,gBAAgB;CACjB,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoD,CAAA;AAE3E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA;IAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAmB;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAmB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,MAAM,QAAQ,GAAG;IACf,gBAAgB;IAChB,wBAAwB;IACxB,iBAAiB;IACjB,GAAG,QAAQ;IACX,oBAAoB;IACpB,GAAG,qBAAqB;IACxB,iBAAiB;IACjB,OAAO;IACP,UAAU;IACV,gBAAgB;IAChB,YAAY;IACZ,0BAA0B;IAC1B,UAAU;IACV,aAAa;IACb,YAAY;IACZ,WAAW;IACX,gBAAgB;CACjB,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoD,CAAA;AAE3E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA;IAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAmB;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAmB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-copilot/iam-collect",
3
- "version": "0.1.37",
3
+ "version": "0.1.39",
4
4
  "description": "Collect IAM information from AWS Accounts",
5
5
  "repository": {
6
6
  "type": "git",
@@ -113,6 +113,7 @@
113
113
  "@aws-sdk/client-dynamodb": "^3.788.0",
114
114
  "@aws-sdk/client-ec2": "^3.798.0",
115
115
  "@aws-sdk/client-ecr": "^3.798.0",
116
+ "@aws-sdk/client-glacier": "^3.799.0",
116
117
  "@aws-sdk/client-iam": "^3.777.0",
117
118
  "@aws-sdk/client-kms": "^3.782.0",
118
119
  "@aws-sdk/client-lambda": "^3.782.0",