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

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

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

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

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

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

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

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

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

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

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

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

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

  1. シークレット・マネージャ・シークレット・アクセッサを作成して、Autonomous DatabaseプリンシパルがGCPシークレット・マネージャのシークレットにアクセスできるようにします。
  2. 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 Databaseインスタンスで最新のシークレット値が取得されるまで最大12時間かかる場合があります。

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