AWSシリーズ1:AWS Systems Managerの管理対象インスタンスにする
はじめに
本記事は、EC2インスタンスをSystems Managerの管理対象インスタンスにするまでの手順です。
別記事で、EC2インスタンスに対してオートメーション(ランブック)を実行するところを書く予定です。手順が長いので分割しています。
Systems Managerを利用するためには、いくつかのロールの作成とポリシーの割り当てが必要になります。
記事のカバー範囲
- AWS上のWindows Serverインスタンスのみを扱います。オンプレミスのサーバーをマネージドインスタンスにする内容は含みません。
Systems Managerの管理対象インスタンスの準備
- SSM Agentをインストールしたマシンイメージ(AMI)を用意します。
AWSコミュニティーAMIで提供されているWindows Server 2019のAMIには、はじめからSSM Agentがインストールされています。
2. Systems Managerの管理対象インスタンスに付与するためのインスタンスプロファイル(ロール)を作成する
私の場合は、下記のロール「Role_SSMManagedCore」を新規作成しました。
必須のAWS管理ポリシーは「AmazonSSMManagedInstanceCore」ですが、ランブック実行時にS3バケットからデータを取得したいので「AmazonS3ReadOnlyAccess」も付与しています。
インスタンスプロファイルとロールは別の概念ですが、AWS Management ConsoleでIAMロールを作成したら、同名のインスタンスプロファイルもペアで作成されます。
<参考URL>
インスタンスプロファイルの使用 - AWS Identity and Access Management
AWS Management Console を使用して Amazon EC2 のロールを作成する場合、コンソールはインスタンスプロファイルを自動的に作成し、そのインスタンスプロファイルにロールと同じ名前を付けます。IAM ロールを使用してインスタンスを起動するのに Amazon EC2 コンソールを使用する場合、インスタンスに関連付けるロールを選択できます。
Systems Managerを利用するIAMユーザーの用意
Systems Managerの利用者のIAMユーザーにポリシーを付与します。
- AWS管理ポリシー「AmazonSSMFullAccess」を付与します。
<参考URL>
タスク 1: ユーザーグループを作成する - AWS Systems Manager - PassRole用のインラインポリシーを付与します。私はインラインポリシーを「PassRole_SSMManagedCore」と名付けました。これでEC2インスタンスにRole_SSMManagedCoreというロールを渡す権が付きます。
EC2インスタンスを起動して、Systems Managerのコンソールから管理対象インスタンスとして確認する
- ロール「Role_SSMManagedCore」を付与してインスタンスを起動します。
- 約30分ほど待ちます。
初めて管理対象のインスタンスになる場合は、SSM Agentからのインベントリ情報アップロードに時間がかかるので、しばらく待つ必要があります。正確な時間はわかりませんが、実際に約30分ほどで管理対象になりました。 - Systems Managerの「フリートマネージャー」を開くと起動中のインスタンスがManaged nodeとして表示されます。
- Managed nodeになると、Node actionとしてリモートセッション(Powershell)やファイルシステムの参照ができます。
Start teminal sessionを実行した画面(ブラウザからPowershellで操作可能)
View file systemを実行した画面
- Systems Managerの「インベントリ」、「コンプライアンス」、「セッションマネージャー」、「パッチマネージャー」などを開くとそれぞれの観点でインスタンスの管理情報を表示することができます。
例:パッチマネージャーの画面
最後に
Systems Managerを使うとインスタンス内のパッチの最新状態の一括管理やWindows Updateなどを行うことができます。
引き続き、オートメーション(ランブック)を実行する設定する記事に続きます。
Discussion