AWS IAM角色是用于AWS内部的身份验证和授权的,因此不能直接用于在AWS之外运行的应用。但可以通过AWS Security Token Service (STS)生成临时凭证并将其用于应用程序中。
以下是使用AWS SDK for JavaScript的示例代码:
const AWS = require('aws-sdk');
const sts = new AWS.STS();
sts.assumeRole({
RoleArn: 'arn:aws:iam::123456789012:role/example-role',
RoleSessionName: 'example-session',
}, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
const credentials = new AWS.Credentials({
accessKeyId: data.Credentials.AccessKeyId,
secretAccessKey: data.Credentials.SecretAccessKey,
sessionToken: data.Credentials.SessionToken,
});
// 现在可以使用这些凭证来访问受IAM角色保护的资源
const s3 = new AWS.S3({ credentials });
s3.listBuckets((err, data) => {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
}
});
此代码使用AssumeRole API从IAM角色中生成临时凭证,并将这些凭证传递给S3客户端以访问这些资源。请注意,在使用AWS SDK之前,您需要正确设置AWS访问凭证。
下一篇:AWSIAM角色未被假定-EKS