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

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

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

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

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

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

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

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

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

    詳細は、「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を使用したボールト・シークレット資格証明の作成

ボールト・シークレット資格証明で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プロシージャを参照してください。