GCP Secret Managerでのボールト・シークレット資格証明の使用

ボールト・シークレット資格証明の使用について説明します。ここでは、資格証明シークレット(パスワード)がGCPシークレット・マネージャにシークレットとして格納されます。

ボールト・シークレット資格証明を使用して、クラウド・リソースにアクセスしたり、データベース・リンクを使用して他のデータベースにアクセスしたり、ユーザー名/パスワード・タイプの資格証明が必要な場所で使用できます。

GCPシークレット・マネージャを使用してVaultシークレット資格証明を作成するための前提条件

GCPシークレット・マネージャでボールト・シークレット資格証明を使用するために必要な前提条件について説明します。

シークレットがGCPシークレット・マネージャに格納されているボールト・シークレット資格証明を作成するには、まず必要な前提条件を実行します。

  1. GCPシークレット・マネージャでシークレットを作成します。

    詳細は、シークレット・マネージャおよびシークレット・マネージャを使用したシークレットの作成およびアクセスを参照してください。

  2. Googleサービス・アカウント認証を有効にして、GCPシークレット・マネージャへのアクセスを提供します。

    Google Cloudコンソールで、プリンシパル認証資格証明へのシークレットへの読取りアクセス権を付与する必要があります。

    1. Google Cloudコンソールの「シークレット・マネージャ」ページに移動します。

    2. 「シークレット・マネージャ」ページで、シークレット名の横にあるチェック・ボックスを選択します。

    3. まだ開いていない場合は、「情報パネルの表示」をクリックしてパネルを開きます。

    4. 情報パネルで、「プリンシパルの追加」をクリックします。

    5. 「新規プリンシパル」テキスト領域で、追加するサービス・アカウント名を入力します。

    6. 「ロールの選択」ドロップダウンで、「シークレット・マネージャ」「シークレット・マネージャ・シークレット・アクセッサ」の順に選択します。

    詳細は、「Googleサービス・アカウントの有効化とGCPサービス・アカウント名の検索」および「シークレットへのアクセスの管理」を参照してください。

GCP Secret Managerを使用したボールト・シークレット資格証明の作成

GCPシークレット・マネージャ・シークレットを使用して、クラウド・リソースへのアクセスに使用する資格証明で使用するシークレットを格納するステップについて説明します。

これにより、GCPシークレット・マネージャにシークレットを格納し、作成した資格証明でシークレットを使用してクラウド・リソースにアクセスしたり、他のデータベースにアクセスしたりできます。

シークレットがGCPシークレット・マネージャに格納されているボールト・シークレット資格証明を作成するには:

  1. 自律型AIデータベース・プリンシパルがGCPシークレット・マネージャのシークレット・アクセスを許可するシークレット・マネージャ・シークレット・アクセッサを作成します。

    詳細は、GCPシークレット・マネージャを使用してVaultシークレット資格証明を作成するための前提条件を参照してください。

  2. Googleサービス・アカウント・ベースの認証を有効にして、GCPシークレット・マネージャでシークレットへのアクセスを提供します。

    詳細は、「Googleサービス・アカウントの有効化とGCPサービス・アカウント名の検索」を参照してください。

  3. DBMS_CLOUD.CREATE_CREDENTIALを使用して、GCPシークレット・マネージャ・シークレットにアクセスするためのボールト・シークレット資格証明を作成します。

    たとえば:

    BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name      => 'GCP_SECRET_CRED',
        params               => JSON_OBJECT(
              'username'   value 'gcp_user1',
              'secret_id'  value 'my-secret',
              'gcp_project_id' value 'my-sample-project-191923' ));
    END;
    /

    説明:

    • username: 元の資格証明のユーザー名。任意のタイプのユーザー名/パスワード資格証明を使用できます。

    • secret_id: シークレット名です。パスワードmysecretをボールトに格納する場合は、シークレット名をsecret_idパラメータの値として使用します。

    • gcp_project_id: シークレットが配置されているプロジェクトのIDです。

    詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  4. 資格証明を使用してクラウド・リソースにアクセスします。

    たとえば:

    SELECT count(*) FROM DBMS_CLOUD.LIST_OBJECTS(
               'GCP_SECRET_CRED',
               'https://*bucketname*.storage.googleapis.com/' );

ノート

ノート: 12時間ごとに、GCPシークレット・マネージャのコンテンツからシークレット(パスワード)がリフレッシュされます。GCPシークレット・マネージャでシークレット値を変更すると、Autonomous AI Databaseインスタンスが最新のシークレット値を取得するのに最大12時間かかる場合があります。

DBMS_CLOUD.REFRESH_VAULT_CREDENTIALを実行して、ボールト・シークレット資格証明をただちにリフレッシュします。このプロシージャは、GCPシークレット・マネージャからボールト・シークレットの最新バージョンを取得します。詳細は、「REFRESH_VAULT_CREDENTIALプロシージャ」を参照してください。