コンプライアンスプログラムのための RDS Custom for Oracle の認証情報のローテーション - Amazon Relational Database Service

コンプライアンスプログラムのための RDS Custom for Oracle の認証情報のローテーション

一部のコンプライアンスプログラムでは、データベースユーザーの認証情報を定期的に (例えば、90 日ごとに) 変更する必要があります。RDS Custom for Oracle は、一部の定義済みデータベースユーザーの認証情報を自動的にローテーションします。

事前定義済みユーザーの認証情報の自動ローテーション

RDS Custom for Oracle DB インスタンスが Amazon RDS でホストされている場合、以下の事前定義された Oracle ユーザーの認証情報は 30 日ごとに自動的にローテーションされます。前述のユーザーの認証情報は AWS Secrets Manager にあります。

データベースユーザーCreated by (作成者)サポート対象エンジンバージョンメモ

SYS

Oracle

custom-oracle-ee

custom-oracle-ee-cdb

custom-oracle-se2

custom-oracle-se2-cdb

SYSTEM

Oracle

custom-oracle-ee

custom-oracle-ee-cdb

custom-oracle-se2

custom-oracle-se2-cdb

RDSADMIN

RDS

custom-oracle-ee

custom-oracle-se2

C##RDSADMIN

RDS

custom-oracle-ee-cdb

custom-oracle-se2-cdb

C## プレフィックスが付いたユーザー名は CDB にのみ存在します。CDB の詳細については、「Amazon RDS Custom for Oracle アーキテクチャの概要」を参照してください。

RDS_DATAGUARD

RDS

custom-oracle-ee

このユーザーは、リードレプリカ、リードレプリカのソースデータベース、および Oracle Data Guard を使用して RDS Custom に物理的に移行したデータベースにのみ存在します。

C##RDS_DATAGUARD

RDS

custom-oracle-ee-cdb

このユーザーは、リードレプリカ、リードレプリカのソースデータベース、および Oracle Data Guard を使用して RDS Custom に物理的に移行したデータベースにのみ存在します。C## プレフィックスが付いたユーザー名は CDB にのみ存在します。CDB の詳細については、「Amazon RDS Custom for Oracle アーキテクチャの概要」を参照してください。

自動認証情報のローテーションの例外は、スタンバイデータベースとして手動で設定した RDS Custom for Oracle DB インスタンスです。RDS は、create-db-instance-read-replica CLI コマンドまたは CreateDBInstanceReadReplica API を使用して作成したリードレプリカの認証情報のみを更新します。

ユーザー認証情報のローテーションに関するガイドライン

コンプライアンスプログラムに従って資格情報が更新されるように、次のガイドラインに注意してください。

  • DB インスタンスが認証情報を自動的にローテーションする場合、「事前定義された Oracle ユーザー」にリストされているユーザーのシークレット、パスワードファイル、またはパスワードを手動で変更または削除しないでください。そうしないと、RDS Custom が DB インスタンスをサポート範囲外に配置し、自動ローテーションが停止する可能性があります。

  • RDS マスターユーザーは事前に定義されていないため、パスワードを手動で変更するか、Secrets Manager で自動ローテーションを設定する必要があります。詳細については、「AWS Secrets Manager シークレットのローテーション」を参照してください。

ユーザー認証情報の手動ローテーション

次のカテゴリのデータベースでは、RDS は「事前定義済み Oracle ユーザー」にリストされているユーザーの認証情報を自動的に更新しません。

  • スタンバイデータベースとして機能するように手動で設定したデータベース。

  • オンプレミスのデータベース

  • サポート範囲外にある DB インスタンス、または RDS Custom オートメーションを実行できない状態にある DB インスタンス。この場合、RDS Custom はキーをローテーションしません。

データベースが上記のカテゴリのいずれかに該当する場合は、ユーザー認証情報を手動でローテーションする必要があります。

DB インスタンスのユーザー認証情報を手動でローテーションするには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. データベースで、RDS が現在 DB インスタンスをバックアップしていないか、高可用性の設定などの操作を実行していないことを確認します。

  3. データベースの詳細ページで、[設定] を選択し、DB インスタンスのリソース ID を書き留めます。または、AWS CLI コマンド describe-db-instances を使用できます。

  4. Secrets Manager のコンソール (https://console.aws.amazon.com/secretsmanager/) を開きます。

  5. 検索ボックスに、DB リソース ID を入力し、以下のフォームでシークレットを検索してください。

    do-not-delete-rds-custom-db-resource-id-numeric-string

    このシークレットには、RDSADMINSYS、および SYSTEM のパスワードが保存されます。次のサンプルキーは、DB リソース ID db-ABCDEFG12HIJKLNMNOPQRS3TUVWX の DB インスタンス用です。

    do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-123456
    重要

    DB インスタンスがリードレプリカで custom-oracle-ee-cdb エンジンを使用する場合、サフィックス db-resource-id-numeric-string が付いた 2 つのシークレットが存在します。1 つはマスターユーザー用で、もう 1 つは RDSADMINSYS および SYSTEM です。正しいシークレットを見つけるには、次のコマンドをホストで実行します。

    cat /opt/aws/rdscustomagent/config/database_metadata.json | python3 -c "import sys,json; print(json.load(sys.stdin)['dbMonitoringUserPassword'])"

    この dbMonitoringUserPassword 属性は、RDSADMINSYS、および SYSTEM のシークレットを示します。

  6. DB インスタンスが Oracle Data Guard 設定に存在する場合は、次の形式でシークレットを見つけてください。

    do-not-delete-rds-custom-db-resource-id-numeric-string-dg

    このシークレットには、RDS_DATAGUARD のパスワードが保存されます。次のサンプルキーは、DB リソース ID db-ABCDEFG12HIJKLNMNOPQRS3TUVWX の DB インスタンス用です。

    do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-789012-dg
  7. 定義済みの Oracle ユーザー」に記載されているすべてのデータベースユーザーについて、「AWS Secrets Manager シークレットの変更」の指示に従ってパスワードを更新します。

  8. データベースがスタンドアロンデータベースまたは Oracle Data Guard 設定のソースデータベースの場合:

    1. Oracle SQL クライアントを起動し、SYS としてログインします。

    2. 事前定義済み Oracle ユーザー」にリストされているデータベースユーザーごとに、次の形式の SQL ステートメントを実行します。

      ALTER USER user-name IDENTIFIED BY pwd-from-secrets-manager ACCOUNT UNLOCK;

      例えば、Secrets Manager に保存されている RDSADMIN の新しいパスワードが pwd-123 の場合、次のステートメントを実行します。

      ALTER USER RDSADMIN IDENTIFIED BY pwd-123 ACCOUNT UNLOCK;
  9. DB インスタンスが Oracle Database 12c リリース 1 (12.1) を実行していて、Oracle Data Guard によって管理されている場合は、プライマリ DB インスタンスから各スタンバイ DB インスタンスにパスワードファイル (orapw) を手動でコピーします。

    DB インスタンスが Amazon RDS でホストされている場合、パスワードファイルの場所は /rdsdbdata/config/orapw です。Amazon RDS でホストされていないデータベースの場合、デフォルトの場所は、Linux と UNIX では $ORACLE_HOME/dbs/orapw$ORACLE_SID、Windows では %ORACLE_HOME%\database\PWD%ORACLE_SID%.ora です。