UNPKG

@cloud-copilot/iam-collect

Version:

Collect IAM information from AWS Accounts

67 lines 2.82 kB
import { GetOpenIDConnectProviderCommand, GetSAMLProviderCommand, IAMClient, ListOpenIDConnectProvidersCommand, ListSAMLProvidersCommand } from '@aws-sdk/client-iam'; 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