Azureサービス・プリンシパルを使用したAzureリソースへのアクセス
Azureサービス・プリンシパルをAutonomous Databaseとともに使用すると、独自の資格証明オブジェクトを作成してデータベースに保存しなくても、Azureリソースにアクセスできます。
- Azureサービス・プリンシパルの有効化
Azureサービス・プリンシパル認証を有効にして、Autonomous Databaseが長期資格証明を提供せずにAzureサービスにアクセスできるようにします。 - Azureアプリケーション同意およびロールの割当ての指定
Azureサービス・プリンシパル認証を使用してAutonomous DatabaseからAzureリソースにアクセスするには、Azureアプリケーションに同意し、Azureリソースへのアクセスを許可するロールを割り当てる必要があります。 - Azureサービス・プリンシパルをDBMS_CLOUDとともに使用
DBMS_CLOUD
コールを実行してAzureリソースにアクセスし、資格証明名をAZURE$PA
と指定すると、Azure側の認証はAzureサービス・プリンシパルを使用して行われます。 - Azureサービス・プリンシパルの無効化
Azureサービス・プリンシパルを使用してAutonomous DatabaseからAzureリソースへのアクセスを無効にするには、DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH
を使用します。 - Azureサービス・プリンシパルのノート
Azureサービス・プリンシパルを使用するためのノート。
親トピック: リソースにアクセスするためのポリシーおよびロールの構成
Azureサービス・プリンシパルの有効化
Azureサービス・プリンシパル認証を有効にして、Autonomous Databaseが長期資格証明を指定せずにAzureサービスにアクセスできるようにします。
ノート:
Autonomous DatabaseをAzureサービス・プリンシパル認証で使用するには、Microsoft Azureアカウントが必要です。 詳細はMicrosoft Azureを参照してください。Autonomous DatabaseでAzureサービス・プリンシパル認証を有効にするには:
詳細については、「ENABLE_PRINCIPAL_AUTHプロシージャ」を参照してください。
Azureアプリケーション同意とロールの割当て
Azureサービス・プリンシパル認証を使用してAutonomous DatabaseからAzureリソースにアクセスするには、Azureアプリケーションに同意し、Azureリソースへのアクセスを許可するロールを割り当てる必要があります。
Azureアプリケーションの同意を提供し、ロールを割り当てるには、次のステップを実行します:
この例では、Azure Blob Storageにアクセスするためのロールを付与するステップを示します。 他のAzureサービスへのアクセスを提供する場合は、Azureアプリケーション(サービス・プリンシパル)がAzureサービスにアクセスできるように、追加のAzureサービスに対して同等のステップを実行する必要があります。
Azureサービス・プリンシパルをDBMS_CLOUDとともに使用
AzureリソースにアクセスするためのDBMS_CLOUD
コールを行い、資格証明名をAZURE$PA
として指定すると、Azure側の認証はAzureサービス・プリンシパルを使用して行われます。
まだ実行していない場合は、必要な前提条件ステップを実行します:
-
ADMINスキーマまたは別のスキーマを有効にして、Azureサービス・プリンシパル認証を使用します。 詳細については、「Azureサービス・プリンシパルの有効化」を参照してください。
-
アプリケーションを承諾し、Azureロール割当て権限を実行します。 詳細については、「Azureアプリケーション同意とロールの割当て」を参照してください。
Azureサービス・プリンシパルでDBMS_CLOUD
プロシージャまたはファンクションを使用するには、資格証明名としてAZURE$PA
を指定します。 たとえば、Azureサービス・プリンシパル資格証明を使用して、次のようにAzure Blob Storageにアクセスできます:
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS
('AZURE$PA', 'https://treedata.blob.core.windows.net/treetypes/');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
----------- ----- ------------------------ -------------------- --------------------
trees.txt 58 aCB1qMOPVobDLCXG+2fcvg== 2022-04-07T23:03:01Z 2022-04-07T23:03:01Z
「資格証明の作成と既存の表へのデータのコピー」に示すように、オブジェクト・ストレージへのアクセスに必要なステップを比較する場合、AZURE$PA
というAzureサービス・プリンシパルを使用しているため、ステップ1では資格証明の作成は不要です。
Azureサービス・プリンシパルの無効化
Azureサービス・プリンシパルでAutonomous DatabaseからAzureリソースへのアクセスを無効にするには、DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH
を使用します。
Autonomous DatabaseでAzureサービス・プリンシパルを無効にするには:
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH
(
provider => 'AZURE',
username => 'adb_user');
END;
/
provider
値がAZURE
で、username
がADMIN
ユーザー以外のユーザーである場合、プロシージャは指定されたユーザーから権限を取り消します。 この場合、ADMIN
ユーザーおよび他のユーザーは引き続きADMIN.AZURE$PA
を使用でき、Autonomous Databaseインスタンス用に作成されたアプリケーションはインスタンス上に残ります。
provider
値がAZURE
で、username
がADMIN
の場合、プロシージャはAzureサービス・プリンシパル・ベースの認証を無効にし、Autonomous Databaseインスタンス上のAzureサービス・プリンシパル・アプリケーションを削除します。 この場合、Azureサービス・プリンシパルを有効にする場合は、Azureサービス・プリンシパルを再度使用するために必要なすべてのステップ(次を含む)を実行する必要があります:
-
ADMIN
スキーマまたは別のスキーマを有効にして、Azureサービス・プリンシパル認証を使用します。 詳細については、「Azureサービス・プリンシパルの有効化」を参照してください。 -
アプリケーションを承諾し、Azureロール割当て権限を実行します。 詳細については、「Azureアプリケーション同意とロールの割当て」を参照してください。
詳細については、「DISABLE_PRINCIPAL_AUTHプロシージャ」を参照してください。