我正在尝试配置jboss以使用AWS IAM Roles来访问S3和SQS。我见过的所有文档都使用静态访问和密钥,而不是角色允许的动态密钥。
有没有关于这样做的文件?
答案 0 :(得分:0)
创建分配该角色的EC2实例。无论您运行什么,该实例中的任何应用程序都将能够访问AWS资源。
这样您就不需要在应用程序中编写任何安全代码。
同样在您的代码中,当您将角色分配给EC2实例时,您不需要提供任何凭据。
答案 1 :(得分:0)
在AWS中,有两种方法可以使用AWS IAM向您的代码提供访问AWS资源(如S3和SQS)的权限。
如果您的代码在Amazon Compute Services(如EC2,Lambda)中运行,建议使用所需的策略创建IAM角色以访问S3& SQS还允许计算服务(EC2,Lambda)承担该角色(使用信任关系)。将此角色附加到EC2或Lambda后,您可以直接使用AWS SDK访问S3和SQS,而无需任何凭据或访问令牌来配置SDK。
有关详细信息,请参阅Using an IAM Role to Grant Permissions to Applications Running on Amazon EC2 Instances。
如果您的代码在内部或亚马逊基础架构外部运行,则需要创建具有所需策略的IAM用户,并创建访问密钥(访问密钥ID和密钥)和initialize SDK允许访问S3或SQS,如下所示。
var AWS = require('aws-sdk');
AWS.config.credentials = new AWS.Credentials({
accessKeyId: 'akid', secretAccessKey: 'secret'
});