在 AWS Secrets Manager 中存储数据库凭证
在调用数据 API 时,您可以使用 AWS Secrets Manager 中的密钥传递集群或无服务器工作组的凭证。要通过此方式传递凭证,您需要指定密钥的名称或密钥的 Amazon 资源名称(ARN)。
要使用 Secrets Manager 存储凭证,您需要 SecretManagerReadWrite
托管式策略权限。有关最低权限的更多信息,请参阅《AWS Secrets Manager 用户指南》中的使用 AWS Secrets Manager 创建和管理密钥。
要将凭证存储在 Amazon Redshift 集群的密钥中
-
使用 AWS Secrets Manager 控制台创建包含集群凭证的密钥:
-
当您选择存储新密钥时,选择Redshift 集群的凭证。
-
将用户名(数据库用户)、密码和 数据库集群(集群标识符)的值存储在您的密钥中。
-
使用键
RedshiftDataFullAccess
标记密钥。AWS 托管式策略AmazonRedshiftDataFullAccess
只支持对使用键RedshiftDataFullAccess
进行标记的密钥执行操作secretsmanager:GetSecretValue
。
有关说明,请参阅《AWS Secrets Manager 用户指南》中的创建基本密钥。
-
-
使用 AWS Secrets Manager 控制台查看您创建的密钥的详细信息,或运行
aws secretsmanager describe-secret
AWS CLI 命令。记下密钥的名称和 ARN。您可以将其用于对数据 API 的调用中。
将凭证存储在无服务器工作组的密钥中
-
使用 AWS Secrets Manager AWS CLI 命令存储包含无服务器工作组凭证的密钥:
-
在文件中创建密钥,例如名为
mycreds.json
的 JSON 文件。在文件中提供用户名(数据库用户)和密码的值。{ "username": "myusername", "password": "mypassword" }
-
将值存储在密钥中,并使用键
RedshiftDataFullAccess
标记密钥。aws secretsmanager create-secret --name MyRedshiftSecret --tags Key="RedshiftDataFullAccess",Value="serverless" --secret-string file://mycreds.json
下面显示了输出。
{ "ARN": "arn:aws:secretsmanager:
region
:accountId
:secret:MyRedshiftSecret-mvLHxf
", "Name": "MyRedshiftSecret", "VersionId": "a1603925-e8ea-4739-9ae9-e509eEXAMPLE" }
有关更多信息,请参阅《AWS Secrets Manager 用户指南》中的使用 AWS CLI 创建基本密钥。
-
-
使用 AWS Secrets Manager 控制台查看您创建的密钥的详细信息,或运行
aws secretsmanager describe-secret
AWS CLI 命令。记下密钥的名称和 ARN。您可以将其用于对数据 API 的调用中。