Amazon ec2 如何使用iam角色启动ec2实例?

Amazon ec2 如何使用iam角色启动ec2实例?,amazon-ec2,amazon-web-services,Amazon Ec2,Amazon Web Services,我可以在管理控制台中使用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_rais

我可以在管理控制台中使用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)

您在Ruby脚本中使用的凭据没有使用“测试”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":"*"
    }]
参考: