

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

# SSM ドキュメントの共有
<a name="documents-ssm-sharing"></a>

AWS Systems Manager (SSM) ドキュメントは、同じ AWS リージョン のアカウントとプライベートに共有することも、パブリックに共有することもできます。ドキュメントをプライベートに共有するには、ドキュメントのアクセス許可を変更して、特定の人物が AWS アカウント ID に基づいてドキュメントにアクセスできるようにします。SSM ドキュメントをパブリックに共有するには、ドキュメントのアクセス許可を変更し、[`All`] を指定します。ドキュメントをパブリックとプライベートで同時に共有することはできません。

**警告**  
信頼できるソースの共有 SSM ドキュメントのみ使用してください。共有ドキュメントを使用するときは、使用する前にドキュメントのコンテンツを慎重に確認し、インデックスの設定がどのように変わるかを理解してください。共有ドキュメントのベストプラクティスの詳細については、「[共有 SSM ドキュメントのベストプラクティス](#best-practices-shared)」を参照してください。

**制限事項**  
SSM ドキュメントの作業を始めるときは、次の制限事項に注意してください。
+ 所有者のみがドキュメントを共有できます。
+ ドキュメントを削除するには、その前にドキュメントの共有を停止する必要があります。詳細については、「[共有 SSM ドキュメントのアクセス許可を変更する](#modify-permissions-shared)」を参照してください。
+ 最大 1000 個の でドキュメントを共有できますAWS アカウント この制限の引き上げをリクエストするには、[サポート センター](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase)までお問い合わせください。[**制限のタイプ**] で、[*EC2 Systems Manager*] を選択し、リクエストの理由を入力します。
+ パブリックに最大 5 件の SSM ドキュメントを共有できます。この制限の引き上げをリクエストするには、[サポート センター](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase)までお問い合わせください。[**制限のタイプ**] で、[*EC2 Systems Manager*] を選択し、リクエストの理由を入力します。
+ ドキュメントは、同じ AWS リージョン の他のアカウントとのみ共有できます。クロスリージョン共有はサポートされていません。

**重要**  
Systems Manager において、*Amazon 所有*の SSM ドキュメントとは、Amazon Web Services 自体によって作成および管理されているドキュメントです。*Amazon 所有*のドキュメントでは、ドキュメント名に `AWS-*` のようなプレフィックスが含まれます。ドキュメントの所有者は、AWS 内の特定のユーザーアカウントではなく Amazon と見なされます。これらのドキュメントは公開されており、誰でも使用できます。

Systems Manager のService Quotas の詳細については、「[AWS Systems Manager の Service Quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm)」を参照してください。

**Topics**
+ [共有 SSM ドキュメントのベストプラクティス](#best-practices-shared)
+ [SSM ドキュメントのパブリック共有をブロックする](#block-public-access)
+ [SSM ドキュメントを共有する](#ssm-how-to-share)
+ [共有 SSM ドキュメントのアクセス許可を変更する](#modify-permissions-shared)
+ [共有 SSM ドキュメントを使用する](#using-shared-documents)

## 共有 SSM ドキュメントのベストプラクティス
<a name="best-practices-shared"></a>

共有ドキュメントを共有したり使用したりする前に、次のガイドラインを確認してください。

**機密情報を削除する**  
AWS Systems Manager (SSM) ドキュメントを慎重に確認して、機密情報があればそれを削除します。例えば、ドキュメントに AWS 認証情報が含まれていないことを確認します。特定のユーザーとドキュメントを共有する場合、そのユーザーはドキュメント内の情報を表示することができます。パブリックにドキュメントを共有する場合、誰でもドキュメント内の情報を表示することができます。

**ドキュメントのパブリック共有をブロックする**  
アカウント内のすべてのパブリック共有されている SSM ドキュメントを確認し、共有を継続するかどうかを確認します。特定のドキュメントのパブリック共有を停止するには、このトピックの [共有 SSM ドキュメントのアクセス許可を変更する](#modify-permissions-shared) セクションで説明しているように、そのドキュメントのアクセス許可設定を変更する必要があります。パブリック共有ブロック設定を有効にしても、現在パブリック共有しているドキュメントには影響しません。ユースケースでパブリック共有を有効にする必要がある場合を除き、Systems Manager ドキュメントコンソールの **[詳細設定]** セクションで、SSM ドキュメントのパブリック共有ブロック設定をオンにすることをお勧めします。この設定をオンにすると、SSM ドキュメントへの不要なアクセスを防止できます。パブリック共有のブロック設定は、アカウントレベルの設定で、各 AWS リージョン で異なる可能性があります。

**IAM 信頼ポリシーを使用して Run Command アクションを制限する**  
ドキュメントにアクセスできるユーザーに対する制限付き AWS Identity and Access Management (IAM) ポリシーを作成します。IAM ポリシーにより、ユーザーが Amazon Elastic Compute Cloud (Amazon EC2) コンソールで表示できるか、AWS Command Line Interface (AWS CLI) または AWS Tools for Windows PowerShell で `ListDocuments` を呼び出して表示できる SSM ドキュメントが決まります。このポリシーでは、SSM ドキュメントに対してユーザーが実行できるアクションも制限されます。制限付きポリシーを作成し、ユーザーが特定のドキュメントのみを表示するようにできます。詳細については、「[カスタマーマネージドポリシーの例](security_iam_id-based-policy-examples.md#customer-managed-policies)」を参照してください。

**共有 SSM ドキュメントを使用する際の注意事項**  
インスタンスで実行されるコマンドを理解するために、共有されている各ドキュメント (特にパブリックドキュメント) のコンテンツを確認します。ドキュメントは、実行後に意図的または非意図的に悪影響を及ぼすことがあります。ドキュメントが外部ネットワークを参照している場合、ドキュメントを使用する前に外部ソースを確認してください。

**ドキュメントハッシュを使用してコマンドを送信する**  
ドキュメントを共有する場合、システムは Sha-256 ハッシュを作成し、それをドキュメントに割り当てます。また、システムはドキュメントコンテンツのスナップショットを保存します。共有ドキュメントを使用してコマンドを送信するときは、コマンドでハッシュを指定して、次の条件が確実に該当するようにできます。  
+ 正しい Systems Manager ドキュメントからコマンドを実行している
+ ドキュメントが自分と共有されてからコンテンツが変更されていない
ハッシュが、指定されたドキュメントと一致しない場合、または共有ドキュメントのコンテンツが変更されている場合、コマンドは `InvalidDocument` 例外を返します。ハッシュは、外部の場所からドキュメントのコンテンツを確認することはできません。

**補間パラメータを使用してセキュリティを高める**  
SSM ドキュメントの `String` タイプのパラメータでは、パラメータと値 `interpolationType": "ENV_VAR` を使用して、パラメータ入力を潜在的に実行可能なコマンドではなく文字列リテラルとして処理することにより、コマンドインジェクション攻撃に対するセキュリティを高めます。この場合、エージェントは、パラメータの値を含む `SSM_parameter-name` という名前の環境変数を作成します。`String` タイプのパラメータを含む既存の SSM ドキュメントをすべて更新して `"interpolationType": "ENV_VAR"` を含めておくことが推奨されます。詳細については、「[SSM ドキュメントコンテンツを書き込む](documents-creating-content.md#writing-ssm-doc-content)」を参照してください。

## SSM ドキュメントのパブリック共有をブロックする
<a name="block-public-access"></a>

開始する前に、AWS アカウント でパブリック共有されている SSM ドキュメントをすべて確認し、共有を継続するかどうかを確認します。特定の SSM ドキュメントのパブリック共有を停止するには、このトピックの [共有 SSM ドキュメントのアクセス許可を変更する](#modify-permissions-shared) セクションで説明しているように、そのドキュメントのアクセス許可設定を変更する必要があります。パブリック共有ブロック設定を有効にしても、現在パブリック共有している SSM ドキュメントには影響しません。パブリック共有ブロック設定を有効にすると、追加の SSM ドキュメントをパブリック共有できなくなります。

ユースケースでパブリック共有を有効にする必要がある場合を除き、SSM ドキュメントのパブリック共有ブロック設定をオンにすることをお勧めします。この設定をオンにすると、SSM ドキュメントへの不要なアクセスを防止できます。パブリック共有のブロック設定は、アカウントレベルの設定で、各 AWS リージョン で異なる可能性があります。現在共有していない SSM ドキュメントについてパブリック共有をブロックするには、次のタスクを完了します。

### パブリック共有のブロック (コンソール)
<a name="block-public-access-console"></a>

**SSM ドキュメントのパブリック共有をブロックするには**

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

1. ナビゲーションペインで、**[ドキュメント]** を選択します。

1. [**Preferences (設定)**] を選択してから、**パブリック共有のブロック**セクションにある [**編集**] を選択します。

1. [**パブリック共有のブロック**] のチェックボックスを選択してから、[**保存**]を選択します。

### パブリック共有のブロック (コマンドライン)
<a name="block-public-access-cli"></a>

AWS Command Line Interface(AWS CLI) を開く、またはローカルコンピュータの AWS Tools for Windows PowerShellを開き、以下のコマンドを実行してSSM ドキュメントのパブリック共有をブロックします。

------
#### [ Linux & macOS ]

```
aws ssm update-service-setting  \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --setting-value Disable \
    --region 'The AWS リージョン you want to block public sharing in'
```

------
#### [ Windows ]

```
aws ssm update-service-setting ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --setting-value Disable ^
    --region "The AWS リージョン you want to block public sharing in"
```

------
#### [ PowerShell ]

```
Update-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -SettingValue Disable `
    –Region The AWS リージョン you want to block public sharing in
```

------

以下のコマンドで、設定値が更新されたことを確認します。

------
#### [ Linux & macOS ]

```
aws ssm get-service-setting   \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --region The AWS リージョン you blocked public sharing in
```

------
#### [ Windows ]

```
aws ssm get-service-setting  ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --region "The AWS リージョン you blocked public sharing in"
```

------
#### [ PowerShell ]

```
Get-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -Region The AWS リージョン you blocked public sharing in
```

------

### IAM によるパブリック共有をブロックするためのアクセスの制限
<a name="block-public-access-changes-iam"></a>

AWS Identity and Access Management (IAM) ポリシーを作成して、ユーザーによるパブリック共有のブロック設定の変更を制限します。これにより、SSM ドキュメントへの不要なアクセスをユーザーが許可できなくなります。

以下は、ユーザーがパブリック共有をブロックする設定を更新できないようにする IAM ポリシーの例です。この例を使用するには、Amazon Web Services のアカウント ID の例を自分のアカウント ID に置き換える必要があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "ssm:UpdateServiceSetting",
            "Resource": "arn:aws:ssm:*:444455556666:servicesetting/ssm/documents/console/public-sharing-permission"
        }
    ]
}
```

------

## SSM ドキュメントを共有する
<a name="ssm-how-to-share"></a>

Systems Manager コンソールを使用して AWS Systems Manager (SSM) ドキュメントを共有できます。コンソールからドキュメントを共有する場合、共有できるのはドキュメントのデフォルトバージョンのみです。また、AWS Command Line Interface (AWS CLI)、AWS Tools for Windows PowerShell、または AWS SDK を使用して、`ModifyDocumentPermission` API オペレーションを呼び出すことで、プログラムで SSM ドキュメントを共有することもできます。ドキュメントを共有する前に、共有するユーザーの AWS アカウント ID を取得します。ドキュメントを共有する場合に、これらのアカウント ID を指定します。

### ドキュメントを共有する (コンソール)
<a name="share-using-console"></a>

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

1. ナビゲーションペインで、**[ドキュメント]** を選択します。

1. ドキュメントリストで共有するドキュメントを選択し、[**詳細を表示**] を選択します。[**Permissions**] タブで自分がドキュメントの所有者であることを確認します。ドキュメントの所有者のみがドキュメントを共有できます。

1. [**Edit**] を選択します。

1. コマンドをパブリックに共有するには、[**Public**] を選択し、[**Save**] を選択します。コマンドをプライベートに共有するには、[**Private (プライベート)**] を選択し、AWS アカウント ID を入力します。次に、[**Add permission (アクセス権限の追加)**] を選択し、[**Save (保存)**] を選択します。

### ドキュメントの共有 (コマンドライン)
<a name="share-using-cli"></a>

次の手順では、コマンドラインセッションの AWS リージョン を指定する必要があります。

1. ローカルコンピュータで AWS CLI または AWS Tools for Windows PowerShell を開き、以下のコマンドを実行して認証情報を指定します。

   次のコマンドで、*[Region]* (リージョン) をユーザー自身の情報に置き換えます。サポートされている *region* 値の一覧については、「Amazon Web Services 全般のリファレンス」の「[Systems Manager サービスエンドポイント](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)」にある **Region** 列を参照してください。

------
#### [ Linux & macOS ]

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

------
#### [ Windows ]

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

------
#### [ PowerShell ]

   ```
   Set-AWSCredentials –AccessKey your key –SecretKey your key
   Set-DefaultAWSRegion -Region region
   ```

------

1. 次のコマンドを使用して、使用可能なすべての SSM ドキュメントの一覧を表示します。一覧には、作成したドキュメント、および自分と共有されたドキュメントが含まれます。

------
#### [ Linux & macOS ]

   ```
   aws ssm list-documents
   ```

------
#### [ Windows ]

   ```
   aws ssm list-documents
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentList
   ```

------

1. 特定のドキュメントを取得するには、次のコマンドを使用します。

------
#### [ Linux & macOS ]

   ```
   aws ssm get-document \
       --name document name
   ```

------
#### [ Windows ]

   ```
   aws ssm get-document ^
       --name document name
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocument `
       –Name document name
   ```

------

1. ドキュメントの説明を表示するには、次のコマンドを使用します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document \
       --name document name
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document ^
       --name document name
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentDescription `
       –Name document name
   ```

------

1. ドキュメントのアクセス権限を表示するには、次のコマンドを使用します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document-permission \
       --name document name \
       --permission-type Share
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document-permission ^
       --name document name ^
       --permission-type Share
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share
   ```

------

1. ドキュメントのアクセス権限を変更して共有するには、次のコマンドを使用します。アクセス権限を編集するには、ドキュメントの所有者である必要があります。オプションで、特定の AWS アカウント ID と共有するドキュメントの場合は、`--shared-document-version` パラメータを使用して共有するドキュメントのバージョンを指定できます。バージョンを指定しない場合、ドキュメント の `Default` バージョンが共有されます。ドキュメントをパブリックに (`all` と) 共有する場合は、指定したドキュメントのすべてのバージョンがデフォルトで共有されます。次のコマンド例は、特定の個人の AWS アカウント ID に基づいて、その個人とドキュメントをプライベートに共有します。

------
#### [ Linux & macOS ]

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add AWS アカウント ID
   ```

------
#### [ Windows ]

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add AWS アカウント ID
   ```

------
#### [ PowerShell ]

   ```
   Edit-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share `
       -AccountIdsToAdd AWS アカウント ID
   ```

------

1. 次のコマンドを使用してドキュメントをパブリックに共有します。
**注記**  
ドキュメントをパブリックに (`all` と) 共有する場合は、指定したドキュメントのすべてのバージョンがデフォルトで共有されます。

------
#### [ Linux & macOS ]

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add 'all'
   ```

------
#### [ Windows ]

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add "all"
   ```

------
#### [ PowerShell ]

   ```
   Edit-SSMDocumentPermission `
       -Name document name `
       -PermissionType Share `
       -AccountIdsToAdd ('all')
   ```

------

## 共有 SSM ドキュメントのアクセス許可を変更する
<a name="modify-permissions-shared"></a>

コマンドを共有する場合、AWS Systems Manager (SSM) ドキュメントへのアクセス権を削除するか、SSM ドキュメントを削除するまで、そのコマンドを表示および使用できます。ただし、共有されている限り、ドキュメントを削除することはできません。ドキュメントを削除する前に、共有を停止する必要があります。

### ドキュメント共有の停止 (コンソール)
<a name="unshare-using-console"></a>

**ドキュメント共有の停止**

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

1. ナビゲーションペインで、**[ドキュメント]** を選択します。

1. ドキュメントリストで共有を停止するドキュメントを選択し、**[詳細]** を選択します。**[アクセス許可]** セクションで自分がドキュメントの所有者であることを確認します。ドキュメントの所有者のみが、ドキュメントの共有を停止できます。

1. [**Edit**] を選択します。

1. [**X**] を選択してコマンドへのアクセス権を取り消す AWS アカウント ID を削除し、[**Save**] を選択します。

### ドキュメントの共有の停止 (コマンドライン)
<a name="unshare-using-cli"></a>

ローカルコンピュータで AWS CLI または AWS Tools for Windows PowerShell を開き、次のコマンドを実行してコマンドの共有を停止します。

------
#### [ Linux & macOS ]

```
aws ssm modify-document-permission \
    --name document name \
    --permission-type Share \
    --account-ids-to-remove 'AWS アカウント ID'
```

------
#### [ Windows ]

```
aws ssm modify-document-permission ^
    --name document name ^
    --permission-type Share ^
    --account-ids-to-remove "AWS アカウント ID"
```

------
#### [ PowerShell ]

```
Edit-SSMDocumentPermission `
    -Name document name `
    -PermissionType Share `
    –AccountIdsToRemove AWS アカウント ID
```

------

## 共有 SSM ドキュメントを使用する
<a name="using-shared-documents"></a>

AWS Systems Manager (SSM) ドキュメントを共有すると、システムは Amazon リソースネーム (ARN) を生成して、コマンドに割り当てます。Systems Manager コンソールから共有ドキュメントを選択して実行する場合、ARN は表示されません。ただし、Systems Manager コンソール以外の方法を使用して共有 SSM ドキュメントを実行する場合は、`DocumentName` リクエストパラメータにドキュメントの完全な ARN を指定する必要があります。コマンドを実行してドキュメントをリストすると、SSM ドキュメントの完全な ARN が表示されます。

**注記**  
AWS のパブリックドキュメント (先頭に `AWS-*` が付くドキュメント)、または自己所有のドキュメントに ARN を指定する必要はありません。

### 共有 SSM ドキュメントを使用する (コマンドライン)
<a name="using-shared-documents-cli"></a>

 **すべてのパブリック SSM ドキュメントをリスト表示するには** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents \
    --filters Key=Owner,Values=Public
```

------
#### [ Windows ]

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Public
```

------
#### [ PowerShell ]

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Public"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **自分と共有されているプライベート SSM ドキュメントをリスト表示するには** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents \
    --filters Key=Owner,Values=Private
```

------
#### [ Windows ]

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Private
```

------
#### [ PowerShell ]

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Private"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **使用できるすべての SSM ドキュメントをリスト表示するには** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents
```

------
#### [ Windows ]

```
aws ssm list-documents
```

------
#### [ PowerShell ]

```
Get-SSMDocumentList
```

------

 **自分と共有されている SSM ドキュメントについての情報を入手するには** 

------
#### [ Linux & macOS ]

```
aws ssm describe-document \
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------
#### [ Windows ]

```
aws ssm describe-document ^
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------
#### [ PowerShell ]

```
Get-SSMDocumentDescription `
    –Name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------

 **共有 SSM ドキュメントを実行するには** 

------
#### [ Linux & macOS ]

```
aws ssm send-command \
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName \
    --instance-ids ID
```

------
#### [ Windows ]

```
aws ssm send-command ^
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName ^
    --instance-ids ID
```

------
#### [ PowerShell ]

```
Send-SSMCommand `
    –DocumentName arn:aws:ssm:us-east-2:12345678912:document/documentName `
    –InstanceIds ID
```

------