AWS Secrets Managerでのボールト・シークレット資格証明の使用
資格証明シークレット(パスワード)がAWSシークレット・マネージャに格納されるボールト・シークレット資格証明の使用について説明します。
ボールト・シークレット資格証明を使用して、クラウド・リソースにアクセスしたり、データベース・リンクを使用して他のデータベースにアクセスしたり、ユーザー名/パスワード・タイプの資格証明が必要な場所で使用できます。
AWSシークレット・マネージャを使用してVaultシークレット資格証明を作成するための前提条件
AWSシークレット・マネージャでボールト・シークレット資格証明を使用するために必要な前提条件について説明します。
シークレットがAWS Secrets Managerに格納されているボールトシークレット資格情報を作成するには、まず必要な前提条件を実行します。
-
AWS Secrets Managerでシークレットを作成し、AWSシークレットARNをコピーします。
詳細は、AWSシークレット・マネージャを参照してください。
-
Amazonリソース・ネーム(ARN)を使用するには、AWS管理の要件を実行します。
詳細は、Amazonリソース・ネーム(ARN)を使用するためのAWS管理の前提条件の実行を参照してください。
-
AWSプリンシパル認証を有効にして、AWSシークレット・マネージャでシークレットへのアクセスを提供します。
たとえば、Autonomous AI Databaseインスタンスで次を実行します:
BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'AWS', params => JSON_OBJECT( 'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN')); END; /詳細は、ENABLE_PRINCIPAL_AUTHプロシージャおよびAmazonリソース・ネーム(ARN)を使用したAWSリソースへのアクセスについてを参照してください。
-
AWSをセットアップして、AWS Secrets Managerでシークレットにアクセスするための Amazonリソース名(ARN)のアクセス権を提供します。
AWSコンソールで、プリンシパル認証資格証明へのシークレットへの読取りアクセス権を付与する必要があります。
-
AWSコンソールで、IAMに移動し、Access Managementで「ロール」を選択します。
-
ロールを選択します。
-
「権限」タブで、「権限の追加」→「インライン・ポリシーの作成」をクリックします。
-
「サービス」セクションで、サービスとして「シークレット・マネージャ」を選択します。
-
「アクション」セクションで、「読取り」アクセス・レベルを選択します。
-
「リソース」セクションで、「ARNの追加」をクリックし、シークレットにARNを指定して、「追加」→「ポリシーの確認」→ポリシー名の指定→「ポリシーの作成」をクリックします。
-
「権限」タブに戻り、インライン・ポリシーがアタッチされていることを確認します。
詳細は、「Amazonリソース名(ARN)を使用したAWSリソースへのアクセス」および「AWSシークレット・マネージャの権限ポリシーの例」を参照してください。
-
AWS Secrets Managerを使用したボールト・シークレット資格証明の作成
AWSシークレット・マネージャ・シークレットと資格証明を使用するステップについて説明します。
これにより、AWS Secrets Managerにシークレットを格納し、作成した資格証明でシークレットを使用してクラウドリソースにアクセスしたり、ほかのデータベースにアクセスしたりできます。
シークレットがAWSシークレット・マネージャに格納されるボールト・シークレット資格証明を作成するには:
-
AWSシークレット・マネージャでシークレットを作成し、自律型AIデータベースがAWSシークレット・マネージャでシークレットにアクセスできるようにするインライン・ポリシーを作成します。
詳細は、AWSシークレット・マネージャを使用してVaultシークレット資格証明を作成するための前提条件を参照してください。
-
DBMS_CLOUD.CREATE_CREDENTIALを使用して、AWSシークレット・マネージャ・シークレットにアクセスするためのボールト・シークレット資格証明を作成します。たとえば:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'AWS_SECRET_CRED', params => JSON_OBJECT( 'username' value 'access_key', 'secret_id' value 'arn:aws:secretsmanager:region:account-ID:secret:secret_name' )); END; /説明:
-
username: 元の資格証明のユーザー名。任意のタイプのユーザー名/パスワード資格証明を使用できます。 -
secret_id: ボールト・シークレットAWS ARNです。
ボールト・シークレット資格証明を作成するには、
DBMS_CLOUDパッケージに対するEXECUTE権限が必要です。詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
-
-
資格証明を使用してクラウド・リソースにアクセスします。
たとえば:
SELECT count(*) FROM DBMS_CLOUD.LIST_OBJECTS( 'AWS_SECRET_CRED', 'https://s3-us-west-2.amazonaws.com/adb/' );
ノート
ノート: 12時間ごとに、シークレット(パスワード)はAWSシークレット・マネージャのコンテンツからリフレッシュされます。AWSシークレット・マネージャでシークレット値を変更すると、Autonomous AI Databaseインスタンスが最新のシークレット値を取得するのに最大12時間かかる場合があります。
DBMS_CLOUD.REFRESH_VAULT_CREDENTIALを実行して、ボールト・シークレット資格証明をただちにリフレッシュします。この手順では、AWS Secrets Managerからボールトシークレットの最新バージョンを取得します。詳細は、「REFRESH_VAULT_CREDENTIALプロシージャ」を参照してください。