📝

AWSシリーズ2:AWS Systems Managerのオートメーションを使う

2022/09/16に公開

はじめに

本記事は、以下の記事の続きです。

https://zenn.dev/kiyoka/articles/aws1-systems-manager-managed

本記事では、前回に続き、Systems Managerのオートメーションランブックを実行できるようにします。
オートメーションランブックを使うと、Systems Managerのマネージドインスタンスにセキュリティーパッチを適用したり、Windows Server AMIにWindows Updateを全自動で終わらせるなど、様々なタスクを実行することができます。

記事のカバー範囲

  • AWSが用意した既成のランブックだけでなく、ユーザーがカスタマイズしたランブックも実行できるようにします。
  • ランブックのカスタマイズ方法についてはカバー範囲外です。

オートメーションのロールを理解する

オートメーションの実行時に利用するロールとポリシーの関係です。

2021-11-24-23-36-23-image.png

オートメーションを利用できるようにする

Automationというサービスに渡すサービスロールを作成します

私は「AutomationServiceRole」というストレートな名前のロールを作成しました。

2021-11-24-21-34-09-image.png

下記の要件を満たす必要があります。

  • 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できる権限を追加しました。

追加したインラインポリシーは以下のものです。
2021-11-24-22-50-18-image.png

JSONも引用します。

 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::744822404890:role/AutomationServiceRole"
        }
    ]
}

オートメーションを実行してみる

準備が整いましたので、簡単なオートメーションドキュメント「AWS-StopEC2Instance」を実行してみます。

既に、稼働中のインスタンスがある前提です。

  1. IAMユーザー「kiyoka」でAWSマネジメントコンソールにサインインします。
  2. Systems Managerの「自動化」をたどります。(メニューだけ翻訳されて「自動化」というキーワードになっています。奇妙ですが我慢しましょう)
    2021-11-24-23-08-37-image.png
  3. 「オートメーションの実行」ボタンを押します。
    2021-11-24-23-09-18-image.png
  4. オートメーションドキュメントから「AWS-StopEC2Instance」を選択します。
    2021-11-24-23-10-58-image.png
  5. 次へを押します。
    2021-11-24-23-11-42-image.png
  6. 稼働中のインスタンスを選択し、オートメーションを実行するためのロールを選択します。上記で作成した「AutomationSeriviceRole」を選択し、「実行」を押します。
    2021-11-24-23-12-28-image.png
  7. オートメーションが実行され、各ステップの状態が表示されます。
    2021-11-24-23-14-32-image.png
  8. 実行完了です。
    2021-11-24-23-14-55-image.png

最後に

ここまでの設定が終わっていれば、AWS提供のランブックドキュメントをコピーしてカスタムランブックを実行できる権限もあります。
カスタムランブックを作って、手作業を減らしてみてください。

Discussion