30 lines
1.3 KiB
JavaScript
30 lines
1.3 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.fromWebToken = void 0;
|
|
const fromWebToken = (init) => async (awsIdentityProperties) => {
|
|
init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");
|
|
const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
|
|
let { roleAssumerWithWebIdentity } = init;
|
|
if (!roleAssumerWithWebIdentity) {
|
|
const { getDefaultRoleAssumerWithWebIdentity } = await import("@aws-sdk/nested-clients/sts");
|
|
roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({
|
|
...init.clientConfig,
|
|
credentialProviderLogger: init.logger,
|
|
parentClientConfig: {
|
|
...awsIdentityProperties?.callerClientConfig,
|
|
...init.parentClientConfig,
|
|
},
|
|
}, init.clientPlugins);
|
|
}
|
|
return roleAssumerWithWebIdentity({
|
|
RoleArn: roleArn,
|
|
RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,
|
|
WebIdentityToken: webIdentityToken,
|
|
ProviderId: providerId,
|
|
PolicyArns: policyArns,
|
|
Policy: policy,
|
|
DurationSeconds: durationSeconds,
|
|
});
|
|
};
|
|
exports.fromWebToken = fromWebToken;
|