EC2でIAMロールを使ってみる

今日はEC2インスタンスにIAMロールを設定したときのメモ。

IAMロールを作成する。


今回最初に作成したIAMロールは以下の通りです。
AWS Service Roles」は「Amazon EC2」、「Select Policy Template」で、「Administratior Access」を選択しました。
※わざと権限を強くしています。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}

動作を見る


次にEC2インスタンスを起動します。インスタンスの初回起動時に先ほど作成したIAMロールを適用しておきます。

既存のインスタンスにIAMロールを適用することは出来ないようで、新規にインスタンスを作成するときにIAMロールを適用します。


そして、awscliを使ってIAMロールの情報を取得してみます。

$ aws iam get-role --role-name=awscli
{
    "Role": {
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Principal": {
                        "Service": "ec2.amazonaws.com"
                    },
                    "Effect": "Allow",
                    "Sid": ""
                }
            ]
        },
        "RoleId": "AROAIRHMLVIHPSKK6PT2M",
        "CreateDate": "2014-06-17T15:40:09Z",
        "RoleName": "awscli",
        "Path": "/",
        "Arn": "arn:aws:iam::375349571281:role/awscli"
    }
}


ロールの情報が取得できたので、無事適用できた模様。

ロールの権限を変えてみる。


次にロールの権限を「Power Users Access」に変更。


{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "NotAction": "iam:*",
      "Resource": "*"
    }
  ]
}


先ほどと同じようにawscliでIAMロールの情報を取得してみます。

$ aws iam get-role --role-name=awscli

A client error (AccessDenied) occurred when calling the GetRole operation: User: arn:aws:sts::375349571281:assumed-role/awscli/i-7eeb3c55 is not authorized to perform: iam:GetRole on resource: role awscli


今度は拒否されました。


使いこなせば結構楽しいことが楽に出来そうです。


今日はこんなところで。