一部のコンプライアンスプログラムでは、データベースユーザーの認証情報を定期的に (例えば、90 日ごとに) 変更する必要があります。RDS Custom for Oracle は、一部の定義済みデータベースユーザーの認証情報を自動的にローテーションします。
事前定義済みユーザーの認証情報の自動ローテーション
RDS Custom for Oracle DB インスタンスが Amazon RDS でホストされている場合、以下の事前定義された Oracle ユーザーの認証情報は 30 日ごとに自動的にローテーションされます。前述のユーザーの認証情報は AWS Secrets Manager にあります。
データベースユーザー | Created by (作成者) | サポート対象エンジンバージョン | メモ |
---|---|---|---|
|
Oracle |
custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb | |
|
Oracle |
custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb | |
|
RDS |
custom-oracle-ee custom-oracle-se2 | |
|
RDS |
custom-oracle-ee-cdb custom-oracle-se2-cdb | C## プレフィックスが付いたユーザー名は CDB にのみ存在します。CDB の詳細については、「Amazon RDS Custom for Oracle アーキテクチャの概要」を参照してください。 |
|
RDS |
custom-oracle-ee | このユーザーは、リードレプリカ、リードレプリカのソースデータベース、および Oracle Data Guard を使用して RDS Custom に物理的に移行したデータベースにのみ存在します。 |
|
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 インスタンスのユーザー認証情報を手動でローテーションするには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
データベースで、RDS が現在 DB インスタンスをバックアップしていないか、高可用性の設定などの操作を実行していないことを確認します。
-
データベースの詳細ページで、[設定] を選択し、DB インスタンスのリソース ID を書き留めます。または、AWS CLI コマンド
describe-db-instances
を使用できます。 -
Secrets Manager のコンソール (https://console.aws.amazon.com/secretsmanager/
) を開きます。 -
検索ボックスに、DB リソース ID を入力し、以下のフォームでシークレットを検索してください。
do-not-delete-rds-custom-
db-resource-id
-numeric-string
このシークレットには、
RDSADMIN
、SYS
、およびSYSTEM
のパスワードが保存されます。次のサンプルキーは、DB リソース IDdb-ABCDEFG12HIJKLNMNOPQRS3TUVWX
の DB インスタンス用です。do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-123456
重要
DB インスタンスがリードレプリカで
custom-oracle-ee-cdb
エンジンを使用する場合、サフィックス
が付いた 2 つのシークレットが存在します。1 つはマスターユーザー用で、もう 1 つはdb-resource-id
-numeric-string
RDSADMIN
、SYS
およびSYSTEM
です。正しいシークレットを見つけるには、次のコマンドをホストで実行します。cat /opt/aws/rdscustomagent/config/database_metadata.json | python3 -c "import sys,json; print(json.load(sys.stdin)['dbMonitoringUserPassword'])"
この
dbMonitoringUserPassword
属性は、RDSADMIN
、SYS
、およびSYSTEM
のシークレットを示します。 -
DB インスタンスが Oracle Data Guard 設定に存在する場合は、次の形式でシークレットを見つけてください。
do-not-delete-rds-custom-
db-resource-id
-numeric-string
-dgこのシークレットには、
RDS_DATAGUARD
のパスワードが保存されます。次のサンプルキーは、DB リソース IDdb-ABCDEFG12HIJKLNMNOPQRS3TUVWX
の DB インスタンス用です。do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-789012-dg
-
「定義済みの Oracle ユーザー」に記載されているすべてのデータベースユーザーについて、「AWS Secrets Manager シークレットの変更」の指示に従ってパスワードを更新します。
-
データベースがスタンドアロンデータベースまたは Oracle Data Guard 設定のソースデータベースの場合:
-
Oracle SQL クライアントを起動し、
SYS
としてログインします。 -
「事前定義済み Oracle ユーザー」にリストされているデータベースユーザーごとに、次の形式の SQL ステートメントを実行します。
ALTER USER
user-name
IDENTIFIED BYpwd-from-secrets-manager
ACCOUNT UNLOCK;例えば、Secrets Manager に保存されている
RDSADMIN
の新しいパスワードがpwd-123
の場合、次のステートメントを実行します。ALTER USER RDSADMIN IDENTIFIED BY pwd-123 ACCOUNT UNLOCK;
-
-
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
です。