在 AWS Secrets Manager 中存储数据库凭证 - Amazon Redshift

在 AWS Secrets Manager 中存储数据库凭证

在调用数据 API 时,您可以使用 AWS Secrets Manager 中的密钥传递集群或无服务器工作组的凭证。要通过此方式传递凭证,您需要指定密钥的名称或密钥的 Amazon 资源名称(ARN)。

要使用 Secrets Manager 存储凭证,您需要 SecretManagerReadWrite 托管式策略权限。有关最低权限的更多信息,请参阅《AWS Secrets Manager 用户指南》中的使用 AWS Secrets Manager 创建和管理密钥

要将凭证存储在 Amazon Redshift 集群的密钥中
  1. 使用 AWS Secrets Manager 控制台创建包含集群凭证的密钥:

    • 当您选择存储新密钥时,选择Redshift 集群的凭证

    • 用户名(数据库用户)、密码数据库集群(集群标识符)的值存储在您的密钥中。

    • 使用键 RedshiftDataFullAccess 标记密钥。AWS 托管式策略 AmazonRedshiftDataFullAccess 只支持对使用键 RedshiftDataFullAccess 进行标记的密钥执行操作 secretsmanager:GetSecretValue

    有关说明,请参阅《AWS Secrets Manager 用户指南》中的创建基本密钥

  2. 使用 AWS Secrets Manager 控制台查看您创建的密钥的详细信息,或运行 aws secretsmanager describe-secret AWS CLI 命令。

    记下密钥的名称和 ARN。您可以将其用于对数据 API 的调用中。

将凭证存储在无服务器工作组的密钥中
  1. 使用 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 创建基本密钥

  2. 使用 AWS Secrets Manager 控制台查看您创建的密钥的详细信息,或运行 aws secretsmanager describe-secret AWS CLI 命令。

    记下密钥的名称和 ARN。您可以将其用于对数据 API 的调用中。