如何使用IAM角色启动EC2实例?

6

我可以在管理控制台中使用IAM角色启动EC2实例。但是,我不知道如何从AWS-Ruby-SDK启动带有IAM角色的EC2实例。

iam-role "    test"'s Policy is here
    "Effect": "Allow",
    "Action": "*",
    "Resource": "*"

这里是结果:
/var/lib/gems/1.8/gems/aws-sdk-1.7.1/lib/aws/core/client.rb:318:in `return_or_raise': 
You are not authorized to perform iam:PassRole with arn:aws:iam::xxxxxxxxxxx:role/test 
(AWS::EC2::Errors::UnauthorizedOperation)
1个回答

9
您正在使用的 Ruby 脚本凭据没有权限使用“test”IAM 角色启动实例。您需要修改此用户的策略并授予它 IAM:PassRole 权限,例如:
{
  "Statement": [{
      "Effect":"Allow",
      "Action":"ec2:RunInstances",
      "Resource":"*"
    },
    {
      "Effect":"Allow",
      "Action":"iam:PassRole",
      "Resource":"arn:aws:iam::xxxxxxxxxxx:role/test"
    }]
}

这是一项安全功能 - 可能会错误配置 IAM 以允许特权升级,因此 AWS 使用“默认安全”策略。

您还可以使用此策略允许用户使用任何 IAM 角色启动实例 - 但在执行此操作之前,应考虑安全影响:

    {
      "Effect":"Allow",
      "Action":"iam:PassRole",
      "Resource":"*"
    }]

参考文献: http://docs.amazonwebservices.com/IAM/latest/UserGuide/role-usecase-ec2app.html

这篇文章介绍了如何使用身份和访问管理服务(IAM)来控制Amazon Elastic Compute Cloud (EC2) 实例上应用程序的访问权限。使用IAM角色,您可以在不暴露安全凭证的情况下赋予应用程序对AWS服务的安全访问权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接