

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

# Parameter Store でのパラメータ階層の使用
<a name="sysman-paramstore-hierarchies"></a>

数十または数百のパラメータをフラットリストで管理することは、時間がかかり、エラーの原因となります。また、タスクに合ったパラメータを特定することが難しくなります。これは、誤って間違ったパラメータを使用したり、同じ設定データを使用するパラメータを複数作成する可能性があることを意味します。

パラメータ階層を使用すると、パラメータの編成や管理がしやすくなります。階層は、スラッシュを使用して定義するパスを含むパラメータ名です。

**Topics**
+ [例を介してパラメータ階層を理解する](#ps-hierarchy-examples)
+ [階層でパラメータへのクエリを実行する](#ps-hierarchy-queries)
+ [AWS CLI を使用して階層でパラメータを管理する](#sysman-paramstore-walk-hierarchy)

## 例を介してパラメータ階層を理解する
<a name="ps-hierarchy-examples"></a>

以下の例では、名前に 3 つの階層レベルを使用しています。

`/Environment/Type of computer/Application/Data`

`/Dev/DBServer/MySQL/db-string13`

最大で 15 のレベルを持つ階層を作成できます。次の例で示されているように、ユーザーの環境にすでに存在する階層構造を反映した階層を作成することをお勧めします。
+ [継続的統合](https://aws.amazon.com/devops/continuous-integration/)および[継続的デリバリー](https://aws.amazon.com/devops/continuous-delivery/)環境 (CI/CD ワークフロー)

  `/Dev/DBServer/MySQL/db-string`

  `/Staging/DBServer/MySQL/db-string`

  `/Prod/DBServer/MySQL/db-string`
+ コンテナを使用するアプリケーション

  ```
  /MyApp/.NET/Libraries/my-password
  ```
+ ユーザーの企業

  `/Finance/Accountants/UserList`

  `/Finance/Analysts/UserList`

  `/HR/Employees/EU/UserList`

パラメータ階層は、パラメータを作成する方法を標準化し、時間とともにパラメータの管理が容易になります。階層パラメータはまた、設定タスクに合ったパラメータを特定するのに役立ちます。つまり、同じ設定データを持つパラメータを複数作成することを防ぎます。

開発およびステージング環境でパスワードを使用する次の例に示されているように、異なる環境間でパラメータを共有できる階層を作成することができます。

`/DevTest/MyApp/database/my-password`

続いて、次の例に示されているように、本番環境の一意のパスワードを作成できます。

`/prod/MyApp/database/my-password`

パラメータ階層を指定する必要はありません。レベル 1 でパラメータを作成できます。これらは*ルート*パラメータと呼ばれます。下位互換性のため、階層をリリースする前に Parameter Store で作成されたすべてのパラメータは、ルートパラメータではありません。システムは、次のパラメータの両方をルートパラメータとして扱います。

`/parameter-name`

`parameter-name`

## 階層でパラメータへのクエリを実行する
<a name="ps-hierarchy-queries"></a>

階層を使用するもう 1 つの利点は、[GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) API オペレーションを使用して、階層内の特定のレベル*以下*の、すべてのパラメータをクエリする機能です。例えば、AWS Command Line Interface (AWS CLI) で次のコマンドを実行すると、システムは `Oncall` レベル以下のすべてのパラメータを返します。

```
aws ssm get-parameters-by-path --path /Dev/Web/Oncall
```

サンプル出力:

```
{
    "Parameters": [
        {
            "Name": "/Dev/Web/Oncall/Week1",
            "Type": "String",
            "Value": "John Doe",
            "Version": 1,
            "LastModifiedDate": "2024-11-22T07:18:53.510000-08:00",
            "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Dev/Web/Oncall/Week1",
            "DataType": "text"
        },
        {
            "Name": "/Dev/Web/Oncall/Week2",
            "Type": "String",
            "Value": "Mary Major",
            "Version": 1,
            "LastModifiedDate": "2024-11-22T07:21:25.325000-08:00",
            "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Dev/Web/Oncall/Week2",
            "DataType": "text"
        }
    ]
}
```

復号化された `SecureString` パラメータを階層で表示するには、次の例に示されているように、パスおよび `--with-decryption` パラメータを指定します。

```
aws ssm get-parameters-by-path --path /Prod/ERP/SAP --with-decryption
```

## AWS CLI を使用して階層でパラメータを管理する
<a name="sysman-paramstore-walk-hierarchy"></a>

この手順では、AWS CLI を使用してパラメータおよびパラメータ階層を使用する方法について説明します。

**階層を使用してパラメータを管理するには**

1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

   詳細については、「[AWS CLI の最新バージョンをインストールまたは更新します。](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。

1. 以下のコマンドを実行して、`allowedPattern` パラメータおよび `String` パラメータタイプを使用するパラメータを作成します。この例の許容されているパターンは、パラメータの値が 1～4 桁である必要があることを意味します。

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

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/MaxConnections" \
       --value 100 --allowed-pattern "\d{1,4}" \
       --type String
   ```

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

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/MaxConnections" ^
       --value 100 --allowed-pattern "\d{1,4}" ^
       --type String
   ```

------

   コマンドはパラメータのバージョン番号を返します。

1. 次のコマンドを実行して、先ほど新しい値で作成したパラメータの上書きを*試みます*。

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

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/MaxConnections" \
       --value 10,000 \
       --type String \
       --overwrite
   ```

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

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/MaxConnections" ^
       --value 10,000 ^
       --type String ^
       --overwrite
   ```

------

   システムは、新しい値が前のステップで指定した許容されるパターンの要件を満たしていないため、次のエラーを返します。

   ```
   An error occurred (ParameterPatternMismatchException) when calling the PutParameter operation: Parameter value, cannot be validated against allowedPattern: \d{1,4}
   ```

1. 次のコマンドを実行して、AWS マネージドキー を使用する `SecureString` パラメータを作成します。この例の許容されているパターンは、ユーザーが任意の文字を指定でき、値が 8～20 文字である必要があることを意味します。

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

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/my-password" \
       --value "p#sW*rd33" \
       --allowed-pattern ".{8,20}" \
       --type SecureString
   ```

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

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/my-password" ^
       --value "p#sW*rd33" ^
       --allowed-pattern ".{8,20}" ^
       --type SecureString
   ```

------

1. 次のコマンドを実行し、前のステップの階層構造を使用するパラメータをさらに作成します。

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

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/DBname" \
       --value "SQLDevDb" \
       --type String
   ```

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/user" \
       --value "SA" \
       --type String
   ```

   ```
   aws ssm put-parameter \
       --name "/MyService/Test/userType" \
       --value "SQLuser" \
       --type String
   ```

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

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/DBname" ^
       --value "SQLDevDb" ^
       --type String
   ```

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/user" ^
       --value "SA" ^
       --type String
   ```

   ```
   aws ssm put-parameter ^
       --name "/MyService/Test/userType" ^
       --value "SQLuser" ^
       --type String
   ```

------

1. 次のコマンドを実行して、2 つのパラメータの値を取得します。

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

   ```
   aws ssm get-parameters \
       --names "/MyService/Test/user" "/MyService/Test/userType"
   ```

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

   ```
   aws ssm get-parameters ^
       --names "/MyService/Test/user" "/MyService/Test/userType"
   ```

------

1. 次のコマンドを実行して、単一レベル以下のすべてのパラメータをクエリします。

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

   ```
   aws ssm get-parameters-by-path \
       --path "/MyService/Test"
   ```

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

   ```
   aws ssm get-parameters-by-path ^
       --path "/MyService/Test"
   ```

------

1. 次のコマンドを実行して、2 つのパラメータを削除します。

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

   ```
   aws ssm delete-parameters \
       --names "/IADRegion/Dev/user" "/IADRegion/Dev/userType"
   ```

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

   ```
   aws ssm delete-parameters ^
       --names "/IADRegion/Dev/user" "/IADRegion/Dev/userType"
   ```

------