GCPシークレット・マネージャでのVaultシークレット資格証明の使用

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

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

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

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

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

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

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

    1. Google Cloudコンソールの「シークレット・マネージャ」ページに移動します。
    2. 「シークレット・マネージャ」ページで、シークレットの名前の横にあるチェック・ボックスを選択します。
    3. まだ開いていない場合は、「情報パネルの表示」をクリックしてパネルを開きます。
    4. 情報パネルで、「プリンシパルの追加」をクリックします。
    5. 「新規プリンシパル」テキスト領域で、追加するサービス・アカウント名を入力します。
    6. 「ロールの選択」ドロップダウンで、「シークレット・マネージャ」「シークレット・マネージャ・シークレット・アクセサ」の順に選択します。

GCPシークレット・マネージャを使用したVaultシークレット資格証明の作成

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

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

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

  1. Autonomous DatabaseプリンシパルがGCPシークレット・マネージャのシークレットにアクセスできるようにするシークレット・マネージャ・シークレット・アクセッサを作成します。
  2. Googleサービス・アカウント・ベースの認証を有効にして、GCPシークレット・マネージャでシークレットへのアクセスを提供します。

    詳細については、Enable Google Service Account and Find the GCP Service Account Nameを参照してください。

  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 Databaseインスタンスが最新のシークレット値を取得するのに最大12時間かかる場合があります。

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