

# 使用 Amazon RDS 和 AWS Secrets Manager 管理密码
<a name="rds-secrets-manager"></a>

Amazon RDS 集成了 Secrets Manager，以管理您的数据库实例和多可用区数据库集群的主用户密码。

**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 管理数据库实例的主用户密码](#rds-secrets-manager-db-instance)
+ [使用 Secrets Manager 管理 RDS for Oracle 租户数据库的主用户密码](#rds-secrets-manager-tenant)
+ [使用 Secrets Manager 管理多可用区数据库集群的主用户密码](#rds-secrets-manager-db-cluster)
+ [轮换数据库实例的主用户密码密钥](#rds-secrets-manager-rotate-db-instance)
+ [轮换多可用区数据库集群的主用户密码密钥](#rds-secrets-manager-rotate-db-cluster)
+ [查看有关数据库实例的密钥的详细信息](#rds-secrets-manager-view-db-instance)
+ [查看有关多可用区数据库集群的密钥的详细信息](#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 管理主用户密码：
+ 在源数据库或数据库集群使用 Secrets Manager 管理凭证时创建只读副本。这适用于除 RDS for SQL Server 之外的所有数据库引擎。
+ 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/](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)。

当您在 Secrets Manager 中存储数据库密钥时，您的 AWS 账户会产生费用。有关定价的信息，请参阅 [AWS Secrets Manager 定价](https://aws.amazon.com/secrets-manager/pricing)。

在执行以下操作之一时，您可以指定 RDS 在 Secrets Manager 中管理 Amazon RDS 数据库实例或多可用区数据库集群的主用户密码：
+ 创建数据库实例
+ 创建多可用区数据库集群
+ 在 RDS for Oracle CDB 中创建租户数据库
+ 修改数据库实例
+ 修改多可用区数据库集群
+ 修改租户数据库（仅限 RDS for Oracle）
+ 从 Amazon S3 还原数据库实例
+ 将数据库实例从快照还原到某个时间点（仅限 RDS for Oracle）

当您指定 RDS 在 Secrets Manager 中管理主用户密码时，RDS 会生成密码并将其存储在 Secrets Manager 中。您可以直接与密钥交互以检索主用户的凭证。您还可以指定客户托管密钥来加密密钥，或者使用 Secrets Manager 提供的 KMS 密钥。

RDS 管理密钥的设置，默认情况下每七天轮换一次密钥。您可以修改某些设置，例如轮换计划。如果您删除在 Secrets Manager 中管理密钥的数据库实例，则该密钥及其关联的元数据也会被删除。

要使用密钥中的凭证连接到数据库实例或多可用区数据库集群，您可以从 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 集成相关的操作。您可以创建 IAM policy，以便授予权限对所需的指定资源执行特定的 API 操作。然后，可以将这些策略附加到需要这些权限的 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 条件密钥强制 RDS 在 AWS Secrets Manager 中管理主用户密码。除非主用户密码由 RDS 在 Secrets Manager 中进行管理，否则以下策略不支持用户创建或还原数据库实例或数据库集群，或者创建或修改租户数据库。

------
#### [ 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 管理数据库实例的主用户密码
<a name="rds-secrets-manager-db-instance"></a>

执行以下操作时，可以配置 RDS 在 Secrets Manager 中管理主用户密码：
+ [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)
+ [修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)
+ [将备份还原到 Amazon RDS for MySQL 数据库实例](MySQL.Procedural.Importing.md)
+ [还原到数据库实例](USER_RestoreFromSnapshot.md)（仅限 RDS for Oracle）
+ [将 Amazon RDS 的数据库实例还原到指定时间](USER_PIT.md)（仅限 RDS for Oracle）

您可以使用 RDS 控制台、AWS CLI 或 RDS API 来执行上述操作。

### 控制台
<a name="rds-secrets-manager-db-instance-console"></a>

按照说明使用 RDS 控制台创建或修改数据库实例：
+ [创建数据库实例](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)
+ [修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)
+ [将数据从 Amazon S3 导入到新的 MySQL 数据库实例](MySQL.Procedural.Importing.md#MySQL.Procedural.Importing.PerformingImport)

当您使用 RDS 控制台执行其中一项操作时，可以在 Secrets Manager 中指定主用户密码由 RDS 管理。当您创建或还原数据库实例时，请在**凭证设置**中选择**在 AWS Secrets Manager 中管理主凭证**。修改数据库实例时，请在**设置**中选择**在 AWS Secrets Manager 中管理主凭证**。

下图是在创建或还原数据库实例时**在 AWS Secrets Manager 中管理主凭证**设置的示例。

![\[在 AWS Secrets Manager 中管理主凭证\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/secrets-manager-credential-settings-db-instance.png)


当您选择此选项时，RDS 会生成主用户密码并在其整个生命周期中在 Secrets Manager 中对其进行管理。

![\[在所选的 AWS Secrets Manager 中管理主凭证\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-create-db-instance.png)


您可以选择使用 Secrets Manager 提供的 KMS 密钥或您创建的客户托管密钥对密钥进行加密。在 RDS 管理数据库实例的数据库凭证后，您无法更改用于加密密钥的 KMS 密钥。

您可以选择其他设置来满足您的要求。有关创建数据库实例时的可用设置的更多信息，请参阅[数据库实例的设置](USER_CreateDBInstance.Settings.md)。有关修改数据库实例时的可用设置的更多信息，请参阅[数据库实例的设置](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 密钥标识符是密钥 ARN、密钥 ID、别名 ARN 或者 KMS 密钥的别名。要使用不同 AWS 账户中的密钥，请指定密钥 ARN 或别名 ARN。在 RDS 管理数据库实例的数据库凭证后，您无法更改用于加密密钥的 KMS 密钥。

您可以选择其他设置来满足您的要求。有关创建数据库实例时的可用设置的更多信息，请参阅 [数据库实例的设置](USER_CreateDBInstance.Settings.md)。有关修改数据库实例时的可用设置的更多信息，请参阅 [数据库实例的设置](USER_ModifyInstance.Settings.md)。

以下示例创建一个数据库实例，并指定 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 密钥标识符是密钥 ARN、密钥 ID、别名 ARN 或者 KMS 密钥的别名。要使用不同 AWS 账户中的密钥，请指定密钥 ARN 或别名 ARN。在 RDS 管理数据库实例的数据库凭证后，您无法更改用于加密密钥的 KMS 密钥。

## 使用 Secrets Manager 管理 RDS for Oracle 租户数据库的主用户密码
<a name="rds-secrets-manager-tenant"></a>

执行以下操作时，可以配置 RDS 在 Secrets Manager 中管理主用户密码：
+ [将 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/zh_cn/AmazonRDS/latest/UserGuide/images/secrets-manager-credential-settings-db-instance.png)


当您选择此选项时，RDS 会生成主用户密码并在其整个生命周期中在 Secrets Manager 中对其进行管理。

![\[在所选的 AWS Secrets Manager 中管理主凭证\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-create-db-instance.png)


您可以选择使用 Secrets Manager 提供的 KMS 密钥或您创建的客户托管密钥对密钥进行加密。在 RDS 管理租户数据库的数据库凭证后，您无法更改用于加密密钥的 KMS 密钥。

您可以选择其他设置来满足您的要求。有关创建租户数据库时的可用设置的更多信息，请参阅[数据库实例的设置](USER_CreateDBInstance.Settings.md)。有关修改租户数据库时的可用设置的更多信息，请参阅[数据库实例的设置](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 密钥标识符是密钥 ARN、密钥 ID、别名 ARN 或者 KMS 密钥的别名。要使用不同 AWS 账户中的密钥，请指定密钥 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 密钥标识符是密钥 ARN、密钥 ID、别名 ARN 或者 KMS 密钥的别名。要使用不同 AWS 账户中的密钥，请指定密钥 ARN 或别名 ARN。在 RDS 管理租户数据库的数据库凭证后，您无法更改用于加密密钥的 KMS 密钥。

## 使用 Secrets Manager 管理多可用区数据库集群的主用户密码
<a name="rds-secrets-manager-db-cluster"></a>

执行以下操作时，可以配置 RDS 在 Secrets Manager 中管理主用户密码：
+ [创建 Amazon RDS 的多可用区数据库集群](create-multi-az-db-cluster.md)
+ [修改 Amazon RDS 的多可用区数据库集群](modify-multi-az-db-cluster.md)

您可以使用 RDS 控制台、AWS CLI 或 RDS API 来执行这些操作。

### 控制台
<a name="rds-secrets-manager-db-cluster-console"></a>

按照说明使用 RDS 控制台创建或修改多可用区数据库集群：
+ [创建数据库集群](create-multi-az-db-cluster.md#create-multi-az-db-cluster-creating)
+ [修改 Amazon RDS 的多可用区数据库集群](modify-multi-az-db-cluster.md)

当您使用 RDS 控制台执行其中一项操作时，可以在 Secrets Manager 中指定主用户密码由 RDS 管理。要在创建数据库集群时执行此操作，请在**凭证设置**中选择**在 AWS Secrets Manager 中管理主凭证**。修改数据库集群时，请在**设置**中选择**在 AWS Secrets Manager 中管理主凭证**。

下图是在创建数据库集群时**在 AWS Secrets Manager 中管理主凭证**的示例。

![\[在 AWS Secrets Manager 中管理主凭证\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/secrets-manager-credential-settings.png)


当您选择此选项时，RDS 会生成主用户密码并在其整个生命周期中在 Secrets Manager 中对其进行管理。

![\[在所选的 AWS Secrets Manager 中管理主凭证\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-create.png)


您可以选择使用 Secrets Manager 提供的 KMS 密钥或您创建的客户托管密钥对密钥进行加密。在 RDS 管理数据库集群的数据库凭证后，您无法更改用于加密密钥的 KMS 密钥。

您可以选择其他设置来满足您的要求。

有关创建多可用区数据库集群时的可用设置的更多信息，请参阅 [创建多可用区数据库集群的设置](create-multi-az-db-cluster.md#create-multi-az-db-cluster-settings)。有关修改多可用区数据库集群时的可用设置的更多信息，请参阅 [修改多可用区数据库集群的设置](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 密钥标识符是密钥 ARN、密钥 ID、别名 ARN 或者 KMS 密钥的别名。要使用不同 AWS 账户中的密钥，请指定密钥 ARN 或别名 ARN。在 RDS 管理数据库集群的数据库凭证后，您无法更改用于加密密钥的 KMS 密钥。

您可以选择其他设置来满足您的要求。

有关创建多可用区数据库集群时的可用设置的更多信息，请参阅 [创建多可用区数据库集群的设置](create-multi-az-db-cluster.md#create-multi-az-db-cluster-settings)。有关修改多可用区数据库集群时的可用设置的更多信息，请参阅 [修改多可用区数据库集群的设置](modify-multi-az-db-cluster.md#modify-multi-az-db-cluster-settings)。

此示例创建一个多可用区数据库集群，并指定 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 密钥标识符是密钥 ARN、密钥 ID、别名 ARN 或者 KMS 密钥的别名。要使用不同 AWS 账户中的密钥，请指定密钥 ARN 或别名 ARN。在 RDS 管理数据库集群的数据库凭证后，您无法更改用于加密密钥的 KMS 密钥。

## 轮换数据库实例的主用户密码密钥
<a name="rds-secrets-manager-rotate-db-instance"></a>

当 RDS 轮换主用户密码密钥时，Secrets Manager 会为现有密钥生成一个新的密钥版本。密钥的新版本包含新的主用户密码。Amazon RDS 更改数据库实例的主用户密码以匹配新密钥版本的密码。

您可以立即轮换密钥，而不必等待计划的轮换。要在 Secrets Manager 中轮换主用户密码密钥，请修改数据库实例。有关修改数据库实例的信息，请参阅[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)。

您可以使用 RDS 控制台、AWS CLI 或 RDS API 立即轮换主用户密码密钥。新密码长度始终为 28 个字符，包含至少一个大写和小写字母、一个数字和一个标点符号。

### 控制台
<a name="rds-secrets-manager-rotate-db-instance-console"></a>

要使用 RDS 控制台轮换主用户密码密钥，请修改数据库实例并在 **Settings**（设置）中选择 **Rotate secret immediately**（立即轮换密钥）。

![\[立即轮换主用户密码密钥\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-rotate.png)


按照[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)中的说明使用 RDS 控制台修改数据库实例。您必须在确认页面上选择 **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`。

## 轮换多可用区数据库集群的主用户密码密钥
<a name="rds-secrets-manager-rotate-db-cluster"></a>

当 RDS 轮换主用户密码密钥时，Secrets Manager 会为现有密钥生成一个新的密钥版本。密钥的新版本包含新的主用户密码。Amazon RDS 更改多可用区数据库集群的主用户密码，以匹配新密钥版本的密码。

您可以立即轮换密钥，而不必等待计划的轮换。要在 Secrets Manager 中轮换主用户密码密钥，请修改多可用区数据库集群。有关修改多可用区数据库集群的信息，请参阅 [修改 Amazon RDS 的多可用区数据库集群](modify-multi-az-db-cluster.md)。

您可以使用 RDS 控制台、AWS CLI 或 RDS API 立即轮换主用户密码密钥。新密码长度始终为 28 个字符，包含至少一个大写和小写字母、一个数字和一个标点符号。

### 控制台
<a name="rds-secrets-manager-rotate-db-instance-console"></a>

要使用 RDS 控制台轮换主用户密码密钥，请修改多可用区数据库集群并在 **Settings**（设置）中选择 **Rotate secret immediately**（立即轮换密钥）。

![\[立即轮换主用户密码密钥\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/secrets-manager-integration-rotate-taz-cluster.png)


按照[修改 Amazon RDS 的多可用区数据库集群](modify-multi-az-db-cluster.md)中的说明使用 RDS 控制台修改多可用区数据库集群。您必须在确认页面上选择 **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`。

## 查看有关数据库实例的密钥的详细信息
<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 控制台、AWS CLI 或 RDS API 找到 RDS 在 Secrets Manager 中管理的密钥的 Amazon 资源名称（ARN）。

### 控制台
<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. 在导航窗格中，选择 **Databases (数据库)**。

1. 选择数据库实例的名称以显示其详细信息。

1. 选择**配置**选项卡。

   在 **Master Credentials ARN**（主凭证 ARN）中，您可以查看密钥 ARN。  
![\[查看有关 RDS 在 Secrets Manager 中管理的密钥的详细信息\]](http://docs.aws.amazon.com/zh_cn/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 命令找到有关 RDS 在 Secrets Manager 中管理的密钥的以下信息：
+ `SecretArn` – 密钥的 ARN
+ `SecretStatus` – 密钥的状态

  可能的状态值包括：
  + `creating` – 密钥正在创建中。
  + `active` – 密钥可用于正常使用和轮换。
  + `rotating` – 密钥正在轮换。
  + `impaired` – 密钥可用于访问数据库凭证，但不能轮换。例如，如果更改权限以使 RDS 无法再访问密钥或密钥的 KMS 密钥，则密钥可能具有此状态。

    当密钥具有此状态时，您可以更正导致该状态的条件。如果您更正导致状态的条件，则状态会一直保持为 `impaired`，直至下一次轮换。或者，您可以修改数据库实例以关闭数据库凭证的自动管理，然后再次修改数据库实例以启用数据库凭证的自动管理。要修改数据库实例，请在 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令中使用 `--manage-master-user-password` 选项。
+ `KmsKeyId` – 用于加密密钥的 KMS 密钥的 ARN

指定 `--db-instance-identifier` 选项可显示特定数据库实例的输出。此示例显示数据库实例使用的密钥的输出。

**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>

您可以使用 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作并将 `DBInstanceIdentifier` 参数设置为数据库实例标识符，查看 RDS 在 Secrets Manager 中管理的密钥的 ARN、状态和 KMS 密钥。输出中包含有关密钥的详细信息。

当您拥有密钥 ARN 时，您可以使用 [GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) Secrets Manager 操作查看有关该密钥的详细信息。

## 查看有关多可用区数据库集群的密钥的详细信息
<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 控制台、AWS CLI 或 RDS API 找到 RDS 在 Secrets Manager 中管理的密钥的 Amazon 资源名称（ARN）。

### 控制台
<a name="rds-secrets-manager-view-db-cluster-console"></a>

**查看有关 Secrets Manager 中 RDS 管理的密钥的详细信息**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Databases (数据库)**。

1. 选择多可用区数据库集群的名称以显示其详细信息。

1. 选择**配置**选项卡。

   在 **Master Credentials ARN**（主凭证 ARN）中，您可以查看密钥 ARN。  
![\[查看有关 RDS 在 Secrets Manager 中管理的密钥的详细信息\]](http://docs.aws.amazon.com/zh_cn/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-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 命令查找有关 RDS 在 Secrets Manager 中管理的密钥的以下信息：
+ `SecretArn` – 密钥的 ARN
+ `SecretStatus` – 密钥的状态

  可能的状态值包括：
  + `creating` – 密钥正在创建中。
  + `active` – 密钥可用于正常使用和轮换。
  + `rotating` – 密钥正在轮换。
  + `impaired` – 密钥可用于访问数据库凭证，但不能轮换。例如，如果更改权限以使 RDS 无法再访问密钥或密钥的 KMS 密钥，则密钥可能具有此状态。

    当密钥具有此状态时，您可以更正导致该状态的条件。如果您更正导致状态的条件，则状态会一直保持为 `impaired`，直至下一次轮换。或者，您可以修改数据库集群以关闭数据库凭证的自动管理，然后再次修改数据库集群以开启数据库凭证的自动管理。要修改数据库集群，请在 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 命令中使用 `--manage-master-user-password` 选项。
+ `KmsKeyId` – 用于加密密钥的 KMS 密钥的 ARN

指定 `--db-cluster-identifier` 选项可显示特定数据库集群的输出。此示例显示数据库集群使用的密钥的输出。

**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>

您可以使用 [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) RDS 操作并将 `DBClusterIdentifier` 参数设置为数据库集群标识符，查看 RDS 在 Secrets Manager 中管理的密钥的 ARN、状态和 KMS 密钥。输出中包含有关密钥的详细信息。

当您拥有密钥 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 命令）检索您的密钥。

您可以使用 Amazon RDS 控制台、AWS CLI 或 Amazon RDS API 找到 Amazon RDS 在 AWS Secrets Manager 中管理的密钥的 Amazon 资源名称（ARN）。

### 控制台
<a name="rds-secrets-manager-view-tenant-console"></a>

**查看有关 Amazon RDS 在 AWS Secrets Manager 中管理的租户数据库密钥的详细信息**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **Databases (数据库)**。

1. 选择包含租户数据库的数据库实例的名称，即可显示其详细信息。

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 命令找到有关 Amazon RDS 在 AWS Secrets Manager 中管理的租户数据库密钥的以下信息：
+ `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-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 AWS CLI 命令查看有关该密钥的详细信息。

此示例显示先前示例输出中的密钥的详细信息。

**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>

您可以使用 [DescribeTenantDatabases](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeTenantDatabases.html) 操作并将 `DBInstanceIdentifier` 参数设置为数据库实例标识符，查看 Amazon RDS 在 AWS Secrets Manager 中管理的密钥的 ARN、状态和 KMS 密钥。您也可以将 `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 进行集成的区域和数据库引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.SecretsManager.md)。