从 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_ID
和AWS_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 - 实例配置文件与角色的主要内容,如果未能解决你的问题,请参考以下文章
Amazon 弹性文件系统策略 (EFS) - 允许通过 IAM 角色访问 EC2 实例不起作用