IAM Roles for Amazon EC2
最后更新于
最后更新于
Amazon EC2上部署应用时,不要在应用中使用users来调用其他的AWS服务,这种使用方法会将AWS的长期访问凭据写在应用程序中,非常不安全。推荐的做法是创建role来给予EC2上应用程序访问其他服务的权限。
假设EC2上部署的应用Meitu是获取照片并进行美化的,需要将照片保存到S3,并且需要调用Lambda进行美化处理。则
step 1: 创建一个role命名为EC2MeituAPP
,并且绑定的policy中允许上传文件到某个S3,并且允许管理Lambda。
step 2: 创建好role以后,开发者创建EC2实例时将这个role分配给刚才创建的实例。注意:开发者的权限中要能够使用iam:PassRole, 并且指定刚才创建的role允许被传递。选中需要修改的EC2,Actions>Security>Modify IAM role,界面中选择IAM role。
step 3: 应用程序可以直接从 Amazon EC2 实例的实例元数据获取临时凭证。凭据和相关值可从元数据的 iam/security- credentials/role-name 类别(在本例中为 iam/security-credentials/EC2MeituAPP
)获得。如果应用程序从实例元数据中获取凭据,则可以缓存凭据。建议使用IMDSv2,否则未授权访问者也可以获取安全凭据。Actions>Instance Settings>Modify instance metadata options中勾选IMDSv2 Required。
要将 IAM 角色附加到现有的 EC2 实例,请首先导航到 Amazon EC2 控制台。找到您想要修改的实例,并选择它。点击“操作”按钮,然后导航到“安全性”>“修改 IAM 角色”。在结果界面中,您将看到可用于附加的 IAM 角色列表。选择最适合您应用程序需求的 IAM 角色,例如对于需要访问 S3 和 Lambda 服务的 Meitu 应用程序,则选择“EC2MeituAPP”。选择适当的 IAM 角色后,点击“保存”以应用更改。此操作使 EC2 实例具备与附加角色授权下的其他 AWS 服务交互所需的权限,无需在实例内存储 AWS 凭证。
Easily Replace or Attach an IAM Role to an Existing EC2 Instance by Using the EC2 Console