AWS Secrets Manager へのデータベース認証情報の保存 - Amazon Redshift

AWS Secrets Manager へのデータベース認証情報の保存

Data API を呼び出すと、AWS Secrets Manager のシークレットを使用してクラスターまたはサーバーレスワークグループの認証情報を渡すことができます。この方法で認証情報を渡すには、シークレットの名前またはシークレットの Amazon リソースネーム (ARN) を指定します。

Secrets Manager で認証情報を保存するには、SecretManagerReadWriteマネージドポリシー権限が必要です。最小のアクセス許可についての詳細は、AWS Secrets Managerユーザーガイドの「Creating and Managing Secrets with AWS Secrets Manager」を参照してください。

Amazon Redshift クラスターのシークレットに認証情報を保存するには
  1. AWS Secrets Manager コンソールを使用して、クラスターの認証情報が含まれるシークレットを作成します。

    • [Store a new secret (新しいシークレットを保存する)] を選択する場合は、[Credentials for Redshift cluster (Redshift クラスターの認証情報)]を選択します。

    • [User name] (ユーザー名) (データベースユーザー)、[Password] (パスワード)、および [DB cluster] (DB クラスター) (クラスター識別子) の値をシークレットに保存します。

    • キー RedshiftDataFullAccess でシークレットにタグを付けます。AWS 管理ポリシー AmazonRedshiftDataFullAccess は、キー RedshiftDataFullAccess でタグ付けされたシークレットに対してのみアクション secretsmanager:GetSecretValue を許可します。

    手順については、AWS Secrets Managerユーザーガイド の「Creating a Basic Secret」を参照してください。

  2. AWS Secrets Manager コンソールを使用して、作成したシークレットの詳細を表示するか、aws secretsmanager describe-secretの AWS CLI コマンドを実行します。

    シークレットの名前と ARN を書き留めます。これらは、Data 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 を書き留めます。これらは、Data API への呼び出しで使用できます。