Run Command のセットアップ - AWS Systems Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Run Command のセットアップ

AWS Systems Manager の一機能である Run Command を使用してノードを管理する前に、コマンドを実行するユーザーの AWS Identity and Access Management (IAM) ポリシーを設定する必要があります。

また、Systems Manager 用のノードを設定する必要があります。詳細については、「AWS Systems Manager のセットアップ」を参照してください。

マネージドノードのセキュリティ体制や日常管理を最小限に抑えるために、以下のオプションのセットアップタスクを実行することを強くお勧めします。

Amazon EventBridge を使用してコマンドの実行をモニタリングする

EventBridge を使用して、コマンド実行ステータスの変更を記録できます。状態の遷移があると実行されるルールや、関心のある 1 以上の遷移があると実行されるルールを作成できます。EventBridge イベントが発生した場合、ターゲットアクションとして Run Command を指定することもできます。詳細については、「Systems Manager イベント用の EventBridge を設定する」を参照してください。

Amazon CloudWatch Logs を使用してコマンドの実行をモニタリングする

すべてのコマンド出力とエラーログを Amazon CloudWatch Logs グループに定期的に送信するように Run Command を設定できます。これらの出力ログは、ほぼリアルタイムでモニタリングし、特定の語句、値、またはパターンを検索して、検索に基づいてアラームを作成できます。詳細については、「Run Command の Amazon CloudWatch Logs の設定」を参照してください。

特定のマネージドノードへの Run Command アクセスを制限

AWS Identity and Access Management (IAM) を使用して、マネージドノードでコマンドを実行するユーザーの能力を制限することができます。具体的には、特定のタグ付けされたマネージドノードでのみユーザーがコマンドを実行できるようにする条件を含む IAM ポリシーを作成できます。詳細については、「タグによる Run Command アクセスを制限」を参照してください。

タグによる Run Command アクセスを制限

このセクションでは、IAM ポリシーでタグ条件を指定して、マネージドノードでコマンドを実行するユーザーの機能を制限する方法について説明します。マネージドノードには、Systems Manager に設定されたハイブリッドおよびマルチクラウド環境で Amazon EC2 インスタンスと非 EC2 ノードが含まれます。情報は明示されていませんが、マネージド AWS IoT Greengrass へコアデバイスのアクセスを制限することもできます。開始するには、AWS IoT Greengrass デバイスのタグ付けが必要です。詳細については、「AWS IoT Greengrass Version 2 デベロッパーガイド」の「AWS IoT Greengrass Version 2 リソースのタグ付け」を参照してください。

ユーザーが特定のタグが付けられたノードでのみコマンドを実行できるようにする条件を含む IAM ポリシーを作成して、コマンドの実行を特定のマネージドノードに制限できます。次の例で、ユーザーは、任意のノード (Resource: arn:aws:ec2:*:*:instance/*) で任意の SSM ドキュメント (Resource: arn:aws:ssm:*:*:document/*) を使うことにより、そのノードが Finance WebServer (ssm:resourceTag/Finance: WebServer) であるという条件で、Run Command (Effect: Allow, Action: ssm:SendCommand) を使用できます。タグ付けされていないノードや、Finance: WebServer 以外のタグを持つノードにコマンドをユーザーが送信した場合、実行結果は AccessDenied と表示されます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":[ "arn:aws:ssm:*:*:document/*" ] }, { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":[ "arn:aws:ec2:*:*:instance/*" ], "Condition":{ "StringLike":{ "ssm:resourceTag/Finance":[ "WebServers" ] } } } ] }

複数のタグ付けられたマネージドノードでユーザーがコマンドを実行できるよう許可する IAM ポリシーを作成できます。次のポリシーでは、ユーザーは 2 つのタグがあるマネージドノードでコマンドを実行できます。これらの両方のタグ付けされていていないノードにユーザーがコマンドを送信した場合、実行結果は AccessDenied と表示されます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key1":[ "tag_value1" ], "ssm:resourceTag/tag_key2":[ "tag_value2" ] } } }, { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":[ "arn:aws:ssm:us-west-1::document/AWS-*", "arn:aws:ssm:us-east-2::document/AWS-*" ] }, { "Effect":"Allow", "Action":[ "ssm:UpdateInstanceInformation", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetDocument" ], "Resource":"*" } ] }

タグ付けられたマネージドノードの複数のグループでユーザーがコマンドを実行できるようにする IAM ポリシーを作成することもできます。次のサンプルポリシーでは、ユーザーはタグ付けされたノードのいずれかのグループ、または両方のグループでコマンドを実行できます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key1":[ "tag_value1" ] } } }, { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag_key2":[ "tag_value2" ] } } }, { "Effect":"Allow", "Action":[ "ssm:SendCommand" ], "Resource":[ "arn:aws:ssm:us-west-1::document/AWS-*", "arn:aws:ssm:us-east-2::document/AWS-*" ] }, { "Effect":"Allow", "Action":[ "ssm:UpdateInstanceInformation", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetDocument" ], "Resource":"*" } ] }

IAM ポリシーの作成の詳細については、「IAM ユーザーガイド」の「マネージドポリシーとインラインポリシー」を参照してください。マネージドノードへのタグ付けの詳細については、「AWS Resource Groups ユーザーガイド」の「タグエディタ」を参照してください。