创建 Amazon Secrets Manager 数据库密钥
在 Amazon RDS、Amazon Aurora、Amazon Redshift 或 Amazon DocumentDB 中创建用户后,您可以按照以下步骤将其凭证存储在 SSecrets Manager 中。当使用 Amazon CLI 或者某个 SDK 来存储密钥时,您必须以正确的 JSON 结构提供该密钥。当您使用控制台来存储某个数据库密钥时,Secrets Manager 会自动以正确的 JSON 结构创建该密钥。
提示
对于某些 由其他服务管理的密钥,可使用托管轮换。要使用 托管轮换,请首先通过管理服务来创建密钥。
当存储复制到其他区域的源数据库的数据库凭证时,密钥将包含源数据库的连接信息。然后复制密钥时,副本将是源密钥的副本,并且包含相同的连接信息。您可以在密钥中添加其他键值对以记录区域连接信息。
要创建密钥,您需要 SecretsManagerReadWrite Amazon 托管式策略授予的权限。
创建密钥(控制台)
通过 https://console.aws.amazon.com/secretsmanager/
打开 Secrets Manager 控制台。 -
选择 Store a new secret (存储新密钥)。
-
在 Choose secret type(选择密钥类型)页面上,执行以下操作:
-
对于 Secret type(密钥类型)中,请选择要存储的数据库凭证类型:
-
Amazon RDS 数据库(包括 Aurora)
-
Amazon DocumentDB 数据库
-
Amazon Redshift 集群
-
-
对于 Credentials(凭证),请输入数据库的凭证。
-
对于 Encryption key(加密密钥),选择 Secrets Manager 用于加密密钥值的 Amazon KMS key:
-
在大多数情况下,请选择 aws/secretsmanager 以将 Amazon 托管式密钥 用于 Secrets Manager。使用此密钥不产生任何费用。
-
如果您需要从另一个 Amazon Web Services 账户 处访问密钥,或者如果您想使用自己的 KMS 密钥,以便轮换密钥或对其应用密钥策略,请从列表中选择客户托管密钥,或者选择 Add New Key(添加新密钥)以创建密钥。有关使用客户托管密钥的成本的信息,请参阅 定价。
您必须具有该密钥的以下权限:
kms:Encrypt
、kms:Decrypt
和kms:GenerateDataKey
。有关跨账户访问的更多信息,请参阅不同账户中用户对 Amazon Secrets Manager 密钥的访问权限。
-
-
对于 Database(数据库),请选择您的数据库。
-
选择 Next(下一步)。
-
-
在 Configure secret(配置密钥)页面上,执行以下操作:
-
输入一个描述性的 Secret name(密钥名称)和 Description(说明)。密钥名称必须包含 1-512 个 Unicode 字符。
-
(可选)在标签部分中,在您的密钥中添加一个或多个标签。有关标记策略,请参阅 标记 Amazon Secrets Manager 密钥。请不要将敏感信息存储在标签中,因为它们未加密。
-
(可选)在资源权限,要将资源策略添加到您的密钥中,请选择编辑权限。有关更多信息,请参阅将权限策略附加到 Amazon Secrets Manager 密钥。
-
(可选)在 Replicate secret(复制密钥)中,要将密钥复制到另一个 Amazon Web Services 区域 中,请选择 Replicate secret(复制密钥)。您可以现在复制密钥,也可以回头再复制。有关更多信息,请参阅将密钥复制到其他区域。
-
选择 Next(下一步)。
-
-
(可选)在 Configure rotation(配置轮换)页面上,您可以启用自动轮换。您也可以现在保持关闭轮换,然后稍后将其打开。有关更多信息,请参阅轮换 密钥。选择 Next(下一步)。
-
在 Review (审核) 页上,审核您的密钥详细信息,然后选择 Store (存储)。
Secrets Manager 将返回到密钥列表。如果您的新密钥未显示,请选择 Refresh(刷新)按钮。
Amazon CLI
当您在命令 shell 中输入命令时,存在访问命令历史记录或实用程序可以访问您命令参数的风险。请参阅降低使用 Amazon CLI 存储 Amazon Secrets Manager 密钥的风险。
例 根据 JSON 文件中的凭证创建密钥
以下 create-secret
示例将根据文件中的凭证创建密钥。有关更多信息,请参阅《Amazon CLI 用户指南》中的从文件加载 Amazon CLI 参数。
要使 Secrets Manager 能够轮换密钥,您必须确保 JSON 符合密钥的 JSON 结构。
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" }
Amazon SDK
要通过使用其中一个 Amazon 软件开发工具包创建密钥,请使用 CreateSecret
操作。有关更多信息,请参阅Amazon 软件开发工具包。