

# Amazon RDS および AWS Secrets Manager によるパスワード管理
<a name="rds-secrets-manager"></a>

Amazon RDS は Secrets Manager と統合して、DB インスタンスとマルチ AZ DB クラスターのマスターユーザーパスワードを管理します。

**Topics**
+ [Secrets Manager と Amazon RDS の統合に関する制限事項](#rds-secrets-manager-limitations)
+ [AWS Secrets Manager を使用したマスターユーザーパスワード管理の概要](#rds-secrets-manager-overview)
+ [Secrets Manager でマスターユーザーパスワードを管理する利点](#rds-secrets-manager-benefits)
+ [Secrets Manager の統合に必要なアクセス許可](#rds-secrets-manager-permissions)
+ [RDS によるマスターユーザーパスワードの管理の強化AWS Secrets Manager](#rds-secrets-manager-auth)
+ [Secrets Manager による DB インスタンスのマスターユーザーパスワードの管理](#rds-secrets-manager-db-instance)
+ [Secrets Manager を使用した RDS for Oracle テナントデータベースのマスターユーザーパスワードの管理](#rds-secrets-manager-tenant)
+ [Secrets Manager によるマルチ AZ DB クラスターのマスターユーザーパスワードの管理](#rds-secrets-manager-db-cluster)
+ [DB インスタンスのマスターユーザーパスワードシークレットのローテーション](#rds-secrets-manager-rotate-db-instance)
+ [マルチ AZ DB クラスターのマスターユーザーパスワードシークレットのローテーション](#rds-secrets-manager-rotate-db-cluster)
+ [DB インスタンスのシークレットに関する詳細を表示する](#rds-secrets-manager-view-db-instance)
+ [マルチ AZ DB クラスターのシークレットに関する詳細の表示](#rds-secrets-manager-view-db-cluster)
+ [テナントデータベースのシークレットに関する詳細の表示](#rds-secrets-manager-view-tenant)
+ [利用可能なリージョンとバージョン](#rds-secrets-manager-availability)

## Secrets Manager と Amazon RDS の統合に関する制限事項
<a name="rds-secrets-manager-limitations"></a>

Secrets Manager によるマスターユーザーパスワードの管理は、以下の機能ではサポートされていません。
+ ソース DB または DB クラスターが Secrets Manager で認証情報を管理する場合のリードレプリカの作成。これは、RDS for SQL Server を除くすべての DB エンジンに適用されます。
+ Amazon RDS ブルー/グリーンデプロイ
+ Amazon RDS Custom
+ Oracle Data Guard のスイッチオーバー

## AWS Secrets Manager を使用したマスターユーザーパスワード管理の概要
<a name="rds-secrets-manager-overview"></a>

AWS Secrets Manager を使用すると、コード内のハードコードされた認証情報 (データベースパスワードを含む) を Secrets Manager への API コールで置き換えて、プログラムでシークレットを取得することができます。Secrets Manager の詳細については、[AWS Secrets Manager ユーザーガイド](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)を参照してください。

データベースシークレットを Secrets Manager に保存すると、AWS アカウント に料金が発生します。料金については、「[AWS Secrets Manager 料金表](https://aws.amazon.com/secrets-manager/pricing)」を参照してください。

次のいずれかのオペレーションを実行するときに、RDS が Amazon RDS DB インスタンスまたはマルチ AZ DB クラスターのマスターユーザーパスワードを Secrets Manager で管理するように指定できます。
+ DB インスタンスを作成する
+ マルチ AZ DB クラスターを作成する
+ RDS for Oracle CDB でテナントデータベースを作成する
+ DB インスタンスの変更
+ マルチ AZ DB クラスターを変更する
+ テナントデータベースを変更する (RDS for Oracle のみ)
+ DB インスタンスを Amazon S3 から復元する
+ DB インスタンスをスナップショットまたはポイントインタイムに復元する (RDS for Oracle のみ)

RDS が Secrets Manager でマスターユーザーパスワードを管理するように指定すると、RDS はパスワードを生成して Secrets Manager に保存します。シークレットを直接操作して、マスターユーザーの認証情報を取得できます。また、カスタマーマネージドキーを指定してシークレットを暗号化したり、Secrets Manager が提供する KMS キーを使用したりすることもできます。

RDS はシークレットの設定を管理し、デフォルトで 7 日ごとにシークレットをローテーションします。ローテーションスケジュールなど、一部の設定を変更できます。Secrets Manager でシークレットを管理する DB インスタンスを削除すると、シークレットとそれに関連するメタデータも削除されます。

シークレット内の認証情報を使用して DB インスタンスまたはマルチ AZ DB クラスターに接続するには、Secrets Manager からシークレットを取得します。詳細については、*AWS Secrets Manager ユーザーガイド*の「[AWS Secrets Manager からのシークレットの取得](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html)、[AWS Secrets Manager シークレットの認証情報を使用して SQL データベースに接続する](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_jdbc.html)」を参照してください。

## Secrets Manager でマスターユーザーパスワードを管理する利点
<a name="rds-secrets-manager-benefits"></a>

Secrets Manager で RDS マスターユーザーのパスワードを管理することには、次の利点があります。
+ RDS はデータベース認証情報を自動的に生成します。
+ RDS はデータベース認証情報を AWS Secrets Manager に自動的に保存および管理します。
+ RDS は、アプリケーションを変更することなく、データベースの認証情報を定期的にローテーションします。
+ Secrets Manager は、データベースの認証情報を人間のアクセスやプレーンテキスト表示から保護します。
+ Secrets Manager では、データベース接続用のシークレット内のデータベース認証情報を取得できます。
+ Secrets Manager では、IAM を使用してシークレット内のデータベース認証情報へのアクセスをきめ細かく制御できます。
+ 必要に応じて、さまざまな KMS キーを使用して、データベースの暗号化を資格情報の暗号化から分離できます。
+ データベース認証情報の手動管理やローテーションが不要になります。
+ AWS CloudTrail と Amazon CloudWatch を使用すると、データベースの認証情報を簡単にモニタリングできます。

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

## Secrets Manager の統合に必要なアクセス許可
<a name="rds-secrets-manager-permissions"></a>

Secrets Manager の統合に関連するオペレーションを実行するには、ユーザーが必要なアクセス許可を持っている必要があります。必要な特定のリソースの API オペレーションを実行するためのアクセス許可を付与する IAM ポリシーを作成できます。その後、これらのポリシーを、それらのアクセス許可を必要とする IAM アクセス許可セットまたはロールにアタッチできます。詳細については、「[Amazon RDS での Identity and Access Management](UsingWithRDS.IAM.md)」を参照してください。

作成、変更、または復元オペレーションの場合、Amazon RDS が Secrets Manager でマスターユーザーパスワードを管理するように指定するユーザーには、次のオペレーションを実行するアクセス許可が必要です。
+ `kms:DescribeKey`
+ `secretsmanager:CreateSecret`
+ `secretsmanager:TagResource`

`kms:DescribeKey` アクセス許可は、`MasterUserSecretKmsKeyId` のカスタマーマネージドキーにアクセスし、`aws/secretsmanager` を記述するために必要です。

作成、変更、または復元オペレーションの場合、Secrets Manager でシークレットを暗号化するカスタマーマネージドキーを指定するユーザーには、次のオペレーションを実行するアクセス許可が必要です。
+ `kms:Decrypt`
+ `kms:GenerateDataKey`
+ `kms:CreateGrant`

変更オペレーションの場合、Secrets Manager でマスターユーザーパスワードをローテーションするユーザーには、次のオペレーションを実行するアクセス許可が必要です。
+ `secretsmanager:RotateSecret`

## RDS によるマスターユーザーパスワードの管理の強化AWS Secrets Manager
<a name="rds-secrets-manager-auth"></a>

IAM 条件キーを使用して、AWS Secrets Manager のマスターユーザーパスワードの RDS 管理を実施できます。次のポリシーでは、マスターユーザーパスワードが Secrets Manager で RDS によって管理されていない限り、ユーザーが DB インスタンスまたは DB クラスターを作成または復元するまたはテナントデータベースを作成または変更することはできません。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": ["rds:CreateDBInstance", "rds:CreateDBCluster", "rds:RestoreDBInstanceFromS3", "rds:RestoreDBClusterFromS3",
                       "rds:RestoreDBInstanceFromDBSnapshot", "rds:RestoreDBInstanceToPointInTime", "rds:CreateTenantDatabase",
                       "rds:ModifyTenantDatabase"],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "rds:ManageMasterUserPassword": false
                }
            }
        }
    ]
}
```

------

**注記**  
このポリシーは、作成時に AWS Secrets Manager でのパスワード管理を強制します。ただし、インスタンスを変更することで、Secrets Manager の統合を無効にして、マスターパスワードを手動で設定することができます。  
これを防ぐには、ポリシーのアクションブロックに `rds:ModifyDBInstance`、`rds:ModifyDBCluster` を含めます。これにより、Secrets Manager 統合が有効になっていない既存のインスタンスには、以降の変更ができなくなることに注意してください。

IAM ポリシーでの条件キーの使用の詳細については、「[Amazon RDS のポリシー条件キー](security_iam_service-with-iam.md#UsingWithRDS.IAM.Conditions)」および「[ポリシー例: 条件キーの使用](UsingWithRDS.IAM.Conditions.Examples.md)」を参照してください。

## Secrets Manager による DB インスタンスのマスターユーザーパスワードの管理
<a name="rds-secrets-manager-db-instance"></a>

以下のアクションを実行すると、Secrets Manager でマスターユーザーパスワードの RDS 管理を設定できます。
+ [Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)
+ [Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)
+ [Amazon RDS for MySQL DB インスタンスへのバックアップの復元](MySQL.Procedural.Importing.md)
+ [DB インスタンスへの復元](USER_RestoreFromSnapshot.md) (RDS for Oracle のみ)
+ [Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md) (RDS for Oracle のみ)

上記のオペレーションは、RDS コンソール、AWS CLI、または RDS API を使用して実行できます。

### コンソール
<a name="rds-secrets-manager-db-instance-console"></a>

RDS コンソールで DB インスタンスを作成または変更する手順に従います。
+ [DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)
+ [Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)
+ [Amazon S3 から新しい MySQL DB インスタンスにデータをインポートする](MySQL.Procedural.Importing.md#MySQL.Procedural.Importing.PerformingImport)

RDS コンソールを使用してこれらのオペレーションのいずれかを実行する場合、マスターユーザーパスワードを RDS が Secrets Manager で管理するように指定できます。DB インスタンスを作成または復元する場合、**[認証情報設定]** で **[AWS Secrets Manager でマスター認証情報を管理する]** を選択します。DB インスタンスを変更するときは、**[設定]** で **[AWS Secrets Manager でマスター認証情報を管理する]** を選択します。

以下の図は、DB インスタンスを作成または復元するときの **AWS Secrets Manager でマスター認証情報を管理する** 設定の例です。

![\[AWS Secrets Manager でマスター認証情報を管理する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-credential-settings-db-instance.png)


このオプションを選択すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

![\[選択した AWS Secrets Manager マスター認証情報を管理する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-create-db-instance.png)


シークレットは、Secrets Manager が提供する KMS キーを使用して暗号化するか、自分で作成したカスタマーマネージドキーを使用して暗号化するかを選択できます。RDS で DB インスタンスのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。DB インスタンスの作成時に使用できる設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。DB インスタンスを変更する際に使用できる設定の詳細については、「[DB インスタンスの設定](USER_ModifyInstance.Settings.md)」を参照してください。

### AWS CLI
<a name="rds-secrets-manager-db-instance-cli"></a>

Secrets Manager で RDS を使用してマスターユーザーパスワードを管理するには、以下のいずれかの AWS CLI コマンドで `--manage-master-user-password` オプションを指定します。
+ [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)
+ [restore-db-instance-from-s3](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) (RDS for Oracle のみ)
+ [restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) (RDS for Oracle のみ)

これらのコマンドで `--manage-master-user-password` オプションを指定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。`--master-user-secret-kms-key-id` オプションを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS で DB インスタンスのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。DB インスタンスの作成時に使用できる設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。DB インスタンスを変更するときに使用できる設定の詳細については、「[DB インスタンスの設定](USER_ModifyInstance.Settings.md)」を参照してください。

次の例では DB インスタンスを作成し、RDS が Secrets Manager でマスターユーザーパスワードを管理するように指定します。シークレットは、Secrets Manager によって提供される KMS キーを使用して暗号化されます。

**Example**  
Linux、macOS、Unix の場合:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --engine mysql \
4.     --engine-version 8.0.39 \
5.     --db-instance-class db.r5b.large \
6.     --allocated-storage 200 \
7.     --master-username testUser \
8.     --manage-master-user-password
```
Windows の場合:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --engine mysql ^
4.     --engine-version 8.0.39 ^
5.     --db-instance-class db.r5b.large ^
6.     --allocated-storage 200 ^
7.     --master-username testUser ^
8.     --manage-master-user-password
```

### RDS API
<a name="rds-secrets-manager-db-instance-api"></a>

RDS が Secrets Manager のマスターユーザーパスワードを管理するように指定するには、次の RDS API オペレーションのいずれかで `ManageMasterUserPassword` パラメータを `true` に設定します。
+ [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html)
+ [RestoreDBInstanceFromS3](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [RestoreDBInstanceFromSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromSnapshot.html) (RDS for Oracle のみ)
+ [RestoreDBInstanceToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) (RDS for Oracle のみ)

これらのオペレーションのいずれかで `ManageMasterUserPassword` パラメータを `true` に設定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。`MasterUserSecretKmsKeyId` パラメータを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS で DB インスタンスのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

## Secrets Manager を使用した RDS for Oracle テナントデータベースのマスターユーザーパスワードの管理
<a name="rds-secrets-manager-tenant"></a>

以下のアクションを実行すると、Secrets Manager でマスターユーザーパスワードの RDS 管理を設定できます。
+ [RDS for Oracle テナントデータベースを CDB インスタンスに追加する](oracle-cdb-configuring.adding.pdb.md)
+ [RDS for Oracle テナントデータベースの変更](oracle-cdb-configuring.modifying.pdb.md)

前述のアクションを実行するために、RDS コンソール、AWS CLI、または RDS API を使用できます。

### コンソール
<a name="rds-secrets-manager-tenant-console"></a>

RDS コンソールで RDS for Oracle テナントデータベースを作成または変更する手順に従います。
+ [RDS for Oracle テナントデータベースを CDB インスタンスに追加する](oracle-cdb-configuring.adding.pdb.md)
+ [RDS for Oracle テナントデータベースの変更](oracle-cdb-configuring.modifying.pdb.md)

RDS コンソールを使用して前述のオペレーションのいずれかを実行する場合、RDS が Secrets Manager でマスターユーザーパスワードを管理するように指定できます。テナントデータベースを作成するときは、**[認証情報設定]** の **[AWS Secrets Manager でマスター認証情報を管理する]** を選択します。テナントデータベースを変更する場合は、**[設定]** で **[AWS Secrets Manager でマスター認証情報を管理する]** を選択します。

以下の図は、テナントデータベースを作成するときの **[AWS Secrets Manager でマスター認証情報を管理する]** 設定の例です。

![\[AWS Secrets Manager でマスター認証情報を管理する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-credential-settings-db-instance.png)


このオプションを選択すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

![\[選択した AWS Secrets Manager マスター認証情報を管理する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-create-db-instance.png)


シークレットは、Secrets Manager が提供する KMS キーを使用して暗号化するか、自分で作成したカスタマーマネージドキーを使用して暗号化するかを選択できます。RDS でテナントデータベースのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。テナントデータベースの作成時に使用できる設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。テナントデータベースの変更時に利用できる設定の詳細については、「[DB インスタンスの設定](USER_ModifyInstance.Settings.md)」を参照してください。

### AWS CLI
<a name="rds-secrets-manager-db-instance-cli"></a>

Secrets Manager で RDS を使用してマスターユーザーパスワードを管理するには、以下のいずれかの AWS CLI コマンドで `--manage-master-user-password` オプションを指定します。
+ [create-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/create-tenant-database.html)
+ [modify-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-tenant-database.html)

前述のコマンドで `--manage-master-user-password` オプションを指定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。`--master-user-secret-kms-key-id` オプションを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS でテナントデータベースのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。テナントデータベースの作成時に使用可能な設定の詳細については、「[create-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/create-tenant-database.html)」を参照してください。テナントデータベースを変更するときに使用できる設定の詳細については、「[modify-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-tenant-database.html)」を参照してください。

次の例では、RDS for Oracle テナントデータベースを作成し、RDS が Secrets Manager でマスターユーザーパスワードを管理するように指定します。シークレットは、Secrets Manager によって提供される KMS キーを使用して暗号化されます。

**Example**  
Linux、macOS、Unix の場合:  

```
1. aws rds create-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name mypdb2 \
4.     --master-username mypdb2-admin \
5.     --character-set-name UTF-16 \
6.     --manage-master-user-password
```
Windows の場合:  

```
1. aws rds create-tenant-database --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name mypdb2 ^
4.     --master-username mypdb2-admin ^
5.     --character-set-name UTF-16 ^
6.     --manage-master-user-password
```

### RDS API
<a name="rds-secrets-manager-db-instance-api"></a>

RDS が Secrets Manager のマスターユーザーパスワードを管理するように指定するには、次の RDS API オペレーションのいずれかで `ManageMasterUserPassword` パラメータを `true` に設定します。
+ [CreateTenantDatabase](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateTenantDatabase.html)
+ [ModifyTenantDatabase](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyTenantDatabase.html)

これらのオペレーションのいずれかで `ManageMasterUserPassword` パラメータを `true` に設定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。`MasterUserSecretKmsKeyId` パラメータを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS でテナントデータベースのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

## Secrets Manager によるマルチ AZ DB クラスターのマスターユーザーパスワードの管理
<a name="rds-secrets-manager-db-cluster"></a>

以下のアクションを実行すると、Secrets Manager でマスターユーザーパスワードの RDS 管理を設定できます。
+ [Amazon RDS 用のマルチ AZ DB クラスターの作成](create-multi-az-db-cluster.md)
+ [Amazon RDS のマルチ AZ DB クラスターの変更](modify-multi-az-db-cluster.md)

これらのアクションを実行するには、RDS コンソール、AWS CLI、または RDS API を使用できます。

### コンソール
<a name="rds-secrets-manager-db-cluster-console"></a>

RDS コンソールを使用してマルチ AZ DB クラスターを作成または変更する手順に従います。
+ [DB クラスターの作成](create-multi-az-db-cluster.md#create-multi-az-db-cluster-creating)
+ [Amazon RDS のマルチ AZ DB クラスターの変更](modify-multi-az-db-cluster.md)

RDS コンソールを使用してこれらのオペレーションのいずれかを実行する場合、マスターユーザーパスワードが RDS で Secrets Manager で管理されるように指定できます。これを行うには、DB クラスターを作成ときに、**[Credential settings]** (認証情報設定) で **[Manage master credentials in AWS Secrets Manager]** ( でマスター認証情報を管理する) を選択します。DB クラスターを変更する場合は、**[Settings]** (設定) で **[Manage master credentials in AWS Secrets Manager]** ( でマスター認証情報を管理する) を選択します。

以下の図は、DB インスタンスを作成またはときの **AWS Secrets Managerでマスター認証情報を管理する**設定の例です。

![\[AWS Secrets Manager でマスター認証情報を管理する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-credential-settings.png)


このオプションを選択すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

![\[選択した AWS Secrets Manager マスター認証情報を管理する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-create.png)


シークレットは、Secrets Manager が提供する KMS キーを使用して暗号化するか、自分で作成したカスタマーマネージドキーを使用して暗号化するかを選択できます。RDS が DB クラスターのデータベース認証情報を管理した後は、シークレットの暗号化に使用される KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。

各 マルチ AZ DB クラスターの作成時に使用できる設定の詳細については、「[マルチ AZ DB クラスターを作成するための設定](create-multi-az-db-cluster.md#create-multi-az-db-cluster-settings)」を参照してください。マルチ AZ DB クラスターの変更時に利用できる設定の詳細については、「[マルチ AZ DB クラスターの変更の設定](modify-multi-az-db-cluster.md#modify-multi-az-db-cluster-settings)」を参照してください。

### AWS CLI
<a name="rds-secrets-manager-db-cluster-cli"></a>

RDS が Secrets Manager のマスターユーザーパスワードを管理するように指定するには、以下のいずれかの `--manage-master-user-password` コマンドでオプションを指定します。
+ [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)
+ [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)

これらのコマンドで `--manage-master-user-password` オプションを指定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。`--master-user-secret-kms-key-id` オプションを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS が DB クラスターのデータベース認証情報を管理した後は、シークレットの暗号化に使用される KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。

各 マルチ AZ DB クラスターの作成時に使用できる設定の詳細については、「[マルチ AZ DB クラスターを作成するための設定](create-multi-az-db-cluster.md#create-multi-az-db-cluster-settings)」を参照してください。マルチ AZ DB クラスターの変更時に利用できる設定の詳細については、「[マルチ AZ DB クラスターの変更の設定](modify-multi-az-db-cluster.md#modify-multi-az-db-cluster-settings)」を参照してください。

この例では、マルチ AZ DB クラスターを作成し、RDS が Secrets Manager でパスワードを管理するように指定しています。シークレットは、Secrets Manager によって提供される KMS キーを使用して暗号化されます。

**Example**  
Linux、macOS、Unix の場合:  

```
 1. aws rds create-db-cluster \
 2.    --db-cluster-identifier mysql-multi-az-db-cluster \
 3.    --engine mysql \
 4.    --engine-version 8.0.39  \
 5.    --backup-retention-period 1  \
 6.    --allocated-storage 4000 \
 7.    --storage-type io1 \
 8.    --iops 10000 \
 9.    --db-cluster-instance-class db.r6gd.xlarge \
10.    --master-username testUser \
11.    --manage-master-user-password
```
Windows の場合:  

```
 1. aws rds create-db-cluster ^
 2.    --db-cluster-identifier mysql-multi-az-db-cluster ^
 3.    --engine mysql ^
 4.    --engine-version 8.0.39 ^
 5.    --backup-retention-period 1 ^
 6.    --allocated-storage 4000 ^
 7.    --storage-type io1 ^
 8.    --iops 10000 ^
 9.    --db-cluster-instance-class db.r6gd.xlarge ^
10.    --master-username testUser ^
11.    --manage-master-user-password
```

### RDS API
<a name="rds-secrets-manager-db-cluster-api"></a>

RDS が Secrets Manager のマスターユーザーパスワードを管理するように指定するには、次のいずれかのオペレーションで `ManageMasterUserPassword` パラメータを `true` に設定します。
+ [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)
+ [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)

これらのオペレーションのいずれかで `ManageMasterUserPassword` パラメータを `true` に設定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。`MasterUserSecretKmsKeyId` パラメータを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS が DB クラスターのデータベース認証情報を管理した後は、シークレットの暗号化に使用される KMS キーを変更することはできません。

## DB インスタンスのマスターユーザーパスワードシークレットのローテーション
<a name="rds-secrets-manager-rotate-db-instance"></a>

RDS がマスターユーザーパスワードシークレットをローテーションすると、Secrets Manager は既存のシークレットの新しいシークレットバージョンを生成します。新しいバージョンのシークレットには、新しいマスターユーザーパスワードが含まれています。Amazon RDS は DB インスタンスのマスターユーザーパスワードを、新しいシークレットバージョンのパスワードと一致するように変更します。

スケジュールされたローテーションを待つ代わりに、シークレットをすぐにローテーションできます。Secrets Manager でマスターユーザーのパスワードシークレットを更新するには、DB インスタンスを変更します。DB インスタンスの変更の詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

RDS コンソール、AWS CLI、または RDS API を使用して、マスターユーザーのパスワードシークレットをすぐに更新できます。新しいパスワードは常に 28 文字で、少なくとも 1 つの大文字と小文字、1 つの数字、1 つの句読点が含まれます。

### コンソール
<a name="rds-secrets-manager-rotate-db-instance-console"></a>

RDS コンソールを使用してマスターユーザーのパスワードシークレットをローテーションするには、DB インスタンスを変更し、**[Settings]** (設定) で **[Rotate secret immediately]** (シークレットを直ちにローテーションする) を選択します。

![\[マスターユーザーパスワードシークレットをすぐにローテーションする\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-rotate.png)


[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md) の RDS コンソールで DB インスタンスを変更する手順に従います。確認ページで **[Apply immediately]** (すぐに適用) を選択する必要があります。

### AWS CLI
<a name="rds-secrets-manager-rotate-db-instance-cli"></a>

AWS CLI を使用してマスターユーザーパスワードシークレットをローテーションするには、[modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを使用して `--rotate-master-user-password` オプションを指定します。マスターパスワードをローテーションするときは、`--apply-immediately` オプションを指定する必要があります。

この例では、マスターユーザーパスワードシークレットをローテーションします。

**Example**  
Linux、macOS、Unix の場合:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --rotate-master-user-password \
4.     --apply-immediately
```
Windows の場合:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --rotate-master-user-password ^
4.     --apply-immediately
```

### RDS API
<a name="rds-secrets-manager-rotate-db-instance-api"></a>

[ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) オペレーションを使用して `RotateMasterUserPassword` パラメータを `true` に設定すると、マスターユーザーパスワードシークレットをローテーションできます。マスターパスワードを変更するときは、`ApplyImmediately` パラメータを `true` に設定する必要があります。

## マルチ AZ DB クラスターのマスターユーザーパスワードシークレットのローテーション
<a name="rds-secrets-manager-rotate-db-cluster"></a>

RDS がマスターユーザーパスワードシークレットをローテーションすると、Secrets Manager は既存のシークレットの新しいシークレットバージョンを生成します。新しいバージョンのシークレットには、新しいマスターユーザーパスワードが含まれています。Amazon RDS は、マルチ AZ DB クラスターのマスターユーザーパスワードを、新しいシークレットバージョンのパスワードと一致するように変更します。

スケジュールされたローテーションを待つ代わりに、シークレットをすぐにローテーションできます。Secrets Manager でマスターユーザーパスワードシークレットをローテーションするには、マルチ AZ DB クラスターを変更します。マルチ AZ DB クラスターの変更については、「[Amazon RDS のマルチ AZ DB クラスターの変更](modify-multi-az-db-cluster.md)」を参照してください。

RDS コンソール、AWS CLI、または RDS API を使用して、マスターユーザーのパスワードシークレットをすぐに更新できます。新しいパスワードは常に 28 文字で、少なくとも 1 つの大文字と小文字、1 つの数字、1 つの句読点が含まれます。

### コンソール
<a name="rds-secrets-manager-rotate-db-instance-console"></a>

RDS コンソールを使用してマスターユーザーパスワードシークレットをローテーションするには、マルチ AZ DB クラスターを変更し、**[Settings]** (設定) で **[Rotate secret immediately]** (シークレットを直ちにローテーションする) を選択します。

![\[マスターユーザーパスワードシークレットをすぐにローテーションする\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-rotate-taz-cluster.png)


RDS コンソールを使用して、[Amazon RDS のマルチ AZ DB クラスターの変更](modify-multi-az-db-cluster.md) および のマルチ AZ DB クラスターを変更する手順に従います。確認ページで **[Apply immediately]** (すぐに適用) を選択する必要があります。

### AWS CLI
<a name="rds-secrets-manager-rotate-db-instance-cli"></a>

AWS CLI を使用してマスターユーザーパスワードシークレットをローテーションするには、[modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) コマンドを使用して `--rotate-master-user-password` オプションを指定します。マスターパスワードをローテーションするときは、`--apply-immediately` オプションを指定する必要があります。

この例では、マスターユーザーパスワードシークレットをローテーションします。

**Example**  
Linux、macOS、Unix の場合:  

```
1. aws rds modify-db-cluster \
2.     --db-cluster-identifier mydbcluster \
3.     --rotate-master-user-password \
4.     --apply-immediately
```
Windows の場合:  

```
1. aws rds modify-db-cluster ^
2.     --db-cluster-identifier mydbcluster ^
3.     --rotate-master-user-password ^
4.     --apply-immediately
```

### RDS API
<a name="rds-secrets-manager-rotate-db-instance-api"></a>

[ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) オペレーションを使用して `RotateMasterUserPassword` パラメータを `true` に設定すると、マスターユーザーパスワードシークレットをローテーションできます。マスターパスワードを変更するときは、`ApplyImmediately` パラメータを `true` に設定する必要があります。

## DB インスタンスのシークレットに関する詳細を表示する
<a name="rds-secrets-manager-view-db-instance"></a>

コンソール ([https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)) または AWS CLI ([get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html) Secrets Manager コマンド) を使用して自分のシークレットを取得できます。

RDS によって管理されているシークレットの Amazon リソースネーム (ARN) は、RDS コンソール、AWS CLI、または RDS API の Secrets Manager で確認できます。

### コンソール
<a name="rds-secrets-manager-view-db-instance-console"></a>

**RDS で管理されているシークレットの詳細を Secrets Manager で表示するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. DB インスタンスの名前を選択して、その詳細を表示します。

1. **[設定]** タブを選択します。

   **[Master Credentials ARN]** (マスター認証情報の ARN) では、シークレット ARN を表示できます。  
![\[RDS が管理するシークレットの詳細を Secrets Manager で表示する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-view-instance.png)

   **[Manage in Secrets Manager]** (Secrets Managerで管理) で管理リンクをクリックすると、Secrets Manager コンソールでシークレットを表示および管理できます。

### AWS CLI
<a name="rds-secrets-manager-view-db-instance-cli"></a>

[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) RDS CLI コマンドを使用すると、Secrets Manager で RDS によって管理されているシークレットに関する次の情報を検索できます。
+ `SecretArn` – シークレットの ARN
+ `SecretStatus` – シークレットのステータス

  設定可能なステータス値は以下のとおりです。
  + `creating` – シークレットは作成中です。
  + `active` – シークレットは通常の使用とローテーションで利用可能です。
  + `rotating` – シークレットはローテーション中です。
  + `impaired` - シークレットはデータベースの認証情報へのアクセスに使用できますが、ローテーションはできません。例えば、アクセス許可が変更されて RDS がシークレットやシークレットの KMS キーにアクセスできなくなった場合、シークレットがこのステータスになる可能性があります。

    シークレットのステータスがこの場合は、ステータスの原因となった状態を修正できます。ステータスの原因となった条件を修正すると、ステータスは次のローテーションまで `impaired` のままです。または、DB インスタンスを変更してデータベース認証情報の自動管理をオフにしてから、DB インスタンスを再度変更してデータベース認証情報の自動管理をオンにすることもできます。DB インスタンスを変更するには、[modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドの `--manage-master-user-password` オプションを使用します。
+ `KmsKeyId` – シークレットの暗号化に使用する KMS キーの ARN。

特定の DB インスタンスの出力を表示する `--db-instance-identifier` オプションを指定します。この例は、DB インスタンスが使用するシークレットの出力を示しています。

**Example**  

```
1. aws rds describe-db-instances --db-instance-identifier mydbinstance
```
シークレットの出力例は次のとおりです。  

```
"MasterUserSecret": {
                "SecretArn": "arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!db-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx",
                "SecretStatus": "active",
                "KmsKeyId": "arn:aws:kms:eu-west-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321"
            }
```

シークレット ARN がある場合は、[get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html) Secrets Manager CLI コマンドを使用してシークレットの詳細を表示できます。

この例は、前のサンプル出力のシークレットの詳細を示しています。

**Example**  
Linux、macOS、Unix の場合:  

```
aws secretsmanager get-secret-value \
    --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!db-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'
```
Windows の場合:  

```
aws secretsmanager get-secret-value ^
    --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!db-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'
```

### RDS API
<a name="rds-secrets-manager-rotate-db-instance-api"></a>

RDS で管理されているシークレットの ARN、ステータス、および KMS キーを Secrets Manager で表示するには、[DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) オペレーションを使用し、`DBInstanceIdentifier` パラメータを DB インスタンス識別子に設定します。シークレットの詳細は、出力に含まれています。

シークレット ARN がある場合は、[GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) Secrets Manager オペレーションを使用してシークレットの詳細を表示できます。

## マルチ AZ DB クラスターのシークレットに関する詳細の表示
<a name="rds-secrets-manager-view-db-cluster"></a>

コンソール ([https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)) または AWS CLI ([get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html) Secrets Manager コマンド) を使用して自分のシークレットを取得できます。

RDS によって管理されているシークレットの Amazon リソースネーム (ARN) は、RDS コンソール、AWS CLI、または RDS API の Secrets Manager で確認できます。

### コンソール
<a name="rds-secrets-manager-view-db-cluster-console"></a>

**RDS が管理するシークレットの詳細を Secrets Manager で表示する**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. 詳細を表示する マルチ AZ DB クラスターの名前を選択します。

1. **[設定]** タブを選択します。

   **[Master Credentials ARN]** (マスター認証情報の ARN) では、シークレット ARN を表示できます。  
![\[RDS が管理するシークレットの詳細を Secrets Manager で表示する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-view-taz-cluster.png)

   **[Manage in Secrets Manager]** (Secrets Managerで管理) で管理リンクをクリックすると、Secrets Manager コンソールでシークレットを表示および管理できます。

### AWS CLI
<a name="rds-secrets-manager-view-db-instance-cli"></a>

RDS AWS CLI [describe-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) コマンドを使用すると、Secrets Manager で RDS によって管理されているシークレットに関する次の情報を検索できます。
+ `SecretArn` – シークレットの ARN
+ `SecretStatus` – シークレットのステータス

  設定可能なステータス値は以下のとおりです。
  + `creating` – シークレットは作成中です。
  + `active` – シークレットは通常の使用とローテーションで利用可能です。
  + `rotating` – シークレットはローテーション中です。
  + `impaired` - シークレットはデータベースの認証情報へのアクセスに使用できますが、ローテーションはできません。例えば、アクセス許可が変更されて RDS がシークレットやシークレットの KMS キーにアクセスできなくなった場合、シークレットがこのステータスになる可能性があります。

    シークレットのステータスがこの場合は、ステータスの原因となった状態を修正できます。ステータスの原因となった条件を修正すると、ステータスは次のローテーションまで `impaired` のままです。または、DB クラスターを変更してデータベース認証情報の自動管理をオフにしてから、DB クラスターを再度変更してデータベース認証情報の自動管理をオンにすることもできます。DB クラスターを変更するには、[modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) コマンドの `--manage-master-user-password` を使用します。
+ `KmsKeyId` – シークレットの暗号化に使用する KMS キーの ARN。

特定の DB クラスターの出力を表示する `--db-cluster-identifier` オプションを指定します。この例は、DB クラスターが使用するシークレットの出力を示しています。

**Example**  

```
1. aws rds describe-db-clusters --db-cluster-identifier mydbcluster
```
以下は、シークレットの出力例を示しています。  

```
"MasterUserSecret": {
                "SecretArn": "arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx",
                "SecretStatus": "active",
                "KmsKeyId": "arn:aws:kms:eu-west-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321"
            }
```

シークレット ARN がある場合は、[get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html) Secrets Manager CLI コマンドを使用してシークレットの詳細を表示できます。

この例は、前のサンプル出力のシークレットの詳細を示しています。

**Example**  
Linux、macOS、Unix の場合:  

```
aws secretsmanager get-secret-value \
    --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'
```
Windows の場合:  

```
aws secretsmanager get-secret-value ^
    --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'
```

### RDS API
<a name="rds-secrets-manager-rotate-db-instance-api"></a>

RDS によって管理されているシークレットの ARN、ステータス、および KMS キーは、[DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) RDS オペレーションを使用して Secrets Manager で表示し、`DBClusterIdentifier` パラメータを DB クラスター識別子に設定できます。シークレットの詳細は、出力に含まれています。

シークレット ARN がある場合は、[GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) Secrets Manager オペレーションを使用してシークレットの詳細を表示できます。

## テナントデータベースのシークレットに関する詳細の表示
<a name="rds-secrets-manager-view-tenant"></a>

コンソール ([https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)) または AWS CLI ([get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html) Secrets Manager コマンド) を使用して自分のシークレットを取得できます。

AWS Secrets Manager の Amazon RDS によって管理されているシークレットの Amazon リソースネーム (ARN) は、Amazon RDS コンソール、AWS CLI、または Amazon RDS API にあります。

### コンソール
<a name="rds-secrets-manager-view-tenant-console"></a>

**テナントデータベースの AWS Secrets Manager で Amazon RDS によって管理されるシークレットの詳細を表示するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. テナントデータベースを含む DB インスタンスの名前を選択して、その詳細を表示します。

1. **[設定]** タブを選択します。

   **テナントデータベース**セクションで、テナントデータベースを検索し、**マスター認証情報の ARN** を表示します。

   **[Manage in Secrets Manager]** (Secrets Managerで管理) で管理リンクをクリックすると、Secrets Manager コンソールでシークレットを表示および管理できます。

### AWS CLI
<a name="rds-secrets-manager-view-tenant-cli"></a>

[describe-tenant-databases](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-tenant-databases.html) Amazon RDS AWS CLI コマンドを使用して、テナントデータベースの AWS Secrets Manager で Amazon RDS によって管理されるシークレットに関する次の情報を検索できます。
+ `SecretArn` – シークレットの ARN
+ `SecretStatus` – シークレットのステータス

  設定可能なステータス値は以下のとおりです。
  + `creating` – シークレットは作成中です。
  + `active` – シークレットは通常の使用とローテーションで利用可能です。
  + `rotating` – シークレットはローテーション中です。
  + `impaired` - シークレットはデータベースの認証情報へのアクセスに使用できますが、ローテーションはできません。例えば、アクセス許可が変更されて Amazon RDS がシークレットやシークレットの KMS キーにアクセスできなくなった場合、シークレットがこのステータスになる可能性があります。

    シークレットのステータスがこの場合は、ステータスの原因となった状態を修正できます。ステータスの原因となった条件を修正すると、ステータスは次のローテーションまで `impaired` のままです。または、テナントデータベースを変更してデータベース認証情報の自動管理をオフにしてから、テナントデータベースを再度変更してデータベース認証情報の自動管理をオンにすることもできます。テナントデータベースを変更するには、[modify-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-tenant-database.html) コマンドで `--manage-master-user-password` オプションを使用します。
+ `KmsKeyId` – シークレットの暗号化に使用する KMS キーの ARN。

特定の DB インスタンスにあるテナントデータベースの出力を表示するには、`--db-instance-identifier` オプションを指定します。特定のテナントデータベースの出力を表示する `--tenant-db-name` オプションを指定することもできます。この例は、テナントデータベースが使用するシークレットの出力を示しています。

**Example**  

```
1. aws rds describe-tenant-databases \
2.     --db-instance-identifier database-3 \
3.     --query "TenantDatabases[0].MasterUserSecret"
```
シークレットの出力例は次のとおりです。  

```
{
    "SecretArn": "arn:aws:secretsmanager:us-east-2:123456789012:secret:rds!db-ABC123",
    "SecretStatus": "active",
    "KmsKeyId": "arn:aws:kms:us-east-2:123456789012:key/aa11bb22-####-####-####-fedcba123456"
}
```

シークレット ARN がある場合は、[get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html) Secrets Manager コマンドを使用してシークレットの詳細を表示できます。

この例は、前のサンプル出力のシークレットの詳細を示しています。

**Example**  
Linux、macOS、Unix の場合:  

```
aws secretsmanager get-secret-value \
    --secret-id 'arn:aws:secretsmanager:us-east-2:123456789012:secret:rds!db-ABC123'
```
Windows の場合:  

```
aws secretsmanager get-secret-value ^
    --secret-id 'arn:aws:secretsmanager:us-east-2:123456789012:secret:rds!db-ABC123'
```

### Amazon RDS API
<a name="rds-secrets-manager-view-tenant-api"></a>

AWS Secrets Manager で Amazon RDS によって管理されているシークレットの ARN、ステータス、および KMS キーを表示するには、[DescribeTenantDatabases](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeTenantDatabases.html) オペレーションを使用し、`DBInstanceIdentifier` パラメータを DB インスタンス識別子に設定します。`TenantDBName` パラメータを特定のテナントデータベース名に設定することもできます。シークレットの詳細は、出力に含まれています。

シークレット ARN がある場合は、[GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) Secrets Manager オペレーションを使用してシークレットの詳細を表示できます。

## 利用可能なリージョンとバージョン
<a name="rds-secrets-manager-availability"></a>

機能の可用性とサポートは、各データベースエンジンの特定のバージョンと AWS リージョン によって異なります。Secrets Manager を Amazon RDS と統合した場合のバージョンとリージョンの可用性の詳細については、「[Secrets Manager と Amazon RDS の統合でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.SecretsManager.md)」を参照してください。