UNPKG

@cloud-copilot/iam-collect

Version:

Collect IAM information from AWS Accounts

68 lines 2.86 kB
import { GetOpenIDConnectProviderCommand, GetSAMLProviderCommand, IAMClient, ListOpenIDConnectProvidersCommand, ListSAMLProvidersCommand } from '@aws-sdk/client-iam'; import {} from '../sync.js'; import { createResourceSyncType, createTypedSyncOperation } from '../typedSync.js'; export const IdentityProviderSyncs = [ createTypedSyncOperation('iam', 'oidcProviders', createResourceSyncType({ globalResourceType: true, client: IAMClient, command: ListOpenIDConnectProvidersCommand, key: 'OpenIDConnectProviderList', paginationConfig: '::no-pagination::', arn: (provider) => provider.Arn, resourceTypeParts: (account, region) => ({ service: 'iam', account, resourceType: 'oidc-provider' }), extraFields: { details: async (client, provider) => { const command = new GetOpenIDConnectProviderCommand({ OpenIDConnectProviderArn: provider.Arn }); const result = await client.send(command); return result; } }, tags: (provider) => provider.extraFields.details?.Tags, results: (provider) => ({ metadata: { audiences: provider.extraFields.details?.ClientIDList, thumbprints: provider.extraFields.details?.ThumbprintList, url: provider.extraFields.details?.Url } }) })), createTypedSyncOperation('iam', 'samlProviders', createResourceSyncType({ globalResourceType: true, client: IAMClient, command: ListSAMLProvidersCommand, key: 'SAMLProviderList', paginationConfig: '::no-pagination::', arn: (provider) => provider.Arn, resourceTypeParts: (account, region) => ({ service: 'iam', account, resourceType: 'saml-provider' }), extraFields: { details: async (client, provider) => { const command = new GetSAMLProviderCommand({ SAMLProviderArn: provider.Arn }); const result = await client.send(command); return result; } }, tags: (provider) => provider.extraFields.details?.Tags, results: (provider) => ({ metadata: { assertEncryption: provider.extraFields.details?.AssertionEncryptionMode, 'metadata-document': provider.extraFields.details?.SAMLMetadataDocument, privateKeys: provider.extraFields.details?.PrivateKeyList, uuid: provider.extraFields.details?.SAMLProviderUUID, validUntil: provider.extraFields.details?.ValidUntil } }) })) ]; //# sourceMappingURL=identityProviders.js.map