oak-external-sdk/es/service/ali/sts.js

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
},
};
}