@goldstack/infra-aws
Version:
Utilities to work with AWS infrastructure via the cli.
37 lines • 1.44 kB
JavaScript
;
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