Azure Key VaultでのVaultシークレット資格証明の使用

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

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

Azure Key VaultでVaultシークレット資格証明を作成するための前提条件

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

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

  1. Azureサービス・プリンシパル認証を有効にして、Azure Key Vaultのキー(パスワード)へのアクセスを提供します。

    詳細は、Azureサービス・プリンシパルの有効化を参照してください。

  2. Azure Key Vaultを作成し、ボールトにシークレット(パスワード)を作成します。

    詳細は、「About Azure Key Vault」を参照してください。

  3. Azure Service Principalを設定して有効にし、Azure Key Vaultのシークレットへのアクセスを提供します。

    Azureポータルでは、サービス・プリンシパルがシークレットにアクセスするための読取りアクセス権を付与する必要があります。

    1. Azureポータルで、作成したシークレットを含むKey Vaultリソースに移動します。
    2. 「アクセス・ポリシー」を選択し、「作成」を選択します。
    3. 「権限」で、「シークレット権限」セクションで「取得」権限を選択します。
    4. 「プリンシパル」で、検索フィールドにサービス・プリンシパルの名前を入力し、適切な結果を選択します。
    5. 「次へ」をクリックします
    6. 「確認と作成」で、アクセス・ポリシーの変更を確認し、「作成」をクリックしてアクセス・ポリシーを保存します。
    7. 「アクセス・ポリシー」ページに戻り、アクセス・ポリシーがリストされていることを確認します。

    詳細は、Key Vaultアクセス・ポリシーの割当てを参照してください。

Azure Key Vaultを使用したVaultシークレット資格証明の作成

ボールト・シークレット資格証明でAzure Key Vaultを使用するステップについて説明します。

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

シークレットがAzure Key Vaultに格納されるボールト・シークレット資格証明を作成するには:

  1. Azure Key Vault、シークレットおよびアクセス・ポリシーを作成して、Autonomous DatabaseがAzure Key Vaultのシークレットにアクセスできるようにします。
  2. DBMS_CLOUD.CREATE_CREDENTIALを使用して、ボールト・シークレット資格証明を作成します。

    たとえば:

    BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name  => 'AZURE_SECRET_CRED',
        params  => JSON_OBJECT( 
          'username'          value 'azure_user',
          'secret_id'         value 'sales-secret',
          'azure_vault_name'  value 'azure_keyvault_name' ));
    END;
    /

    説明:

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

    • secret_id: シークレット名です。

    • azure_vault_name: シークレットが存在するボールトの名前です。

    ボールト・シークレット資格証明を作成するには、DBMS_CLOUDパッケージに対するEXECUTE権限が必要です。

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

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

    たとえば、次のとおりです。

    SELECT count(*) FROM DBMS_CLOUD.LIST_OBJECTS(
         'AZURE_SECRET_CRED', 
         'https://adb_user.blob.core.windows.net/adb/' );
ノート

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

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