选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

在 AWS Secrets Manager 中设置 RDS 代理的数据库凭证 - Amazon Aurora

在 AWS Secrets Manager 中设置 RDS 代理的数据库凭证

Amazon RDS 中的 RDS 代理使用 AWS Secrets Manager 安全地存储和管理数据库凭证。您无需在应用程序中嵌入凭证,而是将代理与包含必要身份验证详细信息的 Secrets Manager 密钥相关联。您可以在 Aurora 数据库集群上,为代理连接到的每个数据库用户账户分别创建 Secrets Manager 密钥。

创建与 RDS 代理结合使用的密钥

在创建代理之前,必须先创建至少一个用于存储数据库凭证的密钥。

创建密钥
  1. 通过 https://console.aws.amazon.com/secretsmanager/ 打开 Secrets Manager 控制台。

  2. 选择存储新密钥

  3. 选择 Amazon RDS 数据库的凭证

  4. 输入用户名和密码。您输入的凭证必须与关联的 RDS 数据库中存在的数据库用户的凭证相匹配。RDS 代理使用这些凭证代表应用程序对数据库进行身份验证和建立连接。

    如果不匹配,您可以更新密钥来与数据库密码匹配。在更新密钥之前,尝试使用该密钥通过代理进行连接会失败,但使用其它有效密钥的连接仍然有效。

    注意

    对于 RDS For SQL Server,无论数据库实例排序规则设置如何,RDS 代理都需要在 Secrets Manager 中设置一个区分大小写的密钥。如果应用程序支持用户名使用不同的大小写,例如“Admin”和“admin”,则必须为每个用户名创建单独的密钥。RDS 代理不支持在客户端和代理之间进行不区分大小写的用户名身份验证。

    有关 SQL Server 中的排序规则的更多信息,请参阅 Microsoft SQL Server 文档。

  5. 对于数据库,选择密钥将访问的 Amazon RDS 数据库。

  6. 填写密钥的其它设置,然后选择存储。有关全面的说明,请参阅《AWS Secrets Manager User Guide》中的 Creating an AWS Secrets Manager secret

控制台

创建密钥
  1. 通过 https://console.aws.amazon.com/secretsmanager/ 打开 Secrets Manager 控制台。

  2. 选择存储新密钥

  3. 选择 Amazon RDS 数据库的凭证

  4. 输入用户名和密码。您输入的凭证必须与关联的 RDS 数据库中存在的数据库用户的凭证相匹配。RDS 代理使用这些凭证代表应用程序对数据库进行身份验证和建立连接。

    如果不匹配,您可以更新密钥来与数据库密码匹配。在更新密钥之前,尝试使用该密钥通过代理进行连接会失败,但使用其它有效密钥的连接仍然有效。

    注意

    对于 RDS For SQL Server,无论数据库实例排序规则设置如何,RDS 代理都需要在 Secrets Manager 中设置一个区分大小写的密钥。如果应用程序支持用户名使用不同的大小写,例如“Admin”和“admin”,则必须为每个用户名创建单独的密钥。RDS 代理不支持在客户端和代理之间进行不区分大小写的用户名身份验证。

    有关 SQL Server 中的排序规则的更多信息,请参阅 Microsoft SQL Server 文档。

  5. 对于数据库,选择密钥将访问的 Amazon RDS 数据库。

  6. 填写密钥的其它设置,然后选择存储。有关全面的说明,请参阅《AWS Secrets Manager User Guide》中的 Creating an AWS Secrets Manager secret

通过 AWS CLI 创建代理时,请指定相应密钥的 Amazon 资源名称(ARN)。请为代理可以访问的所有数据库用户账户执行此操作。在 AWS Management Console 中,根据描述性名称选择密钥。

  • 要创建与 RDS 代理结合使用的 Secrets Manager 密钥,请使用 create-secret 命令:

    aws secretsmanager create-secret \ --name "secret_name" \ --description "secret_description" \ --region region_name \ --secret-string '{"username":"db_user","password":"db_user_password"}'
  • 您也可以创建自定义密钥来加密 Secrets Manager 密钥。以下命令创建一个密钥示例。

    aws kms create-key --description "test-key" --policy '{ "Id":"kms-policy", "Version":"2012-10-17", "Statement": [ { "Sid":"Enable IAM User Permissions", "Effect":"Allow", "Principal":{"AWS":"arn:aws:iam::account_id:root"}, "Action":"kms:*","Resource":"*" }, { "Sid":"Allow access for Key Administrators", "Effect":"Allow", "Principal": { "AWS": ["$USER_ARN","arn:aws:iam:account_id::role/Admin"] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource":"*" }, { "Sid":"Allow use of the key", "Effect":"Allow", "Principal":{"AWS":"$ROLE_ARN"}, "Action":["kms:Decrypt","kms:DescribeKey"], "Resource":"*" } ] }'

例如,以下命令为两个数据库用户创建 Secrets Manager 密钥:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}'

要创建使用自定义 AWS KMS 密钥加密的这些密钥,请使用以下命令:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' \ --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}' \ --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

要查看您的 AWS 账户拥有的密钥,请使用 list-secrets 命令:

aws secretsmanager list-secrets

使用 CLI 创建代理时,将一个或多个密钥的 Amazon Resource Name (ARN) 传递给了 --auth 参数。以下示例展示了如何准备报告,其中仅包含 AWS 账户所拥有的每个密钥的名称和 ARN。此示例使用了 --output table 版本 2 中提供的 AWS CLI 参数。如果您使用的是 AWS CLI 版本 1,请改用 --output text

aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table

要确认密钥包含格式正确的凭证,请使用 get-secret-value 命令。将 your_secret_name 替换为密钥的短名称或 ARN。

aws secretsmanager get-secret-value --secret-id your_secret_name

输出包含一行 JSON 编码值,类似于以下内容:

... "SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}", ...

通过 AWS CLI 创建代理时,请指定相应密钥的 Amazon 资源名称(ARN)。请为代理可以访问的所有数据库用户账户执行此操作。在 AWS Management Console 中,根据描述性名称选择密钥。

  • 要创建与 RDS 代理结合使用的 Secrets Manager 密钥,请使用 create-secret 命令:

    aws secretsmanager create-secret \ --name "secret_name" \ --description "secret_description" \ --region region_name \ --secret-string '{"username":"db_user","password":"db_user_password"}'
  • 您也可以创建自定义密钥来加密 Secrets Manager 密钥。以下命令创建一个密钥示例。

    aws kms create-key --description "test-key" --policy '{ "Id":"kms-policy", "Version":"2012-10-17", "Statement": [ { "Sid":"Enable IAM User Permissions", "Effect":"Allow", "Principal":{"AWS":"arn:aws:iam::account_id:root"}, "Action":"kms:*","Resource":"*" }, { "Sid":"Allow access for Key Administrators", "Effect":"Allow", "Principal": { "AWS": ["$USER_ARN","arn:aws:iam:account_id::role/Admin"] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource":"*" }, { "Sid":"Allow use of the key", "Effect":"Allow", "Principal":{"AWS":"$ROLE_ARN"}, "Action":["kms:Decrypt","kms:DescribeKey"], "Resource":"*" } ] }'

例如,以下命令为两个数据库用户创建 Secrets Manager 密钥:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}'

要创建使用自定义 AWS KMS 密钥加密的这些密钥,请使用以下命令:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' \ --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}' \ --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

要查看您的 AWS 账户拥有的密钥,请使用 list-secrets 命令:

aws secretsmanager list-secrets

使用 CLI 创建代理时,将一个或多个密钥的 Amazon Resource Name (ARN) 传递给了 --auth 参数。以下示例展示了如何准备报告,其中仅包含 AWS 账户所拥有的每个密钥的名称和 ARN。此示例使用了 --output table 版本 2 中提供的 AWS CLI 参数。如果您使用的是 AWS CLI 版本 1,请改用 --output text

aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table

要确认密钥包含格式正确的凭证,请使用 get-secret-value 命令。将 your_secret_name 替换为密钥的短名称或 ARN。

aws secretsmanager get-secret-value --secret-id your_secret_name

输出包含一行 JSON 编码值,类似于以下内容:

... "SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}", ...
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。