📝
AWSシリーズ2:AWS Systems Managerのオートメーションを使う
はじめに
本記事は、以下の記事の続きです。
本記事では、前回に続き、Systems Managerのオートメーションランブックを実行できるようにします。
オートメーションランブックを使うと、Systems Managerのマネージドインスタンスにセキュリティーパッチを適用したり、Windows Server AMIにWindows Updateを全自動で終わらせるなど、様々なタスクを実行することができます。
記事のカバー範囲
- AWSが用意した既成のランブックだけでなく、ユーザーがカスタマイズしたランブックも実行できるようにします。
- ランブックのカスタマイズ方法についてはカバー範囲外です。
オートメーションのロールを理解する
オートメーションの実行時に利用するロールとポリシーの関係です。
オートメーションを利用できるようにする
Automationというサービスに渡すサービスロールを作成します
私は「AutomationServiceRole」というストレートな名前のロールを作成しました。
下記の要件を満たす必要があります。
- AWS管理ポリシー「AmazonSSMAutomationRole」が付与されていること。
- AWS管理ポリシー「AmazonSSMManagedInstanceCore」を含むロールに対するPassRoleの許可が与えられていること。
AWS管理ポリシー「AmazonSSMManagedInstanceCore」を含むロールは、前回の記事で「Role_SSMManagedCore」という名前で作成済みです。
以下は「Role_SSMManagedCore」ロールをPassRoleできるようにするインラインポリシー「PassRole_SSMManagedCore」の定義です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::744822404890:role/Role_SSMManagedCore"
}
]
}
IAMユーザーにオートメーションを実行できる権限を付与します
私のIAMユーザー「kiyoka」に「AutomationServiceRole」をPassRoleできる権限を追加しました。
追加したインラインポリシーは以下のものです。
JSONも引用します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::744822404890:role/AutomationServiceRole"
}
]
}
オートメーションを実行してみる
準備が整いましたので、簡単なオートメーションドキュメント「AWS-StopEC2Instance」を実行してみます。
既に、稼働中のインスタンスがある前提です。
- IAMユーザー「kiyoka」でAWSマネジメントコンソールにサインインします。
- Systems Managerの「自動化」をたどります。(メニューだけ翻訳されて「自動化」というキーワードになっています。奇妙ですが我慢しましょう)
- 「オートメーションの実行」ボタンを押します。
- オートメーションドキュメントから「AWS-StopEC2Instance」を選択します。
- 次へを押します。
- 稼働中のインスタンスを選択し、オートメーションを実行するためのロールを選択します。上記で作成した「AutomationSeriviceRole」を選択し、「実行」を押します。
- オートメーションが実行され、各ステップの状態が表示されます。
- 実行完了です。
最後に
ここまでの設定が終わっていれば、AWS提供のランブックドキュメントをコピーしてカスタムランブックを実行できる権限もあります。
カスタムランブックを作って、手作業を減らしてみてください。
Discussion