Oracle Cloud Infrastructure Vaultでのボールト・シークレット資格証明の使用

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

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

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

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

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

  1. ボールトを作成し、Oracle Cloud Infrastructure Vaultを使用してボールトにシークレットを作成します。

    詳細は、ボールトおよびシークレットの作成手順、ボールトの管理およびキー管理の概要を参照してください。

  2. Oracle Cloud Infrastructure Vaultのシークレットへのアクセスを提供するように動的グループを設定します。

    ボールト・シークレット資格証明を作成するAutonomous Databaseインスタンスの動的グループを作成します:

    1. Oracle Cloud Infrastructureコンソールで、「アイデンティティおよびセキュリティ」をクリックします。
    2. 「アイデンティティ」で、「ドメイン」をクリックし、アイデンティティ・ドメインを選択します(または新しいアイデンティティ・ドメインを作成します)。
    3. 「アイデンティティ・ドメイン」で、「動的グループ」をクリックします。
    4. 「動的グループの作成」をクリックし、「名前」「説明」およびルールを入力します。
      • 既存のデータベースの動的グループの作成:

        Autonomous Databaseインスタンスが動的グループの一部であることを指定できます。次の例の動的グループには、resource.idパラメータにOCIDが指定されているAutonomous Databaseのみが含まれます。

        resource.id = 'your_Autonomous_Database_instance_OCID'
      • まだプロビジョニングされていないデータベースの動的グループを作成します。

        Autonomous Databaseインスタンスをプロビジョニングまたはクローニングする前に動的グループを作成している場合、新しいデータベースのOCIDはまだ使用できません。この場合、特定のコンパートメントのリソースを指定する動的グループを作成します:

        resource.compartment.id = 'your_Compartment_OCID'
    5. 「作成」をクリックします。
  3. Oracle Cloud Infrastructureリソース(シークレット)へのアクセスを有効にするための動的グループのポリシー・ステートメントを記述します
    1. Oracle Cloud Infrastructure Consoleで、「アイデンティティとセキュリティ」をクリックし、「ポリシー」をクリックします。
    2. 前のステップで作成した動的グループのポリシーを記述するには、「ポリシーの作成」をクリックし、「名前」および「説明」を入力します。
    3. ポリシーを作成するには、ポリシー・ビルダー手動エディタの表示オプションを使用します。

      たとえば、動的グループへのアクセスにコンパートメント内の特定のシークレットの読取りを許可するには:

      Allow dynamic-group dynamic_group_name to read secret-bundles in compartment compartment_name
         where target.secret.id='secret_OCID'

      たとえば、動的グループへのアクセスにコンパートメント内のすべてのシークレットの読取りを許可するには:

      Allow dynamic-group dynamic_group_name to read secret-bundles in compartment compartment_name

      詳細は、Vaultサービスの詳細を参照してください。

    4. グループまたは動的グループを選択し、場所を選択します。
    5. 「作成」をクリックします。

Oracle Cloud Infrastructure Vaultを使用したボールト・シークレット資格証明の作成

資格証明でOracle Cloud Infrastructure Vaultシークレットを使用するステップについて説明します。

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

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

  1. リソース・プリンシパル認証を有効にして、Oracle Cloud Infrastructure Vaultのシークレットへのアクセスを提供します。
  2. 動的グループを作成し、Autonomous DatabaseがOracle Cloud Infrastructure Vaultのシークレットにアクセスできるようにするポリシーを定義します。
  3. DBMS_CLOUD.CREATE_CREDENTIALを使用して、ボールト・シークレット資格証明を作成します。

    たとえば:

    BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name   => 'OCI_SECRET_CRED',
        params            => JSON_OBJECT(
            'username'   value 'SCOTT',
            'secret_id'  value 'ocid1.vaultsecret.oc1.iad.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa' ));
    END;
    /

    説明:

    • username: 元の資格証明のユーザー名。OCI Swiftユーザーのユーザー名、データベース・リンクを使用したデータベースへのアクセスに必要なユーザー名など、任意のタイプのユーザー名/パスワード資格証明のユーザー名を指定できます。

    • secret_id: ボールト・シークレットIDです。たとえば、Oracle Cloud Infrastructure Vaultのシークレットにパスワードmysecretを格納する場合、secret_id値はボールト・シークレットOCIDです。

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

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

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

    たとえば:

    SELECT count(*) FROM DBMS_CLOUD.LIST_OBJECTS(
        'OCI_SECRET_CRED',
        'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/' );
ノート

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

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