

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

# AWS Secrets Manager シークレットを作成する
<a name="create_secret"></a>

*シークレット*は、パスワード、ユーザーネームやパスワードなどの一連の認証情報、OAuth トークン、または、暗号化された形式で Secrets Manager に保存されるその他のシークレット情報にすることができます。

**ヒント**  
Amazon RDS および Amazon Redshift 管理ユーザーの認証情報には、[マネージドシークレット](service-linked-secrets.md)を使用することをお勧めします。管理サービスを通じてマネージドシークレットを作成すると、[マネージドローテーション](rotate-secrets_managed.md)を使用できます。

コンソールを使用して、他のリージョンにレプリケートされているソースデータベースのデータベース認証情報を保存すると、シークレットにはソースデータベースの接続情報が含まれます。その後、シークレットをレプリケートすると、レプリカはソースシークレットのコピーとなり、同じ接続情報が含まれます。リージョン接続情報のシークレットにキー/値ペアを追加できます。

シークレットを作成するには、[SecretsManagerReadWrite マネージドポリシー](reference_available-policies.md)で付与されるアクセス許可が必要です。

Secrets Manager では、シークレットを作成すると CloudTrail ログエントリを生成します。詳細については、「[で AWS Secrets Manager イベントをログに記録する AWS CloudTrail](monitoring-cloudtrail.md)」を参照してください。

**シークレットを作成するには (コンソール)**

1. Secrets Manager のコンソール ([https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)) を開きます。

1. **[Store a new secret]** (新しいシークレットを保存する) を選択します｡

1. [**Choose secret type**] (シークレットタイプを選択する) ページで、次の操作を行います。

   1. [**Secret type**] (シークレットの種類) で、次のいずれかを実行します。
      + データベース認証情報を保存するには、保存するデータベース認証情報のタイプを選択します。次に、**[データベース]** を選択し、**[認証情報]** を入力します。
      + API キー、アクセストークン、データベース用ではない認証情報を保存するには、**[その他のタイプのシークレット]** を選択します。

        **[キーと値のペア]** に、JSON の **キーと値** ペアでシークレットを入力するか、**[プレーンテキスト]** タブを開き、任意の形式でシークレットを入力します。シークレットには最大 65536 バイトまで保存できます。例:

------
#### [ API key ]

        キーと値のペアとして次を入力します。

        **ClientID**: *client\$1id*

        **ClientSecret** : *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY*

------
#### [ OAuth token ]

        プレーンテキストとして入力します。

        *AKIAI44QH8DHBEXAMPLE*

------
#### [ Digital certificate ]

        プレーンテキストとして入力します。

        ```
        -----BEGIN CERTIFICATE-----
        EXAMPLE
        -----END CERTIFICATE-----
        ```

------
#### [ Private key ]

        プレーンテキストとして入力します。

        ```
        –--- BEGIN PRIVATE KEY ----
        EXAMPLE
        ––-- END PRIVATE KEY –---
        ```

------
      + Secrets Manager パートナーからマネージド外部シークレットを保存するには、**パートナーシー**クレットを選択します。次に、パートナーを選択し、パートナーのシークレットを識別する詳細を指定します。詳細については、「[AWS Secrets Manager マネージド外部シークレットを使用したサードパーティーシークレットの管理](managed-external-secrets.md)」を参照してください。

   1. **暗号化キー**では、Secrets Manager AWS KMS key がシークレット値を暗号化するために使用する を選択します。詳細については、「[シークレット暗号化と復号](security-encryption.md)」を参照してください。
      + ほとんどの場合、**aws/secretsmanager** を選択して、Secrets Manager AWS マネージドキー の を使用します。このキーを使用してもコストは発生しません。
      + 別の からシークレットにアクセスする必要がある場合 AWS アカウント、または独自の KMS キーを使用してキーポリシーを更新または適用する場合は、リストからカスタマーマネージドキーを選択するか、カスタマーマネージドキーのキー ARN またはエイリアス ARN を入力するか、**新しいキーを追加**を選択して作成します。カスタマーマネージドキーの使用料金の詳細については、「[料金](intro.md#asm_pricing)」を参照してください。

        必要なもの: [KMS キーのアクセス許可](security-encryption.md#security-encryption-authz) クロスアカウントアクセスの詳細については、「[別のアカウントから AWS Secrets Manager シークレットにアクセスする](auth-and-access_examples_cross.md)」を参照してください。

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

1. [**Configure secret**] (シークレットを設定する) ページで、次の操作を行います。

   1. わかりやすい**シークレット名**と**説明**を入力します。シークレット名には、1～512 文字の英数字と /\$1\$1=.@- の文字を含めることができます。

   1. (オプション) 外部シークレットを作成した場合は、シークレットを保持する Secrets Manager パートナーに必要なメタデータを入力します。

   1. (オプション) **[Tags]** (タグ) セクションで、タグをシークレットに追加します。タグ付け戦略については、「[でのシークレットのタグ付け AWS Secrets Manager](managing-secrets_tagging.md)」を参照してください。機密情報は暗号化されていないため、タグに保存しないでください。

   1. (オプション) **[Resource permissions]** (リソースに対するアクセス許可) でリソースポリシーをシークレットに追加するには、**[Edit permissions]** (アクセス許可の編集) をクリックします。詳細については、「[リソースベースのポリシー](auth-and-access_resource-policies.md)」を参照してください。

   1. (オプション) シーク**レットのレプリケート**で、シークレットを別のシークレットにレプリケートするには AWS リージョン、シー**クレットのレプリケート**を選択します。シークレットのレプリケーションは、この段階で実行することも、後に戻ってきて実行することもできます。詳細については、「[マルチリージョンレプリケーション](replicate-secrets.md)」を参照してください。

   1. **[Next]** (次へ) を選択します。

1. (オプション) [**Configure rotation**] (ローテーションを設定する) ページで、シークレットの自動ローテーションを有効にできます。ローテーションをオフにしておいて、後でオンにすることもできます。詳しくは、「[ シークレットのローテーション](rotating-secrets.md)」 を参照してください。**[Next]** (次へ) を選択します。

1. **[Review]** (レビュー) ページで、シークレットの詳細を確認し、**[Store]** (保存) を選択します。

   Secrets Manager はシークレットのリストに戻ります。新しいシークレットが表示されない場合は、更新ボタンを選択します。

## AWS CLI
<a name="create_secret_cli"></a>

コマンドシェルにコマンドを入力すると、コマンド履歴がアクセスされたり、ユーティリティからコマンドパラメータにアクセスされたりするリスクがあります。「[を使用して AWS Secrets Manager シークレット AWS CLI を保存するリスクを軽減する](security_cli-exposure-risks.md)」を参照してください。

**Example JSON ファイルのデータベース認証情報からシークレットを作成する**  
次の [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/secretsmanager/create-secret.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/secretsmanager/create-secret.html) の例は、ファイル内の認証情報からシークレットを作成します。詳細については、「 AWS CLI ユーザーガイド[」の「ファイルからのパラメータのロード AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html)」を参照してください。  
Secrets Manager がシークレットをローテーションできるようにするには、必ず JSON が [シークレットの JSON 構造](reference_secret_json_structure.md) にマッチしている必要があります。  

```
aws secretsmanager create-secret \
    --name MyTestSecret \
    --secret-string file://mycreds.json
```
mycreds.json の内容:  

```
{
    "engine": "mysql",
    "username": "saanvis",
    "password": "EXAMPLE-PASSWORD",
    "host": "my-database-endpoint.us-west-2.rds.amazonaws.com",
    "dbname": "myDatabase",
    "port": "3306"
}
```

**Example シークレットを作成する**  
次に、2 つのキーと値のペアを持つシークレットを作成する、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/secretsmanager/create-secret.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/secretsmanager/create-secret.html) の例をします。  

```
aws secretsmanager create-secret \
    --name MyTestSecret \
    --description "My test secret created with the CLI." \
    --secret-string '{"user":"diegor","password":"EXAMPLE-PASSWORD"}'
```

**Example シークレットを作成する**  
次に、2 つのタグを持つシークレットを作成する、[https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/create-secret.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/create-secret.html) の例を示します。  

```
aws secretsmanager create-secret \
    --name MyTestSecret \
    --description "My test secret created with the CLI." \
    --secret-string '{"user":"diegor","password":"EXAMPLE-PASSWORD"}'  \
    --tags '[{"Key": "FirstTag", "Value": "FirstValue"}, {"Key": "SecondTag", "Value": "SecondValue"}]'
```

## AWS SDK
<a name="create_secret_sdk"></a>

 AWS SDKs のいずれかを使用してシークレットを作成するには、 [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)アクションを使用します。詳細については、「[AWS SDKs](asm_access.md#asm-sdks)」を参照してください。

# Secrets Manager シークレットの概要
<a name="whats-in-a-secret"></a>

Secrets Manager では、シークレット**は、シークレット情報、シークレット値**、およびシークレットに関するメタデータで構成されます。シークレット値には、文字列またはバイナリを使用できます。

複数の文字列値をシークレットに保存するには、キーと値のペアを使用した JSON テキスト文字列を使用することをお勧めします。次に例を示します。

```
{
  "host"       : "ProdServer-01.databases.example.com",
  "port"       : "8888",
  "username"   : "administrator",
  "password"   : "EXAMPLE-PASSWORD",
  "dbname"     : "MyDatabase",
  "engine"     : "mysql"
}
```

データベースシークレットで自動ローテーションを有効にするには、シークレットに正しい JSON 構造でデータベースの接続情報が含まれている必要があります。詳細については、「[AWS Secrets Manager シークレットの JSON 構造](reference_secret_json_structure.md)」を参照してください。

## メタデータ
<a name="whats-in-a-secret-metadata"></a>

シークレットのメタデータには以下が含まれます。
+ 次の形式の Amazon リソースネーム (ARN)

  ```
  arn:aws:secretsmanager:<Region>:<AccountId>:secret:SecretName-6RandomCharacters
  ```

  Secrets Manager は、シークレット ARN が確実に一意であるようにするのに役立つよう、シークレット名の末尾に 6 つのランダムな文字を含めます。元のシークレットが削除され、同じ名前で新しいシークレットが作成された場合、これらの文字により 2 つのシークレット ARN は異なったものとなります。ARN が異なるため、古いシークレットにアクセスできるユーザーであっても、新しいシークレットへのアクセスを自動的に取得するわけではありません。
+ シークレットの名前、説明、リソースポリシー、タグ
+ *暗号化キー*の ARN。Secrets Manager AWS KMS key がシークレット値を暗号化および復号するために使用する です。Secrets Manager はシークレットテキストを常に暗号化された形式で保存し、転送中のシークレットを暗号化します。[でのシークレットの暗号化と復号 AWS Secrets Manager](security-encryption.md) を参照してください。
+ シークレットをローテーションする方法に関する情報 (ローテーションを設定した場合) 「[AWS Secrets Manager シークレットのローテーション](rotating-secrets.md)」を参照してください。

Secrets Manager は、IAM アクセス許可ポリシーを使用して、認証されたユーザーのみがシークレットにアクセスまたは変更できるようにします。「[の認証とアクセスコントロール AWS Secrets Manager](auth-and-access.md)」を参照してください。

シークレットには、暗号化されたシークレット値のコピーを保持している複数の*バージョン*があります。シークレットの値を変更するか、シークレットをローテーションすると、Secrets Manager は新しいバージョンを作成します。「[シークレットバージョン](#term_version)」を参照してください。

シークレットを*レプリケート* AWS リージョン することで、複数の でシークレットを使用できます。シークレットをレプリケートする場合、元のシークレットをコピーするか、*レプリカシークレット*と呼ばれる*プライマリシークレット*を作成します。レプリカシークレットは、プライマリシークレットにリンクされたままになっています。「[リージョン間でシー AWS Secrets Manager クレットをレプリケートする](replicate-secrets.md)」を参照してください

「[でシークレットを管理する AWS Secrets Manager](managing-secrets.md)」を参照してください

## シークレットバージョン
<a name="term_version"></a>

シークレットには、暗号化されたシークレット値のコピーを保持している複数の*バージョン*があります。シークレットの値を変更するか、シークレットをローテーションすると、Secrets Manager は新しいバージョンを作成します。

Secrets Manager は、シークレットの履歴をバージョン順には保存しません。代わりに、以下の 3 つの特定のバージョンにラベルを付け、追跡します。
+ 現在のバージョン – `AWSCURRENT`
+ 以前のバージョン – `AWSPREVIOUS`
+ 保留中のバージョン (ローテーション中) – `AWSPENDING`

シークレットには常に、`AWSCURRENT` というラベルが付いたバージョンがあり、シークレット値を取得する際は、そのバージョンがデフォルトで Secrets Manager から返されます。

[https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/update-secret-version-stage.html](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/update-secret-version-stage.html) で を呼び出すことで、独自のラベルでバージョンにラベルを付けることもできます AWS CLI。シークレットには、最大 20 個のラベルをアタッチできます。シークレットの 2 つのバージョンで同じステージングラベルを持つことはできません。各バージョンには、複数のラベル付けることが可能です。

ラベル付きのバージョンであれば、Secrets Manager により削除されることはありませんが、ラベルのないバージョンは非推奨と見なされます。非推奨のバージョンの数が 100 を超えた場合、Secrets Manager はそれらを削除します。ただし、Secrets Manager は 24 時間以内に作成されたバージョンは削除しません。

次の図は、 AWS ラベル付きバージョンとカスタマーラベル付きバージョンを持つシークレットを示しています。ラベルのないバージョンは非推奨と見なされ、将来のある時点で Secrets Manager によって削除されます。

 ![\[A secret that contains multiple secret versions, some with labels such as AWSCURRENT or MyLabelA, and some without labels.\]](http://docs.aws.amazon.com/ja_jp/secretsmanager/latest/userguide/images/SecretVersions.png) 

# AWS Secrets Manager シークレットの JSON 構造
<a name="reference_secret_json_structure"></a>

Secrets Manager シークレットには、最大サイズ 65,536 バイトまでのテキストまたはバイナリを保存できます。

[Lambda 関数によるローテーション](rotate-secrets_lambda.md) を使用する場合、シークレットには、ローテーション関数が想定する特定の JSON フィールドが含まれている必要があります。例えば、データベース認証情報を含むシークレットの場合、ローテーション関数はデータベースに接続して認証情報を更新するため、シークレットにデータベース接続情報が含まれている必要があります。

コンソールを使用して、データベースシークレットのローテーションを編集する場合、シークレットにデータベースを識別する特定の JSON キーと値のペアが含まれている必要があります。Secrets Manager はこれらのフィールドを使用して、データベースをクエリし、ローテーション関数を保存する正しい VPC を検索します。

JSON キー名では大文字と小文字が区別されます。

**Topics**
+ [Amazon RDS と Aurora の認証情報](#reference_secret_json_structure_rds)
+ [Amazon Redshift 認証情報](#reference_secret_json_structure_RS)
+ [Amazon Redshift Serverless 認証情報](#reference_secret_json_structure_RSServerless)
+ [Amazon DocumentDB 認証情報](#reference_secret_json_structure_docdb)
+ [Amazon Timestream for InfluxDB のシークレット構造](#reference_secret_json_structure_TIME)
+ [Amazon ElastiCache の認証情報](#reference_secret_json_structure_ELC)
+ [Active Directory 認証情報](#reference_secret_json_structure_AD)

## Amazon RDS と Aurora の認証情報
<a name="reference_secret_json_structure_rds"></a>

[Secrets Manager が提供するローテーション関数テンプレート](reference_available-rotation-templates.md#RDS_rotation_templates)を使用するには、次の JSON 構造を使用します。キーと値のペアを追加して、例えば、他のリージョンのレプリカデータベースの接続情報を含めることができます。

------
#### [ DB2 ]

Amazon RDS Db2 インスタンスの場合、ユーザーは自分のパスワードを変更できないため、管理者の認証情報を別のシークレットで提供する必要があります。

```
{
  "engine": "db2",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name. If not specified, defaults to None>",
  "port": <TCP port number. If not specified, defaults to 3306>,
  "masterarn": "<ARN of the elevated secret>",
  "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>",
  "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>"
}
```

------
#### [ MariaDB ]

```
{
  "engine": "mariadb",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name. If not specified, defaults to None>",
  "port": <TCP port number. If not specified, defaults to 3306>,
  "masterarn": "<optional: ARN of the elevated secret. Required for the ローテーション戦略: 交代ユーザー.>",
  "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>",
  "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>"
}
```

------
#### [ MySQL ]

```
{
  "engine": "mysql",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name. If not specified, defaults to None>",
  "port": <TCP port number. If not specified, defaults to 3306>,
  "masterarn": "<optional: ARN of the elevated secret. Required for the ローテーション戦略: 交代ユーザー.>",
  "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>",
  "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>"
}
```

------
#### [ Oracle ]

```
{
  "engine": "oracle",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name>",
  "port": <TCP port number. If not specified, defaults to 1521>,
  "masterarn": "<optional: ARN of the elevated secret. Required for the ローテーション戦略: 交代ユーザー.>",
  "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>",
  "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>"
}
```

------
#### [ Postgres ]

```
{
  "engine": "postgres",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name. If not specified, defaults to 'postgres'>",
  "port": <TCP port number. If not specified, defaults to 5432>,
  "masterarn": "<optional: ARN of the elevated secret. Required for the ローテーション戦略: 交代ユーザー.>",
  "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>",
  "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>"
}
```

------
#### [ SQLServer ]

```
{
  "engine": "sqlserver",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name. If not specified, defaults to 'master'>",
  "port": <TCP port number. If not specified, defaults to 1433>,
  "masterarn": "<optional: ARN of the elevated secret. Required for the ローテーション戦略: 交代ユーザー.>",
  "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>",
  "dbClusterIdentifier": <optional: ID of the cluster.Alternately, use dbInstanceIdentifier.  Required for configuring rotation in the console.>"
}
```

------

## Amazon Redshift 認証情報
<a name="reference_secret_json_structure_RS"></a>

[Secrets Manager が提供するローテーション関数テンプレート](reference_available-rotation-templates.md#template-redshift)を使用するには、次の JSON 構造を使用します。キーと値のペアを追加して、例えば、他のリージョンのレプリカデータベースの接続情報を含めることができます。

```
{
  "engine": "redshift",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name. If not specified, defaults to None>",
  "dbClusterIdentifier": "<optional: database ID. Required for configuring rotation in the console.>"
  "port": <optional: TCP port number. If not specified, defaults to 5439>
  "masterarn": "<optional: ARN of the elevated secret. Required for the ローテーション戦略: 交代ユーザー.>"
}
```

## Amazon Redshift Serverless 認証情報
<a name="reference_secret_json_structure_RSServerless"></a>

[Secrets Manager が提供するローテーション関数テンプレート](reference_available-rotation-templates.md#template-redshift)を使用するには、次の JSON 構造を使用します。キーと値のペアを追加して、例えば、他のリージョンのレプリカデータベースの接続情報を含めることができます。

```
{
  "engine": "redshift",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name. If not specified, defaults to None>",
  "namespaceName": "<optional: namespace name, Required for configuring rotation in the console.> "
  "port": <optional: TCP port number. If not specified, defaults to 5439>
  "masterarn": "<optional: ARN of the elevated secret. Required for the ローテーション戦略: 交代ユーザー.>"
}
```

## Amazon DocumentDB 認証情報
<a name="reference_secret_json_structure_docdb"></a>

[Secrets Manager が提供するローテーション関数テンプレート](reference_available-rotation-templates.md#NON-RDS_rotation_templates)を使用するには、次の JSON 構造を使用します。キーと値のペアを追加して、例えば、他のリージョンのレプリカデータベースの接続情報を含めることができます。

```
{
  "engine": "mongo",
  "host": "<instance host name/resolvable DNS name>",
  "username": "<username>",
  "password": "<password>",
  "dbname": "<database name. If not specified, defaults to None>",
  "port": <TCP port number. If not specified, defaults to 27017>,
  "ssl": <true|false. If not specified, defaults to false>,
  "masterarn": "<optional: ARN of the elevated secret. Required for the ローテーション戦略: 交代ユーザー.>",
  "dbClusterIdentifier": "<optional: database cluster ID. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>"
  "dbInstanceIdentifier": "<optional: database instance ID. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>"
}
```

## Amazon Timestream for InfluxDB のシークレット構造
<a name="reference_secret_json_structure_TIME"></a>

Timestream シークレットをローテーションするには、[Amazon Timestream for InfluxDB](reference_available-rotation-templates.md#template-TimeStream) ローテーションテンプレートを使用できます。

詳細については、「*Amazon Timestream Developer Guide*」の「[How Amazon Timestream for InfluxDB uses secrets](https://docs.aws.amazon.com/timestream/latest/developerguide/timestream-for-influx-security-db-secrets.html)」を参照してください。

ローテーションテンプレートを使用するには、Timestream シークレットが正しい JSON 構造になっている必要があります。詳細については、「*Amazon Timestream Developer Guide*」の「[What's in the secret](https://docs.aws.amazon.com/timestream/latest/developerguide/timestream-for-influx-security-db-secrets.html#timestream-for-influx-security-db-secrets-definition)」を参照してください。

## Amazon ElastiCache の認証情報
<a name="reference_secret_json_structure_ELC"></a>

次の例は、ElastiCache の認証情報を保存するシークレットの JSON 構造を示しています。

```
{
  "password": "<password>",
  "username": "<username>" 
  "user_arn": "ARN of the Amazon EC2 user"
}
```

詳細については、「*Amazon ElastiCache ユーザーガイド*」の「[Automatically rotating passwords for users](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/User-Secrets-Manager.html)」(ユーザーのパスワードの自動ローテーション) を参照してください。

## Active Directory 認証情報
<a name="reference_secret_json_structure_AD"></a>

AWS Directory Service はシークレットを使用して Active Directory 認証情報を保存します。詳細については、「*AWS Directory Service Administration Guide*」の「[Seamlessly join an Amazon EC2 Linux instance to your Managed AD Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/seamlessly_join_linux_instance.html)」を参照してください。シームレスなドメイン参加には、次の例にあるキー名が必要です。シームレスなドメイン参加を使用しない場合は、ローテーション関数テンプレートコードで説明されているように、環境変数を使用してシークレット内のキーの名前を変更できます。

Active Directory シークレットをローテーションするには、[Active Directory ローテーションテンプレート](reference_available-rotation-templates.md#template-AD)を使用できます。

------
#### [ Active Directory credential ]

```
{
  "awsSeamlessDomainUsername": "<username>",
  "awsSeamlessDomainPassword": "<password>"
}
```

シークレットをローテーションするには、ドメインディレクトリ ID を含めます。

```
{
  "awsSeamlessDomainDirectoryId": "d-12345abc6e",
  "awsSeamlessDomainUsername": "<username>",
  "awsSeamlessDomainPassword": "<password>"
}
```

シークレットをキータブを含むシークレットと組み合わせて使用する場合は、キータブシークレット ARN を含めます。

```
{
  "awsSeamlessDomainDirectoryId": "d-12345abc6e",
  "awsSeamlessDomainUsername": "<username>",
  "awsSeamlessDomainPassword": "<password>",
  "directoryServiceSecretVersion": 1,
  "schemaVersion": "1.0",
  "keytabArns": [
    "<ARN of child keytab secret 1>,
    "<ARN of child keytab secret 2>,
    "<ARN of child keytab secret 3>,
  ],
  "lastModifiedDateTime": "2021-07-19 17:06:58"
}
```

------
#### [ Active Directory keytab ]

キータブファイルを使用して Amazon EC2 の Active Directory アカウントを認証する方法については、「[Deploying and configuring Active Directory authentication with SQL Server 2017 on Amazon Linux 2](https://aws.amazon.com/blogs/database/deploying-and-configuring-active-directory-authentication-with-sql-server-2017-on-amazon-linux-2/)」を参照してください。

```
{
  "awsSeamlessDomainDirectoryId": "d-12345abc6e",
  "schemaVersion": "1.0",
  "name": "< name>",
  "principals": [
    "aduser@MY.EXAMPLE.COM",
    "MSSQLSvc/test:1433@MY.EXAMPLE.COM"
  ],
  "keytabContents": "<keytab>",
  "parentSecretArn": "<ARN of parent secret>",
  "lastModifiedDateTime": "2021-07-19 17:06:58"
  "version": 1
}
```

------