You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
1.1 KiB
23 lines
1.1 KiB
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.loadAWSCredentials = loadAWSCredentials; |
|
const aws_temporary_credentials_1 = require("../../cmap/auth/aws_temporary_credentials"); |
|
/** |
|
* @internal |
|
*/ |
|
async function loadAWSCredentials(kmsProviders) { |
|
const credentialProvider = new aws_temporary_credentials_1.AWSSDKCredentialProvider(); |
|
// We shouldn't ever receive a response from the AWS SDK that doesn't have a `SecretAccessKey` |
|
// or `AccessKeyId`. However, TS says these fields are optional. We provide empty strings |
|
// and let libmongocrypt error if we're unable to fetch the required keys. |
|
const { SecretAccessKey = '', AccessKeyId = '', Token } = await credentialProvider.getCredentials(); |
|
const aws = { |
|
secretAccessKey: SecretAccessKey, |
|
accessKeyId: AccessKeyId |
|
}; |
|
// the AWS session token is only required for temporary credentials so only attach it to the |
|
// result if it's present in the response from the aws sdk |
|
Token != null && (aws.sessionToken = Token); |
|
return { ...kmsProviders, aws }; |
|
} |
|
//# sourceMappingURL=aws.js.map
|