

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# 遠隔で ドキュメントを実行する
<a name="documents-running-remote-github-s3"></a>

`AWS-RunDocument` 事前定義 SSM ドキュメントを使用すると、リモートの場所から AWS Systems Manager (SSM) ドキュメントを実行できます。このドキュメントでは、次の場所に保存されている SSM ドキュメントの実行がサポートされています。
+ パブリックおよびプライベート GitHub リポジトリ (GitHub Enterprise はサポートされていません)
+ Amazon S3 バケット
+ Systems Manager

AWS Systems Manager のツールである State Manager または Automation を使用してリモートドキュメントを実行することもできますが、次の手順では、Systems Manager コンソールで AWS Systems Manager Run Command を使用してリモート SSM ドキュメントを実行する方法のみを説明します。

**注記**  
`AWS-RunDocument` は、コマンドタイプの SSM ドキュメントのみを実行するために使用でき、Automation ランブックなど他のタイプは実行できません。`AWS-RunDocument` は、`aws:downloadContent` プラグインを使用します。`aws:downloadContent` の詳細については、「[`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent)」を参照してください。

**警告**  
`AWS-RunDocument` は、さまざまなソース (SSM ドキュメント、GitHub、S3、URL) からドキュメントコンテンツを実行できます。リモートドキュメントを実行する場合、評価される IAM アクセス許可は、リモートドキュメント `ssm:GetDocument` と `AWS-RunDocument` の `ssm:SendCommand` です。特定の SSM ドキュメントへのアクセスを拒否する IAM ポリシーがある場合、`AWS-RunDocument` アクセス許可を持つユーザーは、ドキュメントコンテンツをパラメータとして渡すことで、これらの拒否されたドキュメントを引き続き実行できます。これは、同じドキュメント固有の IAM 制限の対象にならない場合があります。  
ドキュメント実行を適切に制限するには、次のいずれかの方法を使用します。  
**許可リストで承認されたソース**: ネストされたドキュメント実行を使用する必要がある場合、SSM ドキュメントソースの `ssm:GetDocument` を制御する IAM ポリシー、Amazon S3 ソースの IAM と Amazon S3 バケットポリシー、パブリックインターネットソースのネットワーク設定 (VPC エンドポイントやセキュリティグループなど) のソースタイプごとに適切なコントロールを使用して承認されたソースのみにアクセスを制限します。
**AWS-RunDocument へのアクセスを制限する**: ネストされたドキュメント実行を防ぐために、`AWS-RunDocument` の `ssm:SendCommand`、および IAM ポリシーで `aws:runDocument`プラグインを使用するその他のすべてのドキュメントを拒否します。
**アクセス許可の境界を使用する**: IAM アクセス許可の境界を実装してユーザーの最大アクセス許可を設定し、実行方法に関係なく、ユーザーが承認されていないドキュメントを実行できないようにします。
IAM のベストプラクティスとアクセス許可の境界の詳細については、AWS Identity and Access Management ユーザーガイドの「[Permissions boundaries for IAM entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」を参照してください。

**[開始する前に]**  
リモートドキュメントを実行する前に、次のタスクを完了する必要があります。
+ SSM コマンドドキュメントを作成し、リモートの場所に保存します。詳細については、[SSM ドキュメントコンテンツを作成する](documents-creating-content.md)を参照してください。
+ プライベート GitHub リポジトリに保存されているリモートドキュメントを実行する場合は、GitHub セキュリティアクセストークンの Systems Manager `SecureString` パラメータを作成する必要があります。SSH 経由でトークンを手動で渡すことで、プライベート GitHub リポジトリのリモートドキュメントにアクセスすることはできません。アクセストークンは、Systems Manager `SecureString` パラメータとして渡す必要があります。`SecureString` パラメータの作成の詳細については、「[Systems Manager での Parameter Store パラメータの作成](sysman-paramstore-su-create.md)」を参照してください。

## リモートドキュメントを実行する (コンソール)
<a name="documents-running-remote-github-s3-console"></a>

**リモートドキュメントを実行するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[Run Command]** を選択します。

1. [**Run command (コマンドの実行)**] を選択します。

1. [**Document (ドキュメント)**] リストで、[**`AWS-RunDocument`**] を選択します。

1. [**Command parameters (コマンドパラメータ)**] で、[**Source Type (ソースタイプ)**] としてオプションを選択します。
   + **[GitHub]** を選択した場合は、**[ソース情報]** の情報を次の形式で指定します。

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "path": "path_to_document",
         "getOptions":"branch:branch_name",
         "tokenInfo": "{{ssm-secure:secure-string-token}}"
     }
     ```

     例えば、次のようになります。

     ```
     {
         "owner":"TestUser",
         "repository":"GitHubTestExamples",
         "path":"scripts/python/test-script",
         "getOptions":"branch:exampleBranch",
         "tokenInfo":"{{ssm-secure:my-secure-string-token}}"
     }
     ```
**注記**  
`getOptions` は、マスター以外のブランチまたはリポジトリ内の特定のコミットからコンテンツを取得するための追加オプションです。マスターブランチで最新のコミットを使用している場合は、`getOptions` を省略できます。`branch` は、SSM ドキュメントが `master` 以外のブランチに保存されている場合にのみ必要です。  
リポジトリ内の特定の*コミット*にあるバージョンの SSM ドキュメントを使用するには、`commitID` ではなく、`getOptions` を指定して `branch` を使用します。以下に例を示します。  

     ```
     "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
     ```
   + [**S3**] を選択した場合は、[**Source Info**] 情報を次の形式で指定します。

     ```
     {"path":"URL_to_document_in_S3"}
     ```

     以下に例を示します。

     ```
     {"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
     ```
   + [**SSMDocument**] を選択した場合は、[**Source Info**] 情報を次の形式で指定します。

     ```
     {"name": "document_name"}
     ```

     以下に例を示します。

     ```
     {"name": "mySSMdoc"}
     ```

1. [**Document Parameters**] フィールドに、リモート SSM ドキュメントのパラメータを入力します。例えば、`AWS-RunPowerShell` ドキュメントを実行する場合、以下を指定できます。

   ```
   {"commands": ["date", "echo \"Hello World\""]}
   ```

   `AWS-ConfigureAWSPack` ドキュメントを実行する場合は、以下を指定できます。

   ```
   {
      "action":"Install",
      "name":"AWSPVDriver"
   }
   ```

1. **[Targets]** (ターゲット) セクションで、タグの指定、インスタンスやエッジデバイスの手動選択、リソースグループの指定により、このオペレーションを実行するマネージドノードを選択します。
**ヒント**  
表示されるはずのマネージドノードが表示されない場合は、トラブルシューティングのヒントについて「[マネージドノードの可用性のトラブルシューティング](fleet-manager-troubleshooting-managed-nodes.md)」を参照してください。

1. **[その他のパラメータ]** で、以下の操作を行います。
   + **[コメント]** に、このコマンドに関する情報を入力します。
   + **[タイムアウト (秒)]** に、コマンドの実行全体が失敗するまでにシステムが待機する秒数を指定します。

1. **[レート制御]** の場合:
   + **[同時実行数]** の場合、コマンドを同時に実行するマネージドノードの数または割合を指定します。
**注記**  
マネージドノードに適用されるタグを指定するか、AWS リソースグループを指定してターゲットを選択し、ターゲットとなるマネージドノードの数が不明な場合は、割合を指定してドキュメントを同時に実行できるターゲットの数を制限します。
   + **[エラーのしきい値]** で、ノードの数または割合のいずれかで失敗した後、他のマネージドノードでのコマンドの実行をいつ停止するか指定します。例えば、3 つのエラーを指定した場合、4 番目のエラーが受信されると、システムマネージャー はコマンドの送信を停止します。コマンドを処理しているマネージドノードもエラーを送信する可能性があります。

1. (オプション) コマンド出力をファイルに保存する場合は、**[出力オプション]** の **[S3 バケットにコマンド出力を書き込む]** ボックスを選択します。ボックスにバケット名とプレフィックス (フォルダ) 名を入力します。
**注記**  
S3 バケットにデータを書き込む機能を許可する S3 許可は、このタスクを実行する IAM ユーザーのものではなく、インスタンスに割り当てられたインスタンスプロファイル (EC2 インスタンスの場合) または IAM サービスロール (ハイブリッドアクティベーションマシン) のものです。詳細については、「[Systems Manager に必要なインスタンスのアクセス許可を設定する](setup-instance-permissions.md)」または「[ハイブリッド環境に IAM サービスロールを作成する](hybrid-multicloud-service-role.md)」を参照してください。さらに、指定された S3 バケットが別の AWS アカウント にある場合は、マネージドノードに関連付けられたインスタンスプロファイルまたは IAM サービスロールが、そのバケットへの書き込みに必要なアクセス許可があることを確認してください。

1. [**SNS Notifications (SNS 通知)**] セクションで、コマンドの実行状態に関する通知を受け取る場合は、[**Enable SNS notifications (SNS 通知を有効にする)**] チェックボックスをオンにします。

   Run Command 用の Amazon SNS 通知の設定の詳細については、「[Amazon SNS 通知を使用した Systems Manager のステータス変更のモニタリング](monitoring-sns-notifications.md)」を参照してください。

1. [**Run** (実行)] を選択します。

**注記**  
Run Command を使用してスクリプトを呼び出すときに使用するサーバーとインスタンスの再起動については、「[コマンド実行時の再起動の処理](send-commands-reboot.md)」を参照してください。