

# IAM ロールをインスタンスにアタッチするためのアクセス権限を付与する
<a name="permission-to-pass-iam-roles"></a>

AWS アカウントの ID (IAM ユーザーなど) にはIAM ロールを使用して Amazon EC2 インスタンスを起動する、IAM ロールをインスタンスにアタッチする、インスタンスの IAM ロールを置き換える、またはインスタンスから IAM ロールをデタッチするための特定のアクセス権限が必要です。必要に応じて、次の API アクションを使用するためのアクセス権限を付与する必要があります。
+ `iam:PassRole`
+ `ec2:AssociateIamInstanceProfile`
+ `ec2:DisassociateIamInstanceProfile`
+ `ec2:ReplaceIamInstanceProfileAssociation`

**注記**  
`iam:PassRole` のリソースを `*` として指定すると、任意の IAM ロールをインスタンスに渡すためのアクセス権が付与されます。[最小特権](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)のベストプラクティスに従うには以下のポリシー例に示すように、`iam:PassRole` を使用して特定の IAM ロールの ARN を指定します。

**プログラムによるアクセス用のポリシー例**  
次の IAM ポリシーでは AWS CLI または Amazon EC2 API を使用して、IAM ロールを使用してインスタンスを起動したり、IAM ロールをインスタンスにアタッチしたり、インスタンスの IAM ロールを置き換えたりするためのアクセス権限を付与します。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances",
         "ec2:AssociateIamInstanceProfile",
         "ec2:DisassociateIamInstanceProfile",
         "ec2:ReplaceIamInstanceProfileAssociation"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::123456789012:role/DevTeam*"
    }
  ]
}
```

------

**コンソールアクセスの追加要件**  
Amazon EC2 コンソールを使用して同じタスクを完了するためのアクセス権限を付与するには`iam:ListInstanceProfiles` API アクションも含める必要があります。