32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
import STSClient, { AssumeRoleRequest } from '@alicloud/sts20150401';
|
|
export async function stsAssumeRole(options) {
|
|
const client = new STSClient({
|
|
endpoint: options.endpoint,
|
|
accessKeyId: options.accessKeyId,
|
|
accessKeySecret: options.accessKeySecret,
|
|
toMap: () => {
|
|
return {};
|
|
}
|
|
});
|
|
const assumeRoleRequest = new AssumeRoleRequest({
|
|
roleArn: options.roleArn,
|
|
roleSessionName: options.roleSessionName,
|
|
policy: options.policy,
|
|
durationSeconds: options.durationSeconds,
|
|
});
|
|
const res = await client.assumeRole(assumeRoleRequest);
|
|
return {
|
|
"RequestId": res.body?.requestId,
|
|
"AssumedRoleUser": {
|
|
"AssumedRoleId": res.body?.assumedRoleUser?.assumedRoleId,
|
|
"Arn": res.body?.assumedRoleUser?.arn
|
|
},
|
|
"Credentials": {
|
|
"SecurityToken": res.body?.credentials?.securityToken,
|
|
"Expiration": res.body?.credentials?.expiration,
|
|
"AccessKeySecret": res.body?.credentials?.accessKeySecret,
|
|
"AccessKeyId": res.body?.credentials?.accessKeyId
|
|
},
|
|
};
|
|
}
|