2017-09-21 81 views

回答

0

创建一个指派该角色的EC2实例。无论您在该实例中运行任何应用程序,都可以访问AWS资源。

这样你就不需要在应用程序中编写任何安全代码。

同样在您的代码中,当您将角色分配给EC2实例时,您不需要提供任何凭据。

+0

它只是自动工作?我们不需要做任何配置文件更改? – c0t0d0s0

+0

代码或文件中不需要配置。分配给EC2实例的角色将自动处理。如果您发现有任何错误在此共享,我们可以查看它。 – Kannaiyan

0

在AWS中,有两种方法可以使用AWS IAM为代码访问AWS资源(如S3和SQS)提供权限。

  • 如果你的代码在亚马逊的计算服务,如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' });

+0

在代码中暴露AccessKey和SecretKey是非常糟糕的做法,不推荐。 – Kannaiyan

+0

@Kannaiyan问题在于配置JBoss服务器来访问从服务器端发生的IAM角色。没有提及使用访问密钥和秘密的客户端代码。显示的代码示例适用于服务器的NodeJS。希望这可以澄清你的评论。 – Ashan

+0

@Kannaiyan你能解释一下访问密钥和密钥的目的吗?如果它不能像上面的代码片段中提到的那样在服务器端使用,我相信没有访问密钥和密钥的用例。但是,如果我们看着客户端,故事是不同的。但正如你所看到的,这是一个服务器端。 –