UNPKG

@goldstack/infra-aws

Version:

Utilities to work with AWS infrastructure via the cli.

37 lines 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.injectCredentials = injectCredentials; exports.hasInjectedCredentials = hasInjectedCredentials; exports.retrieveInjectedCredentials = retrieveInjectedCredentials; exports.getAWSCredentials = getAWSCredentials; const client_sts_1 = require("@aws-sdk/client-sts"); function injectCredentials(provider, credentials) { provider._injectedCredentials = credentials; } function hasInjectedCredentials(provider) { return provider._injectedCredentials !== undefined; } function retrieveInjectedCredentials(provider) { return provider._injectedCredentials; } async function getAWSCredentials(provider) { if (hasInjectedCredentials(provider)) { return retrieveInjectedCredentials(provider); } const client = new client_sts_1.STSClient({ credentials: provider }); const input = { DurationSeconds: 900, }; const command = new client_sts_1.GetSessionTokenCommand(input); const response = await client.send(command); if (!response.Credentials) { throw new Error('Cannot obtain AWS credentials.'); } return { accessKeyId: response.Credentials.AccessKeyId || '', secretAccessKey: response.Credentials.SecretAccessKey || '', sessionToken: response.Credentials.SessionToken, expiration: response.Credentials.Expiration, }; } //# sourceMappingURL=awsAuthUtils.js.map