从 EC2 访问 SQS - 实例配置文件与角色

Posted

技术标签:

【中文标题】从 EC2 访问 SQS - 实例配置文件与角色【英文标题】:Access SQS from EC2 - Instance Profile vs Role 【发布时间】:2018-10-20 22:32:57 【问题描述】:

我正在尝试从运行在 EC2 实例上的 Spring Boot 应用程序访问 SQS。消费者和 SQS 队列都将位于同一个 AWS 账户上。有人告诉我应该向 EC2 实例添加一个实例配置文件以访问 SQS。在这种情况下,角色和实例配置文件有什么区别?有适当政策的角色还不够吗?

【问题讨论】:

【参考方案1】:

实例配置文件是单个 IAM 角色的容器。

为了清楚起见,典型的约定是创建同名的 IAM 角色和实例配置文件。

不能直接为 EC2 实例分配角色,但可以为其分配包含角色的实例配置文件。

使用实例配置文件的好处是您无需管理AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY。您的应用程序不再需要担心如何安全地存储和访问这些信息。

Using Instance Profiles

IAM Roles for Amazon EC2

【讨论】:

您能否详细说明实例配置文件是单个 IAM 角色的容器是什么意思? @gauravparashar:理解这句话的关键在于不能直接为实例分配角色。因此,我们创建了一个包含角色的实例配置文件 @gauravparashar 阅读以进一步了解:quora.com/…【参考方案2】:

我们不能将角色直接附加到 EC2 实例,这就是为什么我们必须使用充当角色容器的实例配置文件的原因。 一个实例配置文件只能包含一个 IAM 角色,但一个角色可以包含在多个实例配置文件中。

EC2 将获得属于实例配置文件一部分的角色的权限。

不能增加每个实例配置文件一个角色的限制。您可以删除现有角色,然后将其他角色添加到实例配置文件。

如果您使用 AWS 管理控制台为 Amazon EC2 创建角色,该控制台会自动创建一个实例配置文件,并为其赋予与该角色相同的名称。

虽然使用 cli 创建角色和实例配置文件是单独的操作。因为角色和实例配置文件可以有不同的名称。

更多信息可在此处获得 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html

【讨论】:

我认为这是一个比接受的更好的答案。

以上是关于从 EC2 访问 SQS - 实例配置文件与角色的主要内容,如果未能解决你的问题,请参考以下文章

来自 EC2 实例的 S3 完全访问配置 [重复]

消息轮询实例 ID

Amazon 弹性文件系统策略 (EFS) - 允许通过 IAM 角色访问 EC2 实例不起作用

AWS 实例配置文件不适用于 Spring Cloud AWS

python boto3将IAM角色附加/替换为ec2

具有EC2实例角色的规范用户标识