AWS Systems Manager
ユーザーガイド

ステップ 4: Systems Manager の IAM インスタンスプロファイルの作成

デフォルトでは、AWS Systems Manager にはインスタンスでアクションを実行する権限がありません。AWS Identity and Access Management (IAM) インスタンスプロファイルを使用してアクセスを許可する必要があります。インスタンスプロファイルは、起動時に Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに IAM ロール情報を渡すコンテナです。Systems Manager のインスタンスプロファイルを作成するには、必要なアクセス許可を定義する 1 つ以上の IAM ポリシーを、新しいロールか、作成済みのロールにアタッチします。

注記

Systems Manager 高速セットアップを使用すると、AWS アカウントのすべてのインスタンスでインスタンスプロファイルをすばやく設定できます。高速セットアップでは、Systems Manager がユーザーに代わってインスタンスでコマンドを安全に実行できるようにする、継承ロールを作成することもできます。高速セットアップを使用すると、このステップ (ステップ 4) とステップ 5 をスキップできます。詳細については、「AWS Systems Manager 高速セットアップ」を参照してください。

IAM インスタンスプロファイルの作成に関する次の詳細情報に注意してください。

  • Systems Manager のハイブリッド環境でサーバーあるいは仮想マシン (VM) を設定する場合、インスタンスプロファイルを作成する必要はありません。代わりに、IAM サービス ロールを使用するようにサーバーと VM を設定する必要があります。詳細については、「ハイブリッド環境の IAM サービスロールを作成する」を参照してください。

  • IAM インスタンスプロファイルを変更した場合、インスタンスの認証情報が更新されるまでに時間がかかることがあります。更新されるまで、SSM エージェント はリクエストを処理しません。更新プロセスを高速化するには、SSM エージェント を再起動するか、インスタンスを再起動します。

Systems Manager インスタンスプロファイルのポリシーについて

このセクションでは、Systems Manager の EC2 インスタンスプロファイルに追加できるポリシーについて説明します。インスタンスと Systems Manager API との間の通信のためのアクセス許可を付与するには、システムのニーズとセキュリティ要件を考慮したカスタムポリシーを作成することをお勧めします。ただし、開始点として、Systems Manager がインスタンスとやり取りするためのアクセス許可を付与するために、以下の 1 つ以上のポリシーを使用できます。最初のポリシー、AmazonSSMManagedInstanceCore は、インスタンスが AWS Systems Manager サービスコア機能を使用できるようにします。オペレーションプランによっては、他の 3 つのポリシーの 1 つ以上のアクセス許可が必要になる場合があります。

ポリシー: AmazonSSMManagedInstanceCore

必要なアクセス許可。

この AWS 管理ポリシーにより、インスタンスは Systems Manager サービスコア機能を使用できます

ポリシー: Amazon S3 バケットアクセスのカスタムポリシー

次のいずれかの場合に必要なアクセス許可:

  • ケース 1: VPC エンドポイントを使用して、サポートされている AWS のサービス、および PrivateLink を搭載した VPC エンドポイントサービスに VPC をプライベート接続しています。

    SSM エージェント は、インスタンスにインストールされている Amazon ソフトウェアであり、Systems Manager タスクを実行します。このエージェントは、特定の Amazon 所有の S3 バケットへのアクセスが必要です。これらのバケットはパブリックアクセス可能です。ただし、プライベートの VPC エンドポイント環境では、これらのバケットへのアクセスを明示的に付与する必要があります。詳細については、Amazon VPC User Guide の「ステップ 6: (オプション) プライベートクラウドエンドポントの作成」および「VPC エンドポイント」を参照してください。

  • ケース 2: Amazon S3 オペレーションの一環として作成する Systems Manager バケットを使用します。

    Systems Manager の EC2 インスタンスプロファイルで、次のようなタスク用に所有している S3 バケットへのアクセスを許可する必要があります。

    • 実行するコマンドで使用する、S3 バケットに保存したスクリプトにアクセスする。

    • Run Command コマンドまたは Session Manager セッションの完全な出力を保存する。

    • インスタンスにパッチを適用するときに使用するカスタムパッチリストにアクセスする。

注記

S3 バケットに出力ログデータを保存することはオプションですが、使用することを決定した場合は、Systems Manager 設定プロセスの最初に設定することをお勧めします。詳細については、Amazon Simple Storage Service Getting Started Guide の「バケットの作成」を参照してください。

ポリシー: AmazonSSMDirectoryServiceAccess

Windows Server の EC2 インスタンスを Microsoft AD ディレクトリに結合する場合にのみ必要です。

AWS 管理ポリシーでは、マネージドインスタンスによるドメインの結合リクエストに対して、SSM エージェント による AWS Directory Service へのアクセスをお客様の代わりに許可します。詳細については、AWS Directory Service Administration Guide の「Windows EC2 インスタンスをシームレスに結合する」を参照してください。

ポリシー: CloudWatchAgentServerPolicy

メトリクスを読み取り、インスタンスにデータのログを記録して Amazon CloudWatch に書き込むために、インスタンスに CloudWatch エージェント をインストールして実行する場合にのみ必要です。これらは、AWS リソースの問題や変更をモニタリング、分析、および迅速に対応するのに役立ちます。

このポリシーは、CloudWatch 機能 (例: CloudWatch Events または CloudWatch Logs) を使用する場合にのみ、インスタンスプロファイルに必要です。(たとえば、特定の CloudWatch Logs ログストリームへの書き込みアクセスを制限する、より制限の厳しいポリシーを作成することもできます。)

注記

CloudWatch 機能の使用はオプションですが、使用することにした場合は、Systems Manager 設定プロセスの開始時にそれらを設定することをお勧めします。詳細については、「Amazon CloudWatch Events User Guide」および「Amazon CloudWatch Logs User Guide」を参照してください。

タスク 1: (オプション) インスタンスプロファイル用のカスタム S3 バケットポリシーの作成

インスタンスプロファイル用のカスタム S3 バケットポリシーは、VPC エンドポイントを使用している場合、または Systems Manager オペレーションに独自の S3 バケットを使用している場合にのみ作成する必要があります。

以下のポリシーでアクセスを付与する AWS マネージドの S3 バケットの詳細については、SSM エージェント の最小 S3 バケットアクセス許可について を参照してください。

  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. ナビゲーションペインで、[Policies] を選択し、次に [Create policy] を選択します。

  3. [JSON] をタブを選択し、デフォルトのテキストを以下に置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::aws-ssm-region/*", "arn:aws:s3:::aws-windows-downloads-region/*", "arn:aws:s3:::amazon-ssm-region/*", "arn:aws:s3:::amazon-ssm-packages-region/*", "arn:aws:s3:::region-birdwatcher-prod/*", "arn:aws:s3:::patch-baseline-snapshot-region/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::my-bucket-name/*" } ] }

    1 最初の Statement エレメントは、VPC エンドポイントを使用する場合にのみ必要です。

    2 2 番目の Statement エレメントは、Systems Manager オペレーションで使用するために作成した S3 バケットを使用する場合にのみ必要です。

    3 PutObjectAcl アクセスコントロールリストは、他のアカウントで S3 バケットへのクロスアカウントアクセスをサポートする場合にのみ必要です。

  4. オペレーションで VPC エンドポイントを使用する場合は、以下の操作を行います。

    最初の Statement エレメントで、region の各プレースホルダーを、このポリシーが使用される AWS リージョンの識別子に置き換えます。たとえば、US East (Ohio) Region では、us-east-2 を使用します。サポートされているリージョンのリストについては、AWS General Reference の「AWS Systems Manager リージョンとエンドポイント」のトピックのリージョン列を参照してください。

    重要

    このポリシーの特定のリージョンの代わりにワイルドカード文字 (*) を使用しないことをお勧めします。たとえば、arn:aws:s3:::aws-ssm-us-east-2/* を使用して、arn:aws:s3:::aws-ssm-*/* は使用しないでください。ワイルドカードを使用すると、アクセスを付与する Amazon S3 バケットへのアクセス権が付与される場合があります。複数のリージョンでインスタンスプロファイルを使用する場合は、各リージョンの最初の Statement エレメントを繰り返すことをお勧めします。

    -または-

    オペレーションで VPC エンドポイントを使用する場合は、最初の Statement エレメントは削除することができます。

  5. Systems Manager オペレーションで独自の S3 バケットを使用する場合は、以下の操作を行います。

    2 つめの Statement エレメントで、my-bucket-name をアカウントの S3 バケットの名前に置き換えます。このバケットは、Systems Manager オペレーションに使用します。バケットのオブジェクトにアクセス許可を付与します。この際、"arn:aws:s3:::my-bucket-name/*" をリソースとして使用します。バケット、またはバケットオブジェクトにアクセス許可を付与する方法については、Amazon Simple Storage Service Developer Guide の「ポリシーでのアクセス許可の指定」、および AWS のブログ投稿「IAM ポリシーとバケットポリシーと ACL! 」を参照してください。 これは素晴らしい! (S3 リソースへのアクセスの制御)

    注記

    複数のバケットを使用する場合は、それぞれの ARN を入力します。たとえば、バケットのアクセス許可の場合は次のように行います。

    "Resource": [ "arn:aws:s3:::my-first-bucket-name/*", "arn:aws:s3:::my-second-bucket-name/*" ]

    -または-

    Systems Manager オペレーションで独自の S3 バケットを使用していない場合は、2 つめの Statement エレメントは削除できます。

  6. [ポリシーの確認] を選択します。

  7. [名前] に、ポリシーの識別名 (SSMInstanceProfileS3Policy など) を入力するか、希望する別の名前を入力します。

  8. [Create policy] を選択します。

タスク 2: Systems Manager インスタンスプロファイルにアクセス許可を追加する (コンソール)

インスタンスプロファイルに新しいロールを作成するか、既存のロールに必要なアクセス許可を追加するかに応じて、以下のいずれかの手順を実行します。

Systems Manager マネージドインスタンスのインスタンスプロファイルを作成するには (コンソール)

  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. ナビゲーションペインで [Roles] を選択し、続いて [Create role] を選択します。

  3. [信頼されたエンティティの種類を選択] で、[AWS のサービス] を選択します。

  4. [このロールを使用するサービスを選択] のすぐ下で、[EC2]、[次へ: アクセス許可)] を選択します。

    
                                IAM コンソールで EC2 サービスを選択する
  5. [Attached permissions policy (アタッチされているアクセス権限ポリシー)] ページで、以下の操作を行います。

    • [検索] フィールドを使用して、[AmazonSSMManagedInstanceCore] を見つけます。名前の横にあるボックスを選択します。

      
                                        IAM コンソールで EC2 サービスを選択する

      他のポリシーを検索しても、コンソールでは選択内容が保持されます。

    • 以前の手順 タスク 1: (オプション) インスタンスプロファイル用のカスタム S3 バケットポリシーの作成 でカスタムの S3 バケットポリシーを作成した場合は、それを検索してその名前の横にあるチェックボックスをオンにします。

    • AWS Directory Service によって管理されている Active Directory にインスタンスを結合する場合は、[AmazonSSMDirectoryServiceAccess] を検索し、その名前の横にあるチェックボックスをオンにします。

    • CloudWatch Events または CloudWatch Logs を使用して、インスタンスを管理またはモニタリングする場合は、[CloudWatchAgentServerPolicy] を検索し、その名前の横にあるチェックボックスをオンにします。

  6. [次へ: タグ] を選択します。

  7. (オプション) 1 つ以上のタグ/値ペアを追加して、このロールのアクセスを整理、追跡、または制御し、[次へ: 確認] を選択します。

  8. [ロール名] に、新しいインスタンスプロファイルの名前を入力 (SSMInstanceProfile など) するか、希望する別の名前を入力します。

    注記

    ロール名を書き留めます。このロール名は、Systems Manager を使用して管理するインスタンスを新しく作成する際に選択します。

  9. (オプション) [Role description (ロールの説明)] に、インスタンスプロファイルの説明を入力します。

  10. [ロールの作成] を選択します。システムでは、[Roles] ページが返されます。

Systems Manager のインスタンスプロファイルのアクセス許可を既存のロールに追加するには (コンソール)

  1. Open the IAM console at https://console.aws.amazon.com/iam/.

  2. ナビゲーションペインで、[Roles (ロール)] を選択して、Systems Manager オペレーションのためにインスタンスプロファイルに関連付ける既存のロールを選択します。

  3. [Permissions (アクセス許可)] タブで、[Attach policy (ポリシーのアタッチ)] を選択します。

  4. [Attach permission policies (アクセス許可ポリシーのアタッチ)] ページで、以下の操作を行います。

    • 必要な [AmazonSSMManagedInstanceCore] 管理ポリシーの横にあるチェックボックスをオンにします。

    • カスタムの S3 バケットポリシーを作成した場合は、その名前の横にあるチェックボックスをオンにします。インスタンスプロファイルのカスタム S3 バケットポリシーについては、タスク 1: (オプション) インスタンスプロファイル用のカスタム S3 バケットポリシーの作成 を参照してください。

    • AWS Directory Service によって管理されている Active Directory にインスタンスを結合する場合は、[AmazonSSMDirectoryServiceAccess] の横にあるチェックボックスをオンにします。

    • CloudWatch Events または CloudWatch Logs を使用して、インスタンスを管理またはモニタリングする場合は、[CloudWatchAgentServerPolicy] の横にあるチェックボックスをオンにします。

  5. [Attach policy] を選択します。

信頼できるエンティティを含むように、またはさらにアクセスを制限するようにロールを更新する方法については、IAM User Guide の「ロールの修正」を参照してください。

ステップ 5: IAM インスタンスプロファイルを Amazon EC2 インスタンスにアタッチする」に進んでください。