

# CloudFormation サービスロール
<a name="using-iam-servicerole"></a>

サービスロールは、ユーザーに代わってスタック内のリソースを呼び出すことを CloudFormation に許可する AWS Identity and Access Management (IAM) ロールです。スタックリソースを作成、更新、または削除することを CloudFormation に許可する IAM ロールを指定できます。CloudFormation はデフォルトで、スタックオペレーションのためのユーザー認証情報から CloudFormation が生成する一時的なセッションを使用します。サービスロールを指定すると、CloudFormation はロールの認証情報を使用します。

サービスロールを使用して、CloudFormation が実行できるアクションを明示的に指定します。これらは、必ずしもユーザー自身または他のユーザーが実行できるアクションと同じであるとは限りません。例えば、管理者権限がある場合でも、CloudFormation アクセスを制限できるのは Amazon EC2 アクションへのアクセスのみです。

IAM サービスで、サービスロールと権限ポリシーを作成します。サービスロールの作成について詳しくは、「*IAM ユーザーガイド*」の「[AWS のサービスに権限を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。ロールを引き受けることのできるサービスとして CloudFormation (`cloudformation.amazonaws.com`) を指定します。

サービスロールをスタックと関連付けるには、スタックを作成するときにロールを指定します。詳細については、「[スタックオプションを設定する](cfn-console-create-stack.md#configure-stack-options)」を参照してください。サービスロールは、コンソールでスタックを更新するとき、または API を使用してスタックを [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeleteStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeleteStack.html) するときにも変更できます。サービスロールを指定する前に、サービスロールを割り当てるアクセス権限 (`iam:PassRole`) があるかどうかを確認します。`iam:PassRole` アクセス権限は、どのロールを使用できるかを指定します。詳細については、「*IAM ユーザーガイド*」の「[AWS サービスにロールを渡すアクセス許可をユーザーに付与する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)」を参照してください。

**重要**  
サービスロールを指定すると、CloudFormation はスタックで実行されるすべてのオペレーションに対して、そのロールを常に使用します。スタックの作成後に、スタックにアタッチされたサービスロールを削除することはできません。このスタックで操作を実行する権限を持つ他のユーザーは、`iam:PassRole` 権限の有無にかかわらず、このロールを使用できます。ユーザーが持つべきではないアクセス権限がロールに含まれる場合、ユーザーのアクセス権限を非意図的にエスカレーションできてしまいます。ロールが最小特権を付与することを確認します。詳細については、「IAM ユーザーガイド」の「[最小特権アクセス許可を適用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)」を参照してください。