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 クラスターのシークレットに認証情報を保存するには
-
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」を参照してください。
-
-
AWS Secrets Manager コンソールを使用して、作成したシークレットの詳細を表示するか、
aws secretsmanager describe-secret
の AWS CLI コマンドを実行します。シークレットの名前と ARN を書き留めます。これらは、Data 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 を書き留めます。これらは、Data API への呼び出しで使用できます。