Amazon RDS および AWS Secrets Manager によるパスワード管理 - Amazon Relational Database Service

Amazon RDS および AWS Secrets Manager によるパスワード管理

Amazon RDS は Secrets Manager と統合して、DB インスタンスとマルチ AZ DB クラスターのマスターユーザーパスワードを管理します。

Secrets Manager と Amazon RDS の統合に関する制限事項

Secrets Manager によるマスターユーザーパスワードの管理は、以下の機能ではサポートされていません。

  • RDS for SQL Server を除くすべての DB エンジンでは、ソース DB または DB クラスターが Secrets Manager で認証情報を管理する場合にリードレプリカを作成します

  • Amazon RDS ブルー/グリーンデプロイ

  • Amazon RDS Custom

  • Oracle Data Guard のスイッチオーバー

  • CDB 搭載の RDS for Oracle

AWS Secrets Manager を使用したマスターユーザーパスワード管理の概要

AWS Secrets Manager を使用すると、コード内のハードコードされた認証情報 (データベースパスワードを含む) を Secrets Manager への API コールで置き換えて、プログラムでシークレットを取得することができます。Secrets Manager の詳細については、AWS Secrets Manager ユーザーガイドを参照してください。

データベースシークレットを Secrets Manager に保存すると、AWS アカウント に料金が発生します。料金については、「AWS Secrets Manager 料金表」を参照してください。

次のいずれかのオペレーションを実行するときに、RDS が Amazon RDS DB インスタンスまたはマルチ AZ DB クラスター のマスターユーザーパスワードを Secrets Manager で管理するように指定できます。

  • DB インスタンスを作成する

  • マルチ AZ DB クラスターを作成する

  • DB インスタンスを変更する

  • マルチ AZ DB クラスターを変更する

  • DB インスタンスを Amazon S3 から復元する

RDS が Secrets Manager でマスターユーザーパスワードを管理するように指定すると、RDS はパスワードを生成して Secrets Manager に保存します。シークレットを直接操作して、マスターユーザーの認証情報を取得できます。また、カスタマーマネージドキーを指定してシークレットを暗号化したり、Secrets Manager が提供する KMS キーを使用したりすることもできます。

RDS はシークレットの設定を管理し、デフォルトで 7 日ごとにシークレットをローテーションします。ローテーションスケジュールなど、一部の設定を変更できます。Secrets Manager でシークレットを管理する DB インスタンスを削除すると、シークレットとそれに関連するメタデータも削除されます。

シークレット内の認証情報を使用して DB インスタンスまたはマルチ AZ DB クラスターに接続するには、Secrets Manager からシークレットを取得します。詳細については、AWS Secrets Manager ユーザーガイドの「AWS Secrets Manager からのシークレットの取得AWS Secrets Manager シークレットの認証情報を使用して SQL データベースに接続する」を参照してください。

Secrets Manager でマスターユーザーパスワードを管理する利点

Secrets Manager で RDS マスターユーザーのパスワードを管理することには、次の利点があります。

  • RDS はデータベース認証情報を自動的に生成します。

  • RDS はデータベース認証情報を AWS Secrets Manager に自動的に保存および管理します。

  • RDS は、アプリケーションを変更することなく、データベースの認証情報を定期的にローテーションします。

  • Secrets Manager は、データベースの認証情報を人間のアクセスやプレーンテキスト表示から保護します。

  • Secrets Manager では、データベース接続用のシークレット内のデータベース認証情報を取得できます。

  • Secrets Manager では、IAM を使用してシークレット内のデータベース認証情報へのアクセスをきめ細かく制御できます。

  • 必要に応じて、さまざまな KMS キーを使用して、データベースの暗号化を資格情報の暗号化から分離できます。

  • データベース認証情報の手動管理やローテーションが不要になります。

  • AWS CloudTrail と Amazon CloudWatch を使用すると、データベースの認証情報を簡単にモニタリングできます。

Secrets Manager のメリットの詳細については、「AWS Secrets Manager ユーザーガイド」を参照してください。

Secrets Manager の統合に必要なアクセス許可

Secrets Manager の統合に関連するオペレーションを実行するには、ユーザーが必要なアクセス許可を持っている必要があります。必要な特定のリソースの API オペレーションを実行するためのアクセス許可を付与する IAM ポリシーを作成できます。その後、これらのポリシーを、それらのアクセス許可を必要とする IAM アクセス許可セットまたはロールにアタッチできます。詳細については、「Amazon RDS での Identity and Access Management」を参照してください。

作成、変更、または復元オペレーションの場合、Amazon RDS が Secrets Manager でマスターユーザーパスワードを管理するように指定するユーザーには、次のオペレーションを実行するアクセス許可が必要です。

  • kms:DescribeKey

  • secretsmanager:CreateSecret

  • secretsmanager:TagResource

作成、変更、または復元オペレーションの場合、Secrets Manager でシークレットを暗号化するカスタマーマネージドキーを指定するユーザーには、次のオペレーションを実行するアクセス許可が必要です。

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:CreateGrant

変更オペレーションの場合、Secrets Manager でマスターユーザーパスワードをローテーションするユーザーには、次のオペレーションを実行するアクセス許可が必要です。

  • secretsmanager:RotateSecret

RDS によるマスターユーザーパスワードの管理の強化AWS Secrets Manager

IAM 条件キーを使用して、AWS Secrets Manager のマスターユーザーパスワードの RDS 管理を実施できます。次のポリシーでは、マスターユーザーパスワードが RDS で Secrets Manager で管理されていない限り、ユーザーが DB インスタンスまたは DB クラスターを作成または復元することはできません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["rds:CreateDBInstance", "rds:CreateDBCluster", "rds:RestoreDBInstanceFromS3", "rds:RestoreDBClusterFromS3"], "Resource": "*", "Condition": { "Bool": { "rds:ManageMasterUserPassword": false } } } ] }
注記

このポリシーは、作成時に AWS Secrets Manager でのパスワード管理を強制します。ただし、インスタンスを変更することで、Secrets Manager の統合を無効にして、マスターパスワードを手動で設定することができます。

これを防ぐには、ポリシーのアクションブロックに rds:ModifyDBInstancerds:ModifyDBCluster を含めます。これにより、Secrets Manager 統合が有効になっていない既存のインスタンスには、以降の変更ができなくなることに注意してください。

IAM ポリシーでの条件キーの使用の詳細については、「Amazon RDS のポリシー条件キー」および「ポリシー例: 条件キーの使用」を参照してください。

Secrets Manager による DB インスタンスのマスターユーザーパスワードの管理

以下のアクションを実行すると、Secrets Manager でマスターユーザーパスワードの RDS 管理を設定できます。

これらのアクションを実行するには、RDS コンソール、AWS CLI、または RDS API を使用できます。

RDS コンソールで DB インスタンスを作成または変更する手順に従います。

RDS コンソールを使用してこれらのオペレーションのいずれかを実行する場合、マスターユーザーパスワードを RDS が Secrets Manager で管理するように指定できます。これを行うには、DB インスタンスを作成または復元するときに、[Credential settings] (認証情報設定) で [Manage master credentials in AWS Secrets Manager] ( でマスター認証情報を管理する) を選択します。DB インスタンスを変更するときは、[Settings] (設定) で [Manage master credentials in AWS Secrets Manager] ( でマスター認証情報を管理する) を選択します。

以下の図は、DB インスタンスを作成または復元するときの AWS Secrets Manager でマスター認証情報を管理する 設定の例です。


						AWS Secrets Manager でマスター認証情報を管理する

このオプションを選択すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。


						選択した AWS Secrets Manager マスター認証情報を管理する

シークレットは、Secrets Manager が提供する KMS キーを使用して暗号化するか、自分で作成したカスタマーマネージドキーを使用して暗号化するかを選択できます。RDS で DB インスタンスのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。DB インスタンスの作成時に使用できる設定の詳細については、「DB インスタンスの設定」を参照してください。DB インスタンスを変更するときに使用できる設定の詳細については、「DB インスタンスの設定」を参照してください。

Secrets Manager で RDS を使用してマスターユーザーパスワードを管理するには、以下のいずれかの AWS CLI コマンドで --manage-master-user-password オプションを指定します。

これらのコマンドで --manage-master-user-password オプションを指定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。--master-user-secret-kms-key-id オプションを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS で DB インスタンスのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。DB インスタンスの作成時に使用できる設定の詳細については、「DB インスタンスの設定」を参照してください。DB インスタンスを変更するときに使用できる設定の詳細については、「DB インスタンスの設定」を参照してください。

この例では DB インスタンスを作成し、RDS が Secrets Manager でマスターユーザーパスワードを管理するように指定します。シークレットは、Secrets Manager によって提供される KMS キーを使用して暗号化されます。

Linux、macOS、Unix の場合:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --engine mysql \ --engine-version 8.0.30 \ --db-instance-class db.r5b.large \ --allocated-storage 200 \ --manage-master-user-password

Windows の場合:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --engine mysql ^ --engine-version 8.0.30 ^ --db-instance-class db.r5b.large ^ --allocated-storage 200 ^ --manage-master-user-password

RDS が Secrets Manager のマスターユーザーパスワードを管理するように指定するには、次の RDS API オペレーションのいずれかで ManageMasterUserPassword パラメータを true に設定します。

これらのオペレーションのいずれかで ManageMasterUserPassword パラメータを true に設定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。MasterUserSecretKmsKeyId パラメータを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS で DB インスタンスのデータベース認証情報を管理したら、シークレットの暗号化で使用されている KMS キーを変更することはできません。

Secrets Manager によるマルチ AZ DB クラスターのマスターユーザーパスワードの管理

以下のアクションを実行すると、Secrets Manager でマスターユーザーパスワードの RDS 管理を設定できます。

これらのアクションを実行するには、RDS コンソール、AWS CLI、または RDS API を使用できます。

RDS コンソールを使用してマルチ AZ DB クラスターを作成または変更する手順に従います。

RDS コンソールを使用してこれらのオペレーションのいずれかを実行する場合、マスターユーザーパスワードが RDS で Secrets Manager で管理されるように指定できます。これを行うには、DB クラスターを作成ときに、[Credential settings] (認証情報設定) で [Manage master credentials in AWS Secrets Manager] ( でマスター認証情報を管理する) を選択します。DB クラスターを変更する場合は、[Settings] (設定) で [Manage master credentials in AWS Secrets Manager] ( でマスター認証情報を管理する) を選択します。

以下の図は、DB インスタンスを作成またはときの AWS Secrets Managerでマスター認証情報を管理する設定の例です。


						AWS Secrets Manager でマスター認証情報を管理する

このオプションを選択すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。


						選択した AWS Secrets Manager マスター認証情報を管理する

シークレットは、Secrets Manager が提供する KMS キーを使用して暗号化するか、自分で作成したカスタマーマネージドキーを使用して暗号化するかを選択できます。RDS が DB クラスターのデータベース認証情報を管理した後は、シークレットの暗号化に使用される KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。

各 マルチ AZ DB クラスターの作成時に使用できる設定の詳細については、「マルチ AZ DB クラスターを作成するための設定」を参照してください。マルチ AZ DB クラスターの変更時に利用できる設定の詳細については、「マルチ AZ DB クラスターの変更の設定」を参照してください。

RDS が Secrets Manager のマスターユーザーパスワードを管理するように指定するには、以下のいずれかの --manage-master-user-password コマンドでオプションを指定します。

これらのコマンドで --manage-master-user-password オプションを指定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。--master-user-secret-kms-key-id オプションを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS が DB クラスターのデータベース認証情報を管理した後は、シークレットの暗号化に使用される KMS キーを変更することはできません。

要件に合わせて他の設定を選択できます。

各 マルチ AZ DB クラスターの作成時に使用できる設定の詳細については、「マルチ AZ DB クラスターを作成するための設定」を参照してください。マルチ AZ DB クラスターの変更時に利用できる設定の詳細については、「マルチ AZ DB クラスターの変更の設定」を参照してください。

この例では、マルチ AZ DB クラスターを作成し、RDS が Secrets Manager でパスワードを管理するように指定しています。シークレットは、Secrets Manager によって提供される KMS キーを使用して暗号化されます。

Linux、macOS、Unix の場合:

aws rds create-db-cluster \ --db-cluster-identifier mysql-multi-az-db-cluster \ --engine mysql \ --engine-version 8.0.28 \ --backup-retention-period 1 \ --allocated-storage 4000 \ --storage-type io1 \ --iops 10000 \ --db-cluster-instance-class db.r6gd.xlarge \ --manage-master-user-password

Windows の場合:

aws rds create-db-cluster ^ --db-cluster-identifier mysql-multi-az-db-cluster ^ --engine mysql ^ --engine-version 8.0.28 ^ --backup-retention-period 1 ^ --allocated-storage 4000 ^ --storage-type io1 ^ --iops 10000 ^ --db-cluster-instance-class db.r6gd.xlarge ^ --manage-master-user-password

RDS が Secrets Manager のマスターユーザーパスワードを管理するように指定するには、次のいずれかのオペレーションで ManageMasterUserPassword パラメータを true に設定します。

これらのオペレーションのいずれかで ManageMasterUserPassword パラメータを true に設定すると、RDS はマスターユーザーパスワードを生成し、そのライフサイクル全体を通じて Secrets Manager で管理します。

シークレットを暗号化するには、カスタマーマネージドキーを指定するか、Secrets Manager によって提供されるデフォルトの KMS キーを使用できます。MasterUserSecretKmsKeyId パラメータを使用して、カスタマーマネージドキーを指定します。AWS KMS キー識別子は、KMS キーのキー ARN、キー ID、エイリアス ARN、またはエイリアス名です。別の AWS アカウント で KMS キーを使用するには、キー ARN またはエイリアス ARN を指定します。RDS が DB クラスターのデータベース認証情報を管理した後は、シークレットの暗号化に使用される KMS キーを変更することはできません。

DB インスタンスのマスターユーザーパスワードシークレットのローテーション

RDS がマスターユーザーパスワードシークレットをローテーションすると、Secrets Manager は既存のシークレットの新しいシークレットバージョンを生成します。新しいバージョンのシークレットには、新しいマスターユーザーパスワードが含まれています。Amazon RDS は DB インスタンスのマスターユーザーパスワードを、新しいシークレットバージョンのパスワードと一致するように変更します。

スケジュールされたローテーションを待つ代わりに、シークレットをすぐにローテーションできます。Secrets Manager でマスターユーザーのパスワードシークレットを更新するには、DB インスタンスを変更します。DB インスタンスの変更については、「Amazon RDS DB インスタンスを変更する」を参照してください。

RDS コンソール、AWS CLI、または RDS API を使用して、マスターユーザーのパスワードシークレットをすぐに更新できます。新しいパスワードは常に 28 文字で、少なくとも 1 つの大文字と小文字、1 つの数字、1 つの句読点が含まれます。

RDS コンソールを使用してマスターユーザーのパスワードシークレットをローテーションするには、DB インスタンスを変更し、[Settings] (設定) で [Rotate secret immediately] (シークレットを直ちにローテーションする) を選択します。


						マスターユーザーパスワードシークレットをすぐにローテーションする

Amazon RDS DB インスタンスを変更する の RDS コンソールで DB インスタンスを変更する手順に従います。確認ページで [Apply immediately] (すぐに適用) を選択する必要があります。

AWS CLI を使用してマスターユーザーパスワードシークレットをローテーションするには、modify-db-instance コマンドを使用して --rotate-master-user-password オプションを指定します。マスターパスワードをローテーションするときは、--apply-immediately オプションを指定する必要があります。

この例では、マスターユーザーパスワードシークレットをローテーションします。

Linux、macOS、Unix の場合:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --rotate-master-user-password \ --apply-immediately

Windows の場合:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --rotate-master-user-password ^ --apply-immediately

ModifyDBInstance オペレーションを使用して RotateMasterUserPassword パラメータを true に設定すると、マスターユーザーパスワードシークレットをローテーションできます。マスターパスワードを変更するときは、ApplyImmediately パラメータを true に設定する必要があります。

マルチ AZ DB クラスターのマスターユーザーパスワードシークレットのローテーション

RDS がマスターユーザーパスワードシークレットをローテーションすると、Secrets Manager は既存のシークレットの新しいシークレットバージョンを生成します。新しいバージョンのシークレットには、新しいマスターユーザーパスワードが含まれています。Amazon RDS は、マルチ AZ DB クラスターのマスターユーザーパスワードを、新しいシークレットバージョンのパスワードと一致するように変更します。

スケジュールされたローテーションを待つ代わりに、シークレットをすぐにローテーションできます。Secrets Manager でマスターユーザーパスワードシークレットをローテーションするには、マルチ AZ DB クラスターを変更します。マルチ AZ DB クラスターの変更については、「マルチ AZ DB クラスターの変更」を参照してください。

RDS コンソール、AWS CLI、または RDS API を使用して、マスターユーザーのパスワードシークレットをすぐに更新できます。新しいパスワードは常に 28 文字で、少なくとも 1 つの大文字と小文字、1 つの数字、1 つの句読点が含まれます。

RDS コンソールを使用してマスターユーザーパスワードシークレットをローテーションするには、マルチ AZ DB クラスターを変更し、[Settings] (設定) で [Rotate secret immediately] (シークレットを直ちにローテーションする) を選択します。


						マスターユーザーパスワードシークレットをすぐにローテーションする

RDS コンソールを使用して、マルチ AZ DB クラスターの変更 および のマルチ AZ DB クラスターを変更する手順に従います。確認ページで [Apply immediately] (すぐに適用) を選択する必要があります。

AWS CLI を使用してマスターユーザーパスワードシークレットをローテーションするには、modify-db-cluster コマンドを使用して --rotate-master-user-password オプションを指定します。マスターパスワードをローテーションするときは、--apply-immediately オプションを指定する必要があります。

この例では、マスターユーザーパスワードシークレットをローテーションします。

Linux、macOS、Unix の場合:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --rotate-master-user-password \ --apply-immediately

Windows の場合:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --rotate-master-user-password ^ --apply-immediately

ModifyDBCluster オペレーションを使用して RotateMasterUserPassword パラメータを true に設定すると、マスターユーザーパスワードシークレットをローテーションできます。マスターパスワードを変更するときは、ApplyImmediately パラメータを true に設定する必要があります。

DB インスタンスのシークレットに関する詳細を表示する

コンソール (https://console.aws.amazon.com/secretsmanager/) または AWS CLI (get-secret-value Secrets Manager コマンド) を使用して自分のシークレットを取得できます。

RDS によって管理されているシークレットの Amazon リソースネーム (ARN) は、RDS コンソール、AWS CLI、または RDS API の Secrets Manager で確認できます。

RDS で管理されているシークレットの詳細を Secrets Manager で表示するには
  1. AWS Management Consoleにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. DB インスタンスの名前を選択して、その詳細を表示します。

  4. [設定] タブを選択します。

    [Master Credentials ARN] (マスター認証情報の ARN) では、シークレット ARN を表示できます。

    
								RDS  が管理するシークレットの詳細を Secrets Manager で表示する

    [Manage in Secrets Manager] (Secrets Managerで管理) で管理リンクをクリックすると、Secrets Manager コンソールでシークレットを表示および管理できます。

describe-db-instances RDS CLI コマンドを使用すると、Secrets Manager で RDS によって管理されているシークレットに関する次の情報を検索できます。

  • SecretArn – シークレットの ARN

  • SecretStatus – シークレットのステータス

    設定可能なステータス値は以下のとおりです。

    • creating – シークレットは作成中です。

    • active – シークレットは通常の使用とローテーションで利用可能です。

    • rotating – シークレットはローテーション中です。

    • impaired - シークレットはデータベースの認証情報へのアクセスに使用できますが、ローテーションはできません。例えば、アクセス許可が変更されて RDS がシークレットやシークレットの KMS キーにアクセスできなくなった場合、シークレットがこのステータスになる可能性があります。

      シークレットのステータスがこの場合は、ステータスの原因となった状態を修正できます。ステータスの原因となった条件を修正すると、ステータスは次のローテーションまで impaired のままです。または、DB インスタンスを変更してデータベース認証情報の自動管理をオフにしてから、DB インスタンスを再度変更してデータベース認証情報の自動管理をオンにすることもできます。DB インスタンスを変更するには、modify-db-instance コマンドの --manage-master-user-password オプションを使用します。

  • KmsKeyId – シークレットの暗号化に使用する KMS キーの ARN。

特定の DB インスタンスの出力を表示する --db-instance-identifier オプションを指定します。この例は、DB インスタンスが使用するシークレットの出力を示しています。

aws rds describe-db-instances --db-instance-identifier mydbinstance

シークレットの出力例は次のとおりです。

"MasterUserSecret": { "SecretArn": "arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!db-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx", "SecretStatus": "active", "KmsKeyId": "arn:aws:kms:eu-west-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321" }

シークレット ARN がある場合は、get-secret-value Secrets Manager CLI コマンドを使用してシークレットの詳細を表示できます。

この例は、前のサンプル出力のシークレットの詳細を示しています。

Linux、macOS、Unix の場合:

aws secretsmanager get-secret-value \ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!db-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

Windows の場合:

aws secretsmanager get-secret-value ^ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!db-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

RDS で管理されているシークレットの ARN、ステータス、および KMS キーを Secrets Manager で表示するには、DescribeDBInstances オペレーションを使用し、DBInstanceIdentifier パラメータを DB インスタンス識別子に設定します。シークレットの詳細は、出力に含まれています。

シークレット ARN がある場合は、GetSecretValue Secrets Manager オペレーションを使用してシークレットの詳細を表示できます。

マルチ AZ DB クラスターのシークレットに関する詳細の表示

コンソール (https://console.aws.amazon.com/secretsmanager/) または AWS CLI (get-secret-value Secrets Manager コマンド) を使用して自分のシークレットを取得できます。

RDS によって管理されているシークレットの Amazon リソースネーム (ARN) は、RDS コンソール、AWS CLI、または RDS API の Secrets Manager で確認できます。

RDS によって管理されているシークレットの詳細を Secrets Manager で表示するには
  1. AWS Management Consoleにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. 詳細を表示する マルチ AZ DB クラスターの名前を選択します。

  4. [設定] タブを選択します。

    [Master Credentials ARN] (マスター認証情報の ARN) では、シークレット ARN を表示できます。

    
								RDS  が管理するシークレットの詳細を Secrets Manager で表示する

    [Manage in Secrets Manager] (Secrets Managerで管理) で管理リンクをクリックすると、Secrets Manager コンソールでシークレットを表示および管理できます。

RDS AWS CLI describe-db-cluster コマンドを使用すると、Secrets Manager で RDS によって管理されているシークレットに関する次の情報を検索できます。

  • SecretArn – シークレットの ARN

  • SecretStatus – シークレットのステータス

    設定可能なステータス値は以下のとおりです。

    • creating – シークレットは作成中です。

    • active – シークレットは通常の使用とローテーションで利用可能です。

    • rotating – シークレットはローテーション中です。

    • impaired - シークレットはデータベースの認証情報へのアクセスに使用できますが、ローテーションはできません。例えば、アクセス許可が変更されて RDS がシークレットやシークレットの KMS キーにアクセスできなくなった場合、シークレットがこのステータスになる可能性があります。

      シークレットのステータスがこの場合は、ステータスの原因となった状態を修正できます。ステータスの原因となった条件を修正すると、ステータスは次のローテーションまで impaired のままです。または、DB クラスターを変更してデータベース認証情報の自動管理をオフにしてから、DB クラスターを再度変更してデータベース認証情報の自動管理をオンにすることもできます。DB クラスターを変更するには、modify-db-cluster コマンドの --manage-master-user-password を使用します。

  • KmsKeyId – シークレットの暗号化に使用する KMS キーの ARN。

特定の DB クラスターの出力を表示する --db-cluster-identifier オプションを指定します。この例は、DB クラスターが使用するシークレットの出力を示しています。

aws rds describe-db-clusters --db-cluster-identifier mydbcluster

以下は、シークレットの出力例を示しています。

"MasterUserSecret": { "SecretArn": "arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx", "SecretStatus": "active", "KmsKeyId": "arn:aws:kms:eu-west-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321" }

シークレット ARN がある場合は、get-secret-value Secrets Manager CLI コマンドを使用してシークレットの詳細を表示できます。

この例は、前のサンプル出力のシークレットの詳細を示しています。

Linux、macOS、Unix の場合:

aws secretsmanager get-secret-value \ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

Windows の場合:

aws secretsmanager get-secret-value ^ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

RDS によって管理されているシークレットの ARN、ステータス、および KMS キーは、DescribeDBClusters RDS オペレーションを使用して Secrets Manager で表示し、DBClusterIdentifier パラメータを DB クラスター識別子に設定できます。シークレットの詳細は、出力に含まれています。

シークレット ARN がある場合は、GetSecretValue Secrets Manager オペレーションを使用してシークレットの詳細を表示できます。

リージョンとバージョンの可用性

機能の可用性とサポートは、各データベースエンジンの特定のバージョンと AWS リージョン によって異なります。Secrets Manager を Amazon RDS と統合した場合のバージョンとリージョンの可用性の詳細については、「Secrets Manager の統合」を参照してください。