@cloud-copilot/iam-collect 0.1.92 → 0.1.94
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 +39 -39
- package/dist/cjs/config/config.d.ts +12 -0
- package/dist/cjs/config/config.d.ts.map +1 -1
- package/dist/cjs/config/config.js +33 -0
- package/dist/cjs/config/config.js.map +1 -1
- package/dist/cjs/config/defaultConfig.d.ts.map +1 -1
- package/dist/cjs/config/defaultConfig.js +28 -0
- package/dist/cjs/config/defaultConfig.js.map +1 -1
- package/dist/cjs/config/partitionDefaults.d.ts.map +1 -1
- package/dist/cjs/config/partitionDefaults.js +27 -0
- package/dist/cjs/config/partitionDefaults.js.map +1 -1
- package/dist/cjs/download/download.d.ts.map +1 -1
- package/dist/cjs/download/download.js +9 -3
- package/dist/cjs/download/download.js.map +1 -1
- package/dist/cjs/syncs/apigateway/gateways.d.ts +10 -0
- package/dist/cjs/syncs/apigateway/gateways.d.ts.map +1 -1
- package/dist/cjs/syncs/apigateway/gateways.js +35 -4
- package/dist/cjs/syncs/apigateway/gateways.js.map +1 -1
- package/dist/cjs/syncs/iam/authorizationDetails.d.ts +2 -1
- package/dist/cjs/syncs/iam/authorizationDetails.d.ts.map +1 -1
- package/dist/cjs/syncs/iam/authorizationDetails.js +9 -7
- package/dist/cjs/syncs/iam/authorizationDetails.js.map +1 -1
- package/dist/cjs/syncs/s3/buckets.d.ts.map +1 -1
- package/dist/cjs/syncs/s3/buckets.js +35 -4
- package/dist/cjs/syncs/s3/buckets.js.map +1 -1
- package/dist/cjs/syncs/sqs/queues.d.ts.map +1 -1
- package/dist/cjs/syncs/sqs/queues.js +3 -0
- package/dist/cjs/syncs/sqs/queues.js.map +1 -1
- package/dist/cjs/syncs/sync.d.ts +3 -0
- package/dist/cjs/syncs/sync.d.ts.map +1 -1
- package/dist/cjs/syncs/sync.js.map +1 -1
- package/dist/cjs/syncs/typedSync.d.ts +2 -1
- package/dist/cjs/syncs/typedSync.d.ts.map +1 -1
- package/dist/cjs/syncs/typedSync.js +25 -9
- package/dist/cjs/syncs/typedSync.js.map +1 -1
- package/dist/esm/config/config.d.ts +12 -0
- package/dist/esm/config/config.d.ts.map +1 -1
- package/dist/esm/config/config.js +32 -0
- package/dist/esm/config/config.js.map +1 -1
- package/dist/esm/config/defaultConfig.d.ts.map +1 -1
- package/dist/esm/config/defaultConfig.js +28 -0
- package/dist/esm/config/defaultConfig.js.map +1 -1
- package/dist/esm/config/partitionDefaults.d.ts.map +1 -1
- package/dist/esm/config/partitionDefaults.js +27 -0
- package/dist/esm/config/partitionDefaults.js.map +1 -1
- package/dist/esm/download/download.d.ts.map +1 -1
- package/dist/esm/download/download.js +10 -4
- package/dist/esm/download/download.js.map +1 -1
- package/dist/esm/syncs/apigateway/gateways.d.ts +10 -0
- package/dist/esm/syncs/apigateway/gateways.d.ts.map +1 -1
- package/dist/esm/syncs/apigateway/gateways.js +34 -4
- package/dist/esm/syncs/apigateway/gateways.js.map +1 -1
- package/dist/esm/syncs/iam/authorizationDetails.d.ts +2 -1
- package/dist/esm/syncs/iam/authorizationDetails.d.ts.map +1 -1
- package/dist/esm/syncs/iam/authorizationDetails.js +9 -7
- package/dist/esm/syncs/iam/authorizationDetails.js.map +1 -1
- package/dist/esm/syncs/s3/buckets.d.ts.map +1 -1
- package/dist/esm/syncs/s3/buckets.js +35 -4
- package/dist/esm/syncs/s3/buckets.js.map +1 -1
- package/dist/esm/syncs/sqs/queues.d.ts.map +1 -1
- package/dist/esm/syncs/sqs/queues.js +3 -0
- package/dist/esm/syncs/sqs/queues.js.map +1 -1
- package/dist/esm/syncs/sync.d.ts +3 -0
- package/dist/esm/syncs/sync.d.ts.map +1 -1
- package/dist/esm/syncs/sync.js.map +1 -1
- package/dist/esm/syncs/typedSync.d.ts +2 -1
- package/dist/esm/syncs/typedSync.d.ts.map +1 -1
- package/dist/esm/syncs/typedSync.js +25 -9
- package/dist/esm/syncs/typedSync.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -104,44 +104,44 @@ This will show you your data that was downloaded. See the [storage docs](docs/St
|
|
|
104
104
|
|
|
105
105
|
## Supported Services and Data
|
|
106
106
|
|
|
107
|
-
| Service | Resource Type | Data Downloaded
|
|
108
|
-
| ----------------- | --------------------------------- |
|
|
109
|
-
| iam | Users | name, path, id, groups, tags, inline policies, managed policies, permission boundary
|
|
110
|
-
| iam | Groups | name, path, id, inline policies, managed policies
|
|
111
|
-
| iam | Roles | name, path, id, trust policy, inline policies, managed policies, instance profiles, tags, permission boundary
|
|
112
|
-
| iam | Customer and AWS Managed Policies | name, path, id, default version, default version doc, tags
|
|
113
|
-
| iam | OIDC Providers | arn, audiences, thumbprints, url, tags
|
|
114
|
-
| iam | SAML Providers | arn, metadata document, uuid, private keys, valid until, tags
|
|
115
|
-
| iam | Instance Profiles | arn, name, roles, id, path, tags
|
|
116
|
-
| apigateway | Rest APIs | id, name, policy, tags
|
|
117
|
-
| backup | Backup Vaults | name, key arn, tags, policy
|
|
118
|
-
| dynamodb | Streams | name, arn, region, resource policy
|
|
119
|
-
| dynamodb | Tables | name, arn, region, tags, resource policy
|
|
120
|
-
| ecr | Repositories | name, arn, region, tags, resource policy, key id
|
|
121
|
-
| ecr | Registries | policy
|
|
122
|
-
| ec2 | VPC Endpoints | id, name, type, vpc, policy
|
|
123
|
-
| elasticfilesystem | File Systems | name, id, key, encryption, tags, policy
|
|
124
|
-
| glacier | Vaults | name, arn, region, tags, policy
|
|
125
|
-
| glue | Root Catalogs | policy
|
|
126
|
-
| kms | Keys | id, policy, tags
|
|
127
|
-
| lambda | Functions | name, role, tags, policy
|
|
128
|
-
| lambda | Layer Versions | name, arn, version, policy
|
|
129
|
-
| ram | Shared Resources | arn, resource shares, resource policy
|
|
130
|
-
| s3 | Access Points | name, bucket, bucket account, policy, block public access configuration, network origin, vpc, alias, endpoints
|
|
131
|
-
| s3 | Buckets | name, region, tags, policy, block public access configuration, default encryption
|
|
132
|
-
| s3 | Multi Region Access Points | name, alias, regions, policy, block public access configuration
|
|
133
|
-
| s3express | Directory Buckets | name, encryption settings, policy
|
|
134
|
-
| s3outposts | Outpost Buckets | name, region, tags, policy
|
|
135
|
-
| s3outposts | Outpost Access Points | name, bucket, bucket account, policy, network origin, vpc
|
|
136
|
-
| s3tables | Table Buckets | name, region, bucket policy, encryption
|
|
137
|
-
| organizations | Organizations | id, arn, root account id, enabled policy types, org structure
|
|
138
|
-
| organizations | Organizational Units | id, arn, parent ou, enabled SCPs, enabled RCPs, tags
|
|
139
|
-
| organizations | Accounts | id, arn, parent ou, enabled SCPs, enabled RCPs, tags
|
|
140
|
-
| organizations | SCPs, RCPs | id, arn, name, description, tags, policy
|
|
141
|
-
| sns | Topics | name, arn, tags, kms key id, policy
|
|
142
|
-
| sqs | Queues | name, arn, tags, kms key id, policy
|
|
143
|
-
| secretsmanager | Secrets | name, arn, tags, kms key id, policy
|
|
144
|
-
| sso | Instances | id, arn, name, owner account id, status, tags
|
|
145
|
-
| sso | Permission Sets | name, description, AWS managed policies, customer managed policies, inline policy, permission boundary, accounts, tags
|
|
107
|
+
| Service | Resource Type | Data Downloaded |
|
|
108
|
+
| ----------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
109
|
+
| iam | Users | name, path, id, groups, tags, inline policies, managed policies, permission boundary |
|
|
110
|
+
| iam | Groups | name, path, id, inline policies, managed policies |
|
|
111
|
+
| iam | Roles | name, path, id, trust policy, inline policies, managed policies, instance profiles, tags (excluded by default), permission boundary |
|
|
112
|
+
| iam | Customer and AWS Managed Policies | name, path, id, default version, default version doc, tags |
|
|
113
|
+
| iam | OIDC Providers | arn, audiences, thumbprints, url, tags |
|
|
114
|
+
| iam | SAML Providers | arn, metadata document, uuid, private keys, valid until, tags |
|
|
115
|
+
| iam | Instance Profiles | arn, name, roles, id, path, tags |
|
|
116
|
+
| apigateway | Rest APIs | id, name, policy, tags |
|
|
117
|
+
| backup | Backup Vaults | name, key arn, tags, policy |
|
|
118
|
+
| dynamodb | Streams | name, arn, region, resource policy |
|
|
119
|
+
| dynamodb | Tables | name, arn, region, tags, resource policy |
|
|
120
|
+
| ecr | Repositories | name, arn, region, tags, resource policy, key id |
|
|
121
|
+
| ecr | Registries | policy |
|
|
122
|
+
| ec2 | VPC Endpoints | id, name, type, vpc, policy |
|
|
123
|
+
| elasticfilesystem | File Systems | name, id, key, encryption, tags, policy |
|
|
124
|
+
| glacier | Vaults | name, arn, region, tags, policy |
|
|
125
|
+
| glue | Root Catalogs | policy |
|
|
126
|
+
| kms | Keys | id, policy, tags |
|
|
127
|
+
| lambda | Functions | name, role, tags, policy |
|
|
128
|
+
| lambda | Layer Versions | name, arn, version, policy |
|
|
129
|
+
| ram | Shared Resources | arn, resource shares, resource policy |
|
|
130
|
+
| s3 | Access Points | name, bucket, bucket account, policy, block public access configuration, network origin, vpc, alias, endpoints |
|
|
131
|
+
| s3 | Buckets | name, region, tags, policy, block public access configuration, default encryption |
|
|
132
|
+
| s3 | Multi Region Access Points | name, alias, regions, policy, block public access configuration |
|
|
133
|
+
| s3express | Directory Buckets | name, encryption settings, policy |
|
|
134
|
+
| s3outposts | Outpost Buckets | name, region, tags, policy |
|
|
135
|
+
| s3outposts | Outpost Access Points | name, bucket, bucket account, policy, network origin, vpc |
|
|
136
|
+
| s3tables | Table Buckets | name, region, bucket policy, encryption |
|
|
137
|
+
| organizations | Organizations | id, arn, root account id, enabled policy types, org structure |
|
|
138
|
+
| organizations | Organizational Units | id, arn, parent ou, enabled SCPs, enabled RCPs, tags |
|
|
139
|
+
| organizations | Accounts | id, arn, parent ou, enabled SCPs, enabled RCPs, tags |
|
|
140
|
+
| organizations | SCPs, RCPs | id, arn, name, description, tags, policy |
|
|
141
|
+
| sns | Topics | name, arn, tags, kms key id, policy |
|
|
142
|
+
| sqs | Queues | name, arn, tags, kms key id, policy |
|
|
143
|
+
| secretsmanager | Secrets | name, arn, tags, kms key id, policy |
|
|
144
|
+
| sso | Instances | id, arn, name, owner account id, status, tags |
|
|
145
|
+
| sso | Permission Sets | name, description, AWS managed policies, customer managed policies, inline policy, permission boundary, accounts, tags |
|
|
146
146
|
|
|
147
147
|
If you don't see the data you are looking for, please check the [open resource issues](https://github.com/cloud-copilot/iam-collect/issues?q=is%3Aissue%20state%3Aopen%20label%3Aresource) and comment on the issue or create a new one.
|
|
@@ -85,6 +85,7 @@ interface ServiceConfig extends Omit<BaseConfig, 'auth'> {
|
|
|
85
85
|
auth?: OptionalAuthConfig;
|
|
86
86
|
}
|
|
87
87
|
interface SyncConfig {
|
|
88
|
+
custom?: Record<string, any>;
|
|
88
89
|
regions?: {
|
|
89
90
|
included?: string[];
|
|
90
91
|
excluded?: string[];
|
|
@@ -123,6 +124,17 @@ export interface ResolvedAccountServiceRegionConfig {
|
|
|
123
124
|
*/
|
|
124
125
|
export declare function getDefaultAuthConfig(configs: TopLevelConfig[]): AuthConfig;
|
|
125
126
|
export declare function servicesForAccount(account: string, configs: TopLevelConfig[], allServices: string[]): ServicesForAccount;
|
|
127
|
+
/**
|
|
128
|
+
* Look up the custom config for a specific sync for a service in an account and region.
|
|
129
|
+
*
|
|
130
|
+
* @param service the service to look up the sync for
|
|
131
|
+
* @param syncName the name of the sync to look up
|
|
132
|
+
* @param account the account to look up the sync for
|
|
133
|
+
* @param region the region to look up the sync for
|
|
134
|
+
* @param configs the configs to search
|
|
135
|
+
* @returns the custom config for the sync, or undefined if not found
|
|
136
|
+
*/
|
|
137
|
+
export declare function customConfigForSync(service: string, syncName: string, account: string, region: string, configs: TopLevelConfig[]): Record<string, any> | undefined;
|
|
126
138
|
/**
|
|
127
139
|
* Get the regions for a specific service and account.
|
|
128
140
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getDefaultAuthConfig = getDefaultAuthConfig;
|
|
4
4
|
exports.servicesForAccount = servicesForAccount;
|
|
5
|
+
exports.customConfigForSync = customConfigForSync;
|
|
5
6
|
exports.regionsForService = regionsForService;
|
|
6
7
|
exports.accountServiceRegionConfig = accountServiceRegionConfig;
|
|
7
8
|
exports.getAccountAuthConfig = getAccountAuthConfig;
|
|
@@ -49,6 +50,38 @@ function servicesForAccount(account, configs, allServices) {
|
|
|
49
50
|
}
|
|
50
51
|
return services;
|
|
51
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Look up the custom config for a specific sync for a service in an account and region.
|
|
55
|
+
*
|
|
56
|
+
* @param service the service to look up the sync for
|
|
57
|
+
* @param syncName the name of the sync to look up
|
|
58
|
+
* @param account the account to look up the sync for
|
|
59
|
+
* @param region the region to look up the sync for
|
|
60
|
+
* @param configs the configs to search
|
|
61
|
+
* @returns the custom config for the sync, or undefined if not found
|
|
62
|
+
*/
|
|
63
|
+
function customConfigForSync(service, syncName, account, region, configs) {
|
|
64
|
+
// Look up the custom config for the specified service and sync name
|
|
65
|
+
for (const config of [...configs].reverse()) {
|
|
66
|
+
const accountServiceConfig = config.accountConfigs?.[account]?.serviceConfigs?.[service];
|
|
67
|
+
const accountServiceRegionConfig = accountServiceConfig?.regionConfigs?.[region]?.syncConfigs?.[syncName];
|
|
68
|
+
if (accountServiceRegionConfig?.custom) {
|
|
69
|
+
return accountServiceRegionConfig.custom;
|
|
70
|
+
}
|
|
71
|
+
if (accountServiceConfig?.syncConfigs?.[syncName]?.custom) {
|
|
72
|
+
return accountServiceConfig.syncConfigs[syncName].custom;
|
|
73
|
+
}
|
|
74
|
+
const serviceRegionConfig = config.serviceConfigs?.[service]?.regionConfigs?.[region];
|
|
75
|
+
if (serviceRegionConfig?.syncConfigs?.[syncName]?.custom) {
|
|
76
|
+
return serviceRegionConfig.syncConfigs[syncName].custom;
|
|
77
|
+
}
|
|
78
|
+
const serviceConfig = config.serviceConfigs?.[service];
|
|
79
|
+
if (serviceConfig?.syncConfigs?.[syncName]?.custom) {
|
|
80
|
+
return serviceConfig.syncConfigs[syncName].custom;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
52
85
|
/**
|
|
53
86
|
* Get the regions for a specific service and account.
|
|
54
87
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultConfig.d.ts","sourceRoot":"","sources":["../../../src/config/defaultConfig.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,sBAAsB,CAAA;AAExD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;
|
|
1
|
+
{"version":3,"file":"defaultConfig.d.ts","sourceRoot":"","sources":["../../../src/config/defaultConfig.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,sBAAsB,CAAA;AAExD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAoID,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGxD"}
|
|
@@ -63,6 +63,34 @@ const defaultConfig = `
|
|
|
63
63
|
},
|
|
64
64
|
*/
|
|
65
65
|
|
|
66
|
+
/*
|
|
67
|
+
"serviceConfigs": {
|
|
68
|
+
"iam": {
|
|
69
|
+
"syncConfigs": {
|
|
70
|
+
"authorizationDetails": {
|
|
71
|
+
"custom": {
|
|
72
|
+
// If true, the authorization details sync will include tags for managed policies.
|
|
73
|
+
// This can significantly increase the time it takes to sync.
|
|
74
|
+
"includePolicyTags": true
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
"s3": {
|
|
80
|
+
"syncConfigs": {
|
|
81
|
+
"multiRegionAccessPoints": {
|
|
82
|
+
"regions": {
|
|
83
|
+
// Multi-Region Access Points are only available in us-west-2 in the aws partition
|
|
84
|
+
// If using a different partition, you can specify the region for that partition here
|
|
85
|
+
"included": ["us-west-2"]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
*/
|
|
93
|
+
|
|
66
94
|
/*
|
|
67
95
|
Optionally specify separate configurations for accounts:
|
|
68
96
|
"accountConfigs": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultConfig.js","sourceRoot":"","sources":["../../../src/config/defaultConfig.ts"],"names":[],"mappings":";;;AAWA,sDAEC;AAMD,kDAEC;
|
|
1
|
+
{"version":3,"file":"defaultConfig.js","sourceRoot":"","sources":["../../../src/config/defaultConfig.ts"],"names":[],"mappings":";;;AAWA,sDAEC;AAMD,kDAEC;AAoID,4CAGC;AA5JD,2BAA+B;AAC/B,+BAA8B;AAC9B,2DAAuD;AAE1C,QAAA,qBAAqB,GAAG,mBAAmB,CAAA;AAExD;;;;GAIG;AACH,SAAgB,qBAAqB;IACnC,OAAO,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,6BAAqB,CAAC,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB;IACjC,OAAO,IAAA,eAAU,EAAC,qBAAqB,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgIrB,CAAA;AAEM,KAAK,UAAU,gBAAgB;IACpC,MAAM,OAAO,GAAG,MAAM,IAAA,qCAAiB,GAAE,CAAA;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partitionDefaults.d.ts","sourceRoot":"","sources":["../../../src/config/partitionDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"partitionDefaults.d.ts","sourceRoot":"","sources":["../../../src/config/partitionDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAiG5C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAEtE"}
|
|
@@ -5,6 +5,15 @@ const partitionDefaults = {
|
|
|
5
5
|
aws: {
|
|
6
6
|
iamCollectVersion: '0.0.0',
|
|
7
7
|
serviceConfigs: {
|
|
8
|
+
iam: {
|
|
9
|
+
syncConfigs: {
|
|
10
|
+
authorizationDetails: {
|
|
11
|
+
custom: {
|
|
12
|
+
includePolicyTags: false
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
8
17
|
s3: {
|
|
9
18
|
syncConfigs: {
|
|
10
19
|
multiRegionAccessPoints: {
|
|
@@ -39,6 +48,15 @@ const partitionDefaults = {
|
|
|
39
48
|
excluded: ['s3express']
|
|
40
49
|
},
|
|
41
50
|
serviceConfigs: {
|
|
51
|
+
iam: {
|
|
52
|
+
syncConfigs: {
|
|
53
|
+
authorizationDetails: {
|
|
54
|
+
custom: {
|
|
55
|
+
includePolicyTags: false
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
42
60
|
s3: {
|
|
43
61
|
syncConfigs: {
|
|
44
62
|
multiRegionAccessPoints: {
|
|
@@ -56,6 +74,15 @@ const partitionDefaults = {
|
|
|
56
74
|
excluded: ['s3express']
|
|
57
75
|
},
|
|
58
76
|
serviceConfigs: {
|
|
77
|
+
iam: {
|
|
78
|
+
syncConfigs: {
|
|
79
|
+
authorizationDetails: {
|
|
80
|
+
custom: {
|
|
81
|
+
includePolicyTags: false
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
59
86
|
s3: {
|
|
60
87
|
syncConfigs: {
|
|
61
88
|
multiRegionAccessPoints: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partitionDefaults.js","sourceRoot":"","sources":["../../../src/config/partitionDefaults.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"partitionDefaults.js","sourceRoot":"","sources":["../../../src/config/partitionDefaults.ts"],"names":[],"mappings":";;AAuGA,oDAEC;AAvGD,MAAM,iBAAiB,GAAmC;IACxD,GAAG,EAAE;QACH,iBAAiB,EAAE,OAAO;QAC1B,cAAc,EAAE;YACd,GAAG,EAAE;gBACH,WAAW,EAAE;oBACX,oBAAoB,EAAE;wBACpB,MAAM,EAAE;4BACN,iBAAiB,EAAE,KAAK;yBACzB;qBACF;iBACF;aACF;YACD,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,CAAC,WAAW,CAAC;yBACxB;qBACF;iBACF;aACF;YACD,SAAS,EAAE;gBACT,WAAW,EAAE;oBACX,gBAAgB,EAAE;wBAChB,OAAO,EAAE;4BACP,QAAQ,EAAE;gCACR,WAAW;gCACX,WAAW;gCACX,WAAW;gCACX,YAAY;gCACZ,gBAAgB;gCAChB,WAAW;gCACX,YAAY;6BACb;yBACF;qBACF;iBACF;aACF;SACF;KACF;IACD,YAAY,EAAE;QACZ,iBAAiB,EAAE,OAAO;QAC1B,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,cAAc,EAAE;YACd,GAAG,EAAE;gBACH,WAAW,EAAE;oBACX,oBAAoB,EAAE;wBACpB,MAAM,EAAE;4BACN,iBAAiB,EAAE,KAAK;yBACzB;qBACF;iBACF;aACF;YACD,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,CAAC,eAAe,CAAC;yBAC5B;qBACF;iBACF;aACF;SACF;KACF;IACD,QAAQ,EAAE;QACR,iBAAiB,EAAE,OAAO;QAC1B,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;QACD,cAAc,EAAE;YACd,GAAG,EAAE;gBACH,WAAW,EAAE;oBACX,oBAAoB,EAAE;wBACpB,MAAM,EAAE;4BACN,iBAAiB,EAAE,KAAK;yBACzB;qBACF;iBACF;aACF;YACD,EAAE,EAAE;gBACF,WAAW,EAAE;oBACX,uBAAuB,EAAE;wBACvB,OAAO,EAAE;4BACP,QAAQ,EAAE,EAAE;yBACb;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IACpD,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAA;AACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AAGA,OAAO,EAUL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAY5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAiLf"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.downloadData = downloadData;
|
|
4
|
+
const job_1 = require("@cloud-copilot/job");
|
|
4
5
|
const auth_js_1 = require("../aws/auth.js");
|
|
5
6
|
const coreAuth_js_1 = require("../aws/coreAuth.js");
|
|
6
7
|
const config_js_1 = require("../config/config.js");
|
|
@@ -38,6 +39,7 @@ async function downloadData(configs, accountIds, regions, services, concurrency,
|
|
|
38
39
|
const indexJobs = [];
|
|
39
40
|
log_js_1.log.debug('Starting download runner', { concurrency });
|
|
40
41
|
const downloadRunner = new jobRunner_js_1.JobRunner(concurrency);
|
|
42
|
+
const workerPool = new job_1.ConcurrentWorkerPool(concurrency, log_js_1.log);
|
|
41
43
|
for (const accountId of accountIds) {
|
|
42
44
|
log_js_1.log.info('Queuing downloads for account', { accountId });
|
|
43
45
|
const authForAccount = (0, config_js_1.getAccountAuthConfig)(accountId, configs);
|
|
@@ -52,7 +54,9 @@ async function downloadData(configs, accountIds, regions, services, concurrency,
|
|
|
52
54
|
if (services.length === 0) {
|
|
53
55
|
services = services_js_1.allServices;
|
|
54
56
|
}
|
|
55
|
-
const syncOptions = {
|
|
57
|
+
const syncOptions = {
|
|
58
|
+
workerPool
|
|
59
|
+
};
|
|
56
60
|
const enabledServices = (0, config_js_1.servicesForAccount)(accountId, accountConfigs, services);
|
|
57
61
|
for (const service of enabledServices) {
|
|
58
62
|
log_js_1.log.info('Queuing downloads', { service, accountId });
|
|
@@ -62,6 +66,7 @@ async function downloadData(configs, accountIds, regions, services, concurrency,
|
|
|
62
66
|
const globalRegion = serviceRegions.at(0);
|
|
63
67
|
const globalConfig = (0, config_js_1.accountServiceRegionConfig)(service, accountId, globalRegion, accountConfigs);
|
|
64
68
|
for (const globalSync of globalSyncs) {
|
|
69
|
+
const customConfig = (0, config_js_1.customConfigForSync)(service, globalSync.name, accountId, globalRegion, accountConfigs);
|
|
65
70
|
downloadRunner.enqueue({
|
|
66
71
|
properties: { service, accountId, sync: globalSync.name },
|
|
67
72
|
execute: async (context) => {
|
|
@@ -71,7 +76,7 @@ async function downloadData(configs, accountIds, regions, services, concurrency,
|
|
|
71
76
|
};
|
|
72
77
|
const globalCredentials = await (0, auth_js_1.getCredentials)(accountId, globalConfig.auth);
|
|
73
78
|
log_js_1.log.debug(logDetails, 'Executing global sync');
|
|
74
|
-
await globalSync.execute(accountId, globalRegion, globalCredentials, storage, globalConfig.endpoint, syncOptions);
|
|
79
|
+
await globalSync.execute(accountId, globalRegion, globalCredentials, storage, globalConfig.endpoint, { ...syncOptions, customConfig });
|
|
75
80
|
log_js_1.log.trace(logDetails, 'Finished global sync');
|
|
76
81
|
}
|
|
77
82
|
});
|
|
@@ -90,6 +95,7 @@ async function downloadData(configs, accountIds, regions, services, concurrency,
|
|
|
90
95
|
log_js_1.log.debug({ service, accountId, region, syncName: sync.name }, 'Skipping regional sync');
|
|
91
96
|
continue;
|
|
92
97
|
}
|
|
98
|
+
const customConfig = (0, config_js_1.customConfigForSync)(service, sync.name, accountId, region, accountConfigs);
|
|
93
99
|
downloadRunner.enqueue({
|
|
94
100
|
properties: { service, accountId, region, sync: sync.name },
|
|
95
101
|
execute: async (context) => {
|
|
@@ -99,7 +105,7 @@ async function downloadData(configs, accountIds, regions, services, concurrency,
|
|
|
99
105
|
};
|
|
100
106
|
log_js_1.log.debug(logDetails, 'Executing regional sync');
|
|
101
107
|
const regionalCredentials = await (0, auth_js_1.getCredentials)(accountId, asrConfig.auth);
|
|
102
|
-
await sync.execute(accountId, region, regionalCredentials, storage, asrConfig.endpoint, syncOptions);
|
|
108
|
+
await sync.execute(accountId, region, regionalCredentials, storage, asrConfig.endpoint, { ...syncOptions, customConfig });
|
|
103
109
|
log_js_1.log.trace(logDetails, 'Finished regional sync');
|
|
104
110
|
}
|
|
105
111
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import { Sync } from '../sync.js';
|
|
2
2
|
export declare const RestApisSync: Sync;
|
|
3
|
+
/**
|
|
4
|
+
* Parse the API Gateway policy string into a JSON object.
|
|
5
|
+
* For some reason API Gateway policies can have \\\ at the start of every string
|
|
6
|
+
* and any forward slash is escaped with a double backslash (\\/)
|
|
7
|
+
*
|
|
8
|
+
* @param apiId the ID of the API Gateway
|
|
9
|
+
* @param policy the policy string to parse
|
|
10
|
+
* @returns the parsed policy object or undefined if the policy is not provided
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseApiGatewayPolicy(apiId: string, policy: string | undefined): Record<string, any> | undefined;
|
|
3
13
|
//# sourceMappingURL=gateways.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateways.d.ts","sourceRoot":"","sources":["../../../../src/syncs/apigateway/gateways.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC,eAAO,MAAM,YAAY,EAAE,IA2B1B,CAAA"}
|
|
1
|
+
{"version":3,"file":"gateways.d.ts","sourceRoot":"","sources":["../../../../src/syncs/apigateway/gateways.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC,eAAO,MAAM,YAAY,EAAE,IA2B1B,CAAA;AAcD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAYjC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RestApisSync = void 0;
|
|
4
|
+
exports.parseApiGatewayPolicy = parseApiGatewayPolicy;
|
|
4
5
|
const client_api_gateway_1 = require("@aws-sdk/client-api-gateway");
|
|
5
|
-
const
|
|
6
|
+
const log_js_1 = require("../../utils/log.js");
|
|
6
7
|
const typedSync_js_1 = require("../typedSync.js");
|
|
7
8
|
exports.RestApisSync = (0, typedSync_js_1.createTypedSyncOperation)('apigateway', 'gateways', (0, typedSync_js_1.createResourceSyncType)({
|
|
8
9
|
client: client_api_gateway_1.APIGatewayClient,
|
|
@@ -12,7 +13,7 @@ exports.RestApisSync = (0, typedSync_js_1.createTypedSyncOperation)('apigateway'
|
|
|
12
13
|
inputKey: 'position',
|
|
13
14
|
outputKey: 'position'
|
|
14
15
|
},
|
|
15
|
-
arn: (api, region, account, partition) => restApiArn(api.id, region,
|
|
16
|
+
arn: (api, region, account, partition) => restApiArn(api.id, region, partition),
|
|
16
17
|
tags: (api) => api.tags,
|
|
17
18
|
resourceTypeParts: (account, region) => ({
|
|
18
19
|
account,
|
|
@@ -25,10 +26,40 @@ exports.RestApisSync = (0, typedSync_js_1.createTypedSyncOperation)('apigateway'
|
|
|
25
26
|
id: api.id,
|
|
26
27
|
name: api.name
|
|
27
28
|
},
|
|
28
|
-
policy: (
|
|
29
|
+
policy: parseApiGatewayPolicy(api.id, api.policy)
|
|
29
30
|
})
|
|
30
31
|
}));
|
|
31
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Get the ARN for an API Gateway REST API.
|
|
34
|
+
*
|
|
35
|
+
* @param apiId the ID of the API Gateway REST API
|
|
36
|
+
* @param region the AWS region of the API Gateway
|
|
37
|
+
* @param partition the AWS partition (aws, aws-cn, aws-us-gov)
|
|
38
|
+
* @returns the ARN of the API Gateway REST API
|
|
39
|
+
*/
|
|
40
|
+
function restApiArn(apiId, region, partition) {
|
|
32
41
|
return `arn:${partition}:apigateway:${region}::/restapis/${apiId}`;
|
|
33
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse the API Gateway policy string into a JSON object.
|
|
45
|
+
* For some reason API Gateway policies can have \\\ at the start of every string
|
|
46
|
+
* and any forward slash is escaped with a double backslash (\\/)
|
|
47
|
+
*
|
|
48
|
+
* @param apiId the ID of the API Gateway
|
|
49
|
+
* @param policy the policy string to parse
|
|
50
|
+
* @returns the parsed policy object or undefined if the policy is not provided
|
|
51
|
+
*/
|
|
52
|
+
function parseApiGatewayPolicy(apiId, policy) {
|
|
53
|
+
if (!policy) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
policy = policy.replace(/\\"/g, '"').replace(/\\\//g, '/');
|
|
57
|
+
try {
|
|
58
|
+
return JSON.parse(policy);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
log_js_1.log.error('Failed to parse API Gateway policy', { apiId }, error);
|
|
62
|
+
throw new Error(`Unable to parse policy for API Gateway ${apiId}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
34
65
|
//# sourceMappingURL=gateways.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateways.js","sourceRoot":"","sources":["../../../../src/syncs/apigateway/gateways.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"gateways.js","sourceRoot":"","sources":["../../../../src/syncs/apigateway/gateways.ts"],"names":[],"mappings":";;;AAuDA,sDAeC;AAtED,oEAAkF;AAClF,+CAAwC;AAExC,kDAAkF;AAErE,QAAA,YAAY,GAAS,IAAA,uCAAwB,EACxD,YAAY,EACZ,UAAU,EACV,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,qCAAgB;IACxB,OAAO,EAAE,uCAAkB;IAC3B,GAAG,EAAE,OAAO;IACZ,gBAAgB,EAAE;QAChB,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,UAAU;KACtB;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAG,EAAE,MAAM,EAAE,SAAS,CAAC;IAChF,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;IACvB,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO;QACP,OAAO,EAAE,YAAY;QACrB,MAAM;QACN,YAAY,EAAE,UAAU;KACzB,CAAC;IACF,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjB,QAAQ,EAAE;YACR,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;SACf;QACD,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,EAAG,EAAE,GAAG,CAAC,MAAM,CAAC;KACnD,CAAC;CACH,CAAC,CACH,CAAA;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,KAAa,EAAE,MAAc,EAAE,SAAiB;IAClE,OAAO,OAAO,SAAS,eAAe,MAAM,eAAe,KAAK,EAAE,CAAA;AACpE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CACnC,KAAa,EACb,MAA0B;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE1D,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAA;QACjE,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAA;IACpE,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GroupDetail, IAMClient, ManagedPolicyDetail, RoleDetail, Tag, User, UserDetail } from '@aws-sdk/client-iam';
|
|
2
|
+
import { ConcurrentWorkerPool } from '@cloud-copilot/job';
|
|
2
3
|
import { Sync } from '../sync.js';
|
|
3
4
|
export declare const AuthorizationDetailsSync: Sync;
|
|
4
5
|
/**
|
|
@@ -19,7 +20,7 @@ interface ManagedPolicyDetailWithExtraData extends ManagedPolicyDetail {
|
|
|
19
20
|
* @param credentials The credentials to use for the API call
|
|
20
21
|
* @returns Returns the results of the Authorization Details call for this account
|
|
21
22
|
*/
|
|
22
|
-
export declare function getAuthorizationDetails(client: IAMClient): Promise<{
|
|
23
|
+
export declare function getAuthorizationDetails(client: IAMClient, concurrentWorkerPool: ConcurrentWorkerPool<any, any>, customConfig?: Record<string, any>): Promise<{
|
|
23
24
|
groups: GroupDetail[];
|
|
24
25
|
roles: RoleDetail[];
|
|
25
26
|
policies: ManagedPolicyDetailWithExtraData[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorizationDetails.d.ts","sourceRoot":"","sources":["../../../../src/syncs/iam/authorizationDetails.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,SAAS,EAGT,mBAAmB,EACnB,UAAU,EACV,GAAG,EACH,IAAI,EACJ,UAAU,EACX,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"authorizationDetails.d.ts","sourceRoot":"","sources":["../../../../src/syncs/iam/authorizationDetails.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,SAAS,EAGT,mBAAmB,EACnB,UAAU,EACV,GAAG,EACH,IAAI,EACJ,UAAU,EACX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,oBAAoB,EAAO,MAAM,oBAAoB,CAAA;AAO9D,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAExD,eAAO,MAAM,wBAAwB,EAAE,IAsJtC,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAepE;AAED,UAAU,gCAAiC,SAAQ,mBAAmB;IACpE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;CACb;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,EACjB,oBAAoB,EAAE,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,EACpD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjC,OAAO,CAAC;IACT,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,QAAQ,EAAE,gCAAgC,EAAE,CAAA;IAC5C,kBAAkB,EAAE,mBAAmB,EAAE,CAAA;IACzC,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAiDD"}
|
|
@@ -5,7 +5,6 @@ exports.getAllUsers = getAllUsers;
|
|
|
5
5
|
exports.getAuthorizationDetails = getAuthorizationDetails;
|
|
6
6
|
const client_iam_1 = require("@aws-sdk/client-iam");
|
|
7
7
|
const ClientPool_js_1 = require("../../aws/ClientPool.js");
|
|
8
|
-
const jobQueue_js_1 = require("../../jobs/jobQueue.js");
|
|
9
8
|
const client_tools_js_1 = require("../../utils/client-tools.js");
|
|
10
9
|
const log_js_1 = require("../../utils/log.js");
|
|
11
10
|
const tags_js_1 = require("../../utils/tags.js");
|
|
@@ -16,7 +15,7 @@ exports.AuthorizationDetailsSync = {
|
|
|
16
15
|
global: true,
|
|
17
16
|
execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
|
|
18
17
|
const client = ClientPool_js_1.AwsClientPool.defaultInstance.client(client_iam_1.IAMClient, credentials, region, endpoint);
|
|
19
|
-
const authDetails = await getAuthorizationDetails(client);
|
|
18
|
+
const authDetails = await getAuthorizationDetails(client, syncOptions.workerPool, syncOptions.customConfig);
|
|
20
19
|
const roles = authDetails.roles || [];
|
|
21
20
|
const roleData = roles.map((role) => {
|
|
22
21
|
return {
|
|
@@ -163,7 +162,7 @@ async function getAllUsers(client) {
|
|
|
163
162
|
* @param credentials The credentials to use for the API call
|
|
164
163
|
* @returns Returns the results of the Authorization Details call for this account
|
|
165
164
|
*/
|
|
166
|
-
async function getAuthorizationDetails(client) {
|
|
165
|
+
async function getAuthorizationDetails(client, concurrentWorkerPool, customConfig) {
|
|
167
166
|
let isTruncated = false;
|
|
168
167
|
let getDetailsCommand;
|
|
169
168
|
let response;
|
|
@@ -190,12 +189,15 @@ async function getAuthorizationDetails(client) {
|
|
|
190
189
|
else {
|
|
191
190
|
policyDetails.push(policyDetail);
|
|
192
191
|
}
|
|
193
|
-
// policyDetails.push(...(response.Policies?.map(parsePolicyDocs) || []))
|
|
194
192
|
}
|
|
195
193
|
isTruncated = !!response.IsTruncated;
|
|
196
194
|
marker = response.Marker;
|
|
197
195
|
} while (isTruncated);
|
|
198
|
-
|
|
196
|
+
let policiesWithTags = policyDetails;
|
|
197
|
+
if (customConfig?.includePolicyTags) {
|
|
198
|
+
log_js_1.log.info('Including policy tags in authorization details sync');
|
|
199
|
+
policiesWithTags = await getTagsForManagedPolicies(client, policyDetails, concurrentWorkerPool);
|
|
200
|
+
}
|
|
199
201
|
return {
|
|
200
202
|
groups: groupDetails,
|
|
201
203
|
roles: roleDetails,
|
|
@@ -211,7 +213,7 @@ async function getAuthorizationDetails(client) {
|
|
|
211
213
|
* @param policies the policies to get the tags for
|
|
212
214
|
* @returns the policies with the tags added
|
|
213
215
|
*/
|
|
214
|
-
async function getTagsForManagedPolicies(client, policies) {
|
|
216
|
+
async function getTagsForManagedPolicies(client, policies, concurrentWorkerPool) {
|
|
215
217
|
const policiesWithTags = [];
|
|
216
218
|
const execute = async (context) => {
|
|
217
219
|
const { policy } = context.properties;
|
|
@@ -231,7 +233,7 @@ async function getTagsForManagedPolicies(client, policies) {
|
|
|
231
233
|
},
|
|
232
234
|
execute
|
|
233
235
|
}));
|
|
234
|
-
const jobResults = await (
|
|
236
|
+
const jobResults = await Promise.all(concurrentWorkerPool.enqueueAll(jobs));
|
|
235
237
|
for (const jobResult of jobResults) {
|
|
236
238
|
if (jobResult.status === 'fulfilled') {
|
|
237
239
|
policiesWithTags.push(jobResult.value);
|