Oracle Cloud Infrastructure Vaultでのボールト・シークレット資格証明の使用
ボールト・シークレット資格証明の使用について説明します。この資格証明では、シークレット(パスワード)がOracle Cloud Infrastructure Vaultのシークレットとして格納されます。
ボールト・シークレット資格証明を使用して、クラウド・リソースにアクセスしたり、データベース・リンクを使用して他のデータベースにアクセスしたり、ユーザー名/パスワード・タイプの資格証明が必要な場所で使用できます。
Oracle Cloud Infrastructure VaultでVaultシークレット資格証明を作成するための前提条件
Oracle Cloud Infrastructure Vaultシークレットでボールト・シークレット資格証明を使用するために必要な前提条件ステップについて説明します。
シークレットがOracle Cloud Infrastructure Vaultに格納されるボールト・シークレット資格証明を作成するには、まず必要な前提条件を実行します。
-
ボールトを作成し、Oracle Cloud Infrastructure Vaultを使用してボールトにシークレットを作成します。
-
Oracle Cloud Infrastructure Vaultのシークレットへのアクセスを提供するように動的グループを設定します。
ボールト・シークレット資格証明を作成するAutonomous AI Databaseインスタンスの動的グループを作成します:
-
Oracle Cloud Infrastructureコンソールで、「アイデンティティおよびセキュリティ」をクリックします。
-
「アイデンティティ」で、「ドメイン」をクリックし、アイデンティティ・ドメインを選択します(または、新しいアイデンティティ・ドメインを作成します)。
-
「アイデンティティ・ドメイン」で、「動的グループ」をクリックします。
-
「動的グループの作成」をクリックし、「名前」、「説明」およびルールを入力します。
-
既存のデータベースの動的グループの作成:
Autonomous AI Databaseインスタンスが動的グループの一部であることを指定できます。次の例の動的グループには、OCIDが
resource.idパラメータに指定されているAutonomous AIデータベースのみが含まれます:resource.id = 'your_Autonomous_Database_instance_OCID' -
まだプロビジョニングされていないデータベースの動的グループを作成します。
Autonomous AI Databaseインスタンスをプロビジョニングまたはクローニングする前に動的グループを作成している場合、新しいデータベースのOCIDはまだ使用できません。この場合、特定のコンパートメントのリソースを指定する動的グループを作成します:
resource.compartment.id = 'your_Compartment_OCID'
-
-
「作成」をクリックします。
-
-
Oracle Cloud Infrastructureリソース(シークレット)へのアクセスを有効にするための動的グループのポリシー・ステートメントを記述します
-
Oracle Cloud Infrastructure Consoleで、「アイデンティティとセキュリティ」をクリックし、「ポリシー」をクリックします。
-
前のステップで作成した動的グループのポリシーを記述するには、「ポリシーの作成」をクリックし、「名前」および「説明」を入力します。
-
ポリシーを作成するには、ポリシー・ビルダーの「手動エディタの表示」オプションを使用します。
たとえば、動的グループへのアクセスにコンパートメント内の特定のシークレットの読取りを許可するには:
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サービスの詳細」を参照してください。
-
グループまたは動的グループを選択し、場所を選択します。
-
「作成」をクリックします。
-
Oracle Cloud Infrastructure Vaultを使用したボールト・シークレット資格証明の作成
資格証明でOracle Cloud Infrastructure Vaultシークレットを使用するステップについて説明します。
これにより、Oracle Cloud Infrastructure Vaultにシークレットを格納し、作成した資格証明でシークレットを使用してクラウド・リソースにアクセスしたり、他のデータベースにアクセスしたりできます。
シークレットがOracle Cloud Infrastructure Vaultに格納されるボールト・シークレット資格証明を作成するには:
-
リソース・プリンシパル認証を有効にして、Oracle Cloud Infrastructure Vaultのシークレットへのアクセスを提供します。
詳細は、Oracle Cloud Infrastructureリソースにアクセスするためのリソース・プリンシパルの有効化を参照してください。
-
動的グループを作成し、Autonomous AI DatabaseがOracle Cloud Infrastructure Vaultのシークレットにアクセスできるようにするポリシーを定義します。
詳細は、Oracle Cloud Infrastructure VaultでVaultシークレット資格証明を作成するための前提条件を参照してください。
-
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です。たとえば、パスワードmysecretをOracle Cloud Infrastructure Vaultのシークレットに格納する場合、secret_id値はボールト・シークレットOCIDです。
ボールト・シークレット資格証明を作成するには、
DBMS_CLOUDパッケージに対するEXECUTE権限が必要です。詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
-
-
資格証明を使用してクラウド・リソースにアクセスします。
たとえば:
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 AI Databaseインスタンスが最新のシークレット値を取得するのに最大12時間かかる場合があります。
DBMS_CLOUD.REFRESH_VAULT_CREDENTIALを実行して、ボールト・シークレット資格証明をただちにリフレッシュします。このプロシージャは、Oracle Cloud Infrastructure Vaultからボールト・シークレットの最新バージョンを取得します。詳細は、「REFRESH_VAULT_CREDENTIALプロシージャ」を参照してください。