阿里云OpenAPI 使用credentials这个sdk获取权限的问题?
使用credentials这个sdk的时候,我们需要利用在账号A的ecs的ram role去assume在另一个账号B的ram role来访问账号B的服务,这里整个过程是什么样的?我们代码是nodejs,是需要先用ecs_ram_role这个type获取到临时的accesskeyid跟key secret,然后再用ram_role_arn这个type去获取权限吗?
先用ecs_ram_role这个type获取到临时的accesskeyid跟key secret和security token,然后再用ram_role_arn这个type去获取权限,下面是示例的sample code
async function main() {
// 使用RamRoleArn初始化Credentials Client。
const credentialsConfig = new Config({
// 凭证类型。
type: 'ecs_ram_role',
// 选填,该ECS角色的角色名称,不填会自动获取,但是建议加上以减少请求次数
roleName: 'roleName',
})
let credentialClient = new Credential(credentialsConfig);
const config = new credentials_1.Config({
// 凭证类型。
type: 'ram_role_arn',
accessKeyId: credentialClient.getAccessKeyId(),
accessKeySecret: credentialClient.getAccessKeySecret(),
securityToken: credentialClient.getSecurityToken(),
// 要扮演的RAM角色ARN,示例值:acs:ram::123456789012:role/adminrole
roleArn: 'acs:ram::123456789012:role/adminrole',
roleSessionExpiration: 3600,
});
let client = new credentials_1.default(config);
console.log(await client.getAccessKeyId());
}
```
--此回答整理自钉群“OpenAPI 开发者门户 - 值班服务群2群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。