Systems Manager Automation のカスタムランブックと IAM ロールを作り、EC2 の「タグ付け→スナップショット取得→停止」を一括自動実行します。
運用の現場では、「タグを付ける」「バックアップ(イメージ/スナップショット)を取る」「インスタンスを止める」といった定型作業を、手順書どおり・ミスなく・繰り返し実行したい場面が頻繁にあります。AWS Systems Manager Automation は、こうした一連の運用タスクを ランブック(Automation ドキュメント) として定義し、ワンクリックまたは自動トリガーで実行できるサービスです。
このラボでは、aws:executeAwsApi と aws:changeInstanceState を組み合わせた カスタムランブック を自作し、対象 EC2 インスタンスに対して次の 3 つを 1 回の実行で連続適用します。
1. タグ付け(CreateTags)
2. AMI(マシンイメージ)取得(CreateImage)
3. インスタンス停止(stopped 状態へ変更)
> AMI とスナップショットの関係: AMI(Amazon Machine Image)を作成すると、その裏側で対象インスタンスの EBS ボリュームの スナップショット も自動的に作成されます。このラボでは、Automation 用ロールに付与するマネージドポリシー AmazonSSMAutomationRole に ec2:CreateImage が含まれており、追加のインラインポリシーなしでバックアップを取得できます。一方、ec2:CreateSnapshots(複数形 API)は同ポリシーに含まれないため、スナップショットを直接取得する設計にするとロールに権限を足す必要があります。本ラボは「マネージドポリシー 1 つで完結する最小権限」を体験するため、CreateImage を採用します。
あわせて、Automation が実行時に引き受ける IAM サービスロール を作成し、サービスがどのように権限を委譲して操作を代行するのかを体験します。さらに、ランブックを実行するプリンシパル(cloud_user)がロールを渡すために必要な iam:PassRole の考え方にも触れ、最小権限のロール設計を学びます。
aws:executeAwsApi と aws:changeInstanceState アクションで AWS API 呼び出しをコード化するssm.amazonaws.com)を作成し、AutomationAssumeRole として渡すAmazonSSMAutomationRole がカバーする権限と、カバーしない権限(例: ec2:CreateSnapshots)を見極め、ランブックの設計を権限に合わせる(最小権限)考え方を理解するcloud_user)に必要な iam:PassRole 権限の役割を理解するcloud_user には、lab-ssm-automation-role を Automation に渡すための iam:PassRole 権限がサンドボックス側で付与済みであること(本ラボでは追加設定不要)t3.micro、EBS は最小構成を使用(サンドボックスのガードレール内)