6

管理コンソールでiam-roleを使用してec2-instanceを起動できます。しかし、aws-ruby-sdkからiam-roleを使用してec2-instanceを起動する方法がわかりません。

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)
4

1 に答える 1

9

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":"*"
    }]

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

于 2012-12-06T13:49:40.430 に答える