📌 まずはCloudFormationを理解しましょう
AWS CloudFormationは、AWSリソースを自動的に作成・管理できるサービスです。YAMLまたはJSONのテンプレートを使用して、EC2・RDS・S3などのAWSリソースを一括でデプロイすることが可能です。
🔍 CloudFormationのサービスロールとは?
CloudFormationは、AWSリソースを作成・更新するためにAWSの権限が必要です。しかし、CloudFormation自体にはデフォルトで権限がないため、IAMロールを使用して必要な権限を付与する仕組みが「CloudFormationのサービスロール」です。
- サービスロールを指定しない場合:CloudFormationは実行ユーザーのIAM権限を使用します。
- サービスロールを指定した場合:CloudFormationは指定したIAMロールの権限でリソースを操作します。
📌 なぜサービスロールが必要なのか?
✅ 1. セキュリティの向上
- CloudFormationがアクセスできるAWSリソースを厳密に制御できます。
- 不要な権限の付与を防止し、誤った操作を抑制できます。
✅ 2. 権限の少ないユーザーでもCloudFormationを実行可能
- 例えば、開発者がEC2を作成する権限を持っていなくても、
CloudFormationにEC2作成権限のあるサービスロールを付与すればデプロイが可能になります。
✅ 3. 組織・チームのセキュリティポリシーに適合
- 企業やチームでは、すべてのユーザーが直接AWSリソースを操作することを禁止し、
CloudFormationを通じてリソースを管理するケースがあります。
🛠️ CloudFormationでサービスロールを設定する方法
✅ 方法1:AWSマネジメントコンソールで設定(推奨)
-
IAMロールを作成(CloudFormationに必要な権限を付与)
- AWS IAMコンソールで新しいロールを作成します。
- 信頼されたエンティティとしてCloudFormationを選択します。
- 適切なポリシー(例:EC2やS3の作成権限)を付与します。
- 作成後、**ロールのARN(例:
arn:aws:iam::123456789012:role/MyCloudFormationRole
)**をメモします。
-
CloudFormationのスタック作成時にロールを指定
- CloudFormationの「スタック作成」画面で**「IAMロールを指定」**を選択します。
- 作成したIAMロールのARNを入力します。
- 以降、CloudFormationはそのロールの権限でAWSリソースを操作します。
✅ 方法2:AWS CLIで設定
CLIを使用してCloudFormationのサービスロールを指定することも可能です。
aws cloudformation create-stack \
--stack-name MyStack \
--template-body file://my-template.yaml \
--role-arn arn:aws:iam::123456789012:role/MyCloudFormationRole
このコマンドを実行すると、CloudFormationはMyCloudFormationRole
の権限でスタックを作成します。
📌 まとめ
✅ CloudFormationはAWSリソースを自動管理するサービスです。
✅ サービスロールを使用することで、CloudFormationの権限を明確に管理できます。
✅ 組織やチーム単位でのセキュリティ管理が容易になります。
✅ IAMロールを作成し、CloudFormationの実行時に指定することで簡単に設定可能です。
CloudFormationを活用する際は、セキュリティと利便性を両立するためにサービスロールの利用を検討しましょう!🚀