

• 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 パラメータからの AWS Secrets Manager シークレットの参照
<a name="integration-ps-secretsmanager"></a>

AWS Secrets Manager は、認証情報、パスワード、ライセンスキーなどの重要な設定データの整理や管理に役立ちます。AWS Systems Manager のツールである Parameter Store は Secrets Manager と統合されたため、Parameter Store パラメータへの参照が既にサポートされている他の AWS のサービスを使用するときに、Secrets Manager シークレットを取得できます。これらのサービスには、Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic Container Service (Amazon ECS)、AWS Lambda、CloudFormation、AWS CodeBuild、AWS CodeDeploy、およびその他の Systems Manager のツールが含まれます。Parameter Store を使用して Secrets Manager のシークレットを参照することによって、安全で一貫したプロセスを作成し、コードおよび設定スクリプトでシークレットや参照データを呼び出して使用できます。

Secrets Manager の詳細については、*AWS Secrets Manager ユーザーガイド*の「[AWS Secrets Manager とは](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)」を参照してください。

## 制限事項
<a name="integration-ps-secretsmanager-restrictions"></a>

Parameter Store を使用して Secrets Manager のシークレットを参照する場合は、次の制限に注意してください。
+ [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html) および [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) API オペレーションを使用して取得できるのは、Secrets Manager のシークレットのみです。[DescribeParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html) や [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) などの変更オペレーションや高度なクエリの API オペレーションは、Secrets Manager に対してはサポートされていません。
+ Parameter Store を使用してシークレットを取得するには、AWS Command Line Interface (AWS CLI)、AWS Tools for Windows PowerShell、および SDK を使用できます。
+ Parameter Store の Secrets Manager シークレットには `/aws/reference/secretsmanager` のプレフィックスが必要です。次に例を示します。

  `/aws/reference/secretsmanager/CFCreds1`

  `/aws/reference/secretsmanager/myapp/db/password`
+ Parameter Store では、Secrets Manager のシークレットにアタッチされた AWS Identity and Access Management (IAM) ポリシーが尊重されます。たとえば、ユーザー 1 にシークレット A へのアクセス権がない場合、ユーザー 1 は Parameter Store を使用してシークレット A を取得することはできません。
+ Secrets Manager のシークレットを参照するパラメータは、Parameter Store のバージョン管理機能または履歴機能を使用できません。
+ Parameter Store は、Secrets Manager のバージョンステージを尊重します。バージョンステージを参照する場合、英字、数字、ピリオド (.)、ハイフン (-)、アンダースコア (\$1) を使用できます。バージョンステージで他の記号を使用すると、その参照は失敗します。

## Parameter Store を使用して Secrets Manager のシークレットを参照する方法
<a name="integration-ps-secretsmanager-create"></a>

次の手順では、Parameter Store API を使用して Secrets Manager のシークレットを参照する方法について説明します。この手順では *AWS Secrets Manager ユーザーガイド*で説明されている他の手順を参照しています。

**注記**  
この手順を開始する前に、Parameter Store パラメータで Secrets Manager のシークレットを参照するアクセス許可があることを確認してください。Secrets Manager および Systems Manager で管理者アクセス許可を持っている場合は、Parameter Store API を使用してシークレットを参照または取得できます。Parameter Store パラメータで Secrets Manager シークレットを参照する場合、そのシークレットへのアクセス許可を持っていなければ、その参照は失敗します。詳細については、*AWS Secrets Manager ユーザーガイド*の「[AWS Secrets Manager に対する認証とアクセスコントロール](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html)」を参照してください。

**重要**  
Parameter Store は Secrets Manager シークレットを参照するためのパススルーサービスとして機能します。Parameter Store はシークレットに関するデータやメタデータを保持しません。この参照はステートレスです。

**Parameter Store を使用して Secrets Manager のシークレットを参照するには**

1. Secrets Manager でシークレットを作成します。詳細については、「[AWS Secrets Manager を使用したシークレットの作成および管理](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)」を参照してください。

1. AWS CLI、AWS Tools for Windows PowerShell、または SDK を使用してシークレットを参照する Secrets Manager シークレットを参照する場合、名前は、「`/aws/reference/secretsmanager/`」の予約済みパスで始まる必要があります。このパスを指定することで、Systems Manager は Parameter Store ではなく Secrets Manager からシークレットを取得することを認識します。Parameter Store を使用して `CFCreds1` と `DBPass` の Secrets Manager シークレットを正しく参照する名前の例を次に示します。
   + `/aws/reference/secretsmanager/CFCreds1`
   + `/aws/reference/secretsmanager/DBPass`

   次の Java コード例では、Secrets Manager に保存されているアクセスキーとシークレットキーを参照しています。このコード例では、Amazon DynamoDB クライアントを設定します。このコードでは、Parameter Store から設定データと認証情報を取得しています。設定データは、Parameter Store に文字列パラメータとして格納され、認証情報は Secrets Manager に格納されます。設定データと認証情報が異なるサービスに保存されている場合でも、`GetParameter` API を使用して Parameter Store から両方データにアクセスできます。

   ```
   /**
   * Initialize Systems Manager client with default credentials
   */
   AWSSimpleSystemsManagement ssm = AWSSimpleSystemsManagementClientBuilder.defaultClient();
    
   ...
    
   /**
   * Example method to launch DynamoDB client with credentials different from default
   * @return DynamoDB client
   */
   AmazonDynamoDB getDynamoDbClient() {
       //Getting AWS credentials from Secrets Manager using GetParameter
       BasicAWSCredentials differentAWSCreds = new BasicAWSCredentials(
               getParameter("/aws/reference/secretsmanager/access-key"),
               getParameter("/aws/reference/secretsmanager/secret-key"));
    
       //Initialize the DynamoDB client with different credentials
       final AmazonDynamoDB client = AmazonDynamoDBClient.builder()
               .withCredentials(new AWSStaticCredentialsProvider(differentAWSCreds))
               .withRegion(getParameter("region")) //Getting configuration from Parameter Store
               .build();
       return client;
   }
    
   /**
   * Helper method to retrieve parameter value
   * @param parameterName identifier of the parameter
   * @return decrypted parameter value
   */
   public GetParameterResult getParameter(String parameterName) {
       GetParameterRequest request = new GetParameterRequest();
       request.setName(parameterName);
       request.setWithDecryption(true);
       return ssm.newGetParameterCall().call(request).getParameter().getValue();
   }
   ```

   AWS CLI の例を次に示します。`aws secretsmanager list-secrets` コマンドを使用して、シークレットの名前を検索します。

   **AWS CLI 例 1: シークレットの名前を使用した参照**

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

   ```
   aws ssm get-parameter \
       --name /aws/reference/secretsmanager/s1-secret \
       --with-decryption
   ```

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

   ```
   aws ssm get-parameter ^
       --name /aws/reference/secretsmanager/s1-secret ^
       --with-decryption
   ```

------

   このコマンドによって以下のような情報が返されます。

   ```
   {
       "Parameter": {
           "Name": "/aws/reference/secretsmanager/s1-secret",
           "Type": "SecureString",
           "Value": "Fl*MEishm!al875",
           "Version": 0,
           "SourceResult": 
                 "{
                      \"CreatedDate\": 1526334434.743,
                      \"Name\": \"s1-secret\",
                      \"VersionId\": \"aaabbbccc-1111-222-333-123456789\",
                      \"SecretString\": \"Fl*MEishm!al875\",
                      \"VersionStages\": [\"AWSCURRENT\"],
                      \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                  }"
           "LastModifiedDate": 2018-05-14T21:47:14.743Z,
           "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                  E18LRP",
         }
   }
   ```

   **AWS CLI 例 2: バージョン ID が含まれている参照**

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

   ```
   aws ssm get-parameter \
       --name /aws/reference/secretsmanager/s1-secret:11111-aaa-bbb-ccc-123456789 \
       --with-decryption
   ```

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

   ```
   aws ssm get-parameter ^
       --name /aws/reference/secretsmanager/s1-secret:11111-aaa-bbb-ccc-123456789 ^
       --with-decryption
   ```

------

   このコマンドによって以下のような情報が返されます。

   ```
   {
       "Parameter": {
           "Name": "/aws/reference/secretsmanager/s1-secret",
           "Type": "SecureString",
           "Value": "Fl*MEishm!al875",
           "Version": 0,
           "SourceResult": 
                 "{
                      \"CreatedDate\": 1526334434.743,
                      \"Name\": \"s1-secret\",
                      \"VersionId\": \"11111-aaa-bbb-ccc-123456789\",
                      \"SecretString\": \"Fl*MEishm!al875\",
                      \"VersionStages\": [\"AWSCURRENT\"],
                      \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                  }"
           "Selector": ":11111-aaa-bbb-ccc-123456789"
         }
           "LastModifiedDate": 2018-05-14T21:47:14.743Z,
           "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                  E18LRP",
   }
   ```

   **AWS CLI 例 3: バージョンステージが含まれている参照**

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

   ```
   aws ssm get-parameter \
       --name /aws/reference/secretsmanager/s1-secret:AWSCURRENT \
       --with-decryption
   ```

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

   ```
   aws ssm get-parameter ^
       --name /aws/reference/secretsmanager/s1-secret:AWSCURRENT ^
       --with-decryption
   ```

------

   このコマンドによって以下のような情報が返されます。

   ```
   {
       "Parameter": {
           "Name": "/aws/reference/secretsmanager/s1-secret",
           "Type": "SecureString",
           "Value": "Fl*MEishm!al875",
           "Version": 0,
           "SourceResult": 
                 "{
                      \"CreatedDate\": 1526334434.743,
                      \"Name\": \"s1-secret\",
                      \"VersionId\": \"11111-aaa-bbb-ccc-123456789\",
                      \"SecretString\": \"Fl*MEishm!al875\",
                      \"VersionStages\": [\"AWSCURRENT\"],
                      \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                  }"
           "Selector": ":AWSCURRENT"
         }
         "LastModifiedDate": 2018-05-14T21:47:14.743Z,
         "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                   E18LRP",
   }
   ```