Utilisation du principal de service Azure pour accéder aux ressources Azure

Vous pouvez utiliser un principal de service Azure avec Autonomous Database pour accéder aux ressources Azure sans avoir à créer et à stocker vos propres objets d'informations d'identification dans la base de données.

Activation du principal de service Azure

Activez l'authentification de principal de service Azure pour autoriser Autonomous Database à accéder aux services Azure sans fournir d'informations d'identification à long terme.

Remarque

Pour utiliser Autonomous Database avec l'authentification de principal de service Azure, vous avez besoin d'un compte Microsoft Azure. Pour plus d'informations, reportez-vous à Microsoft Azure.

Procédure d'activation de l'authentification de principal de service Azure sur Autonomous Database :

  1. Obtenez votre ID de locataire Microsoft Azure Active Directory.

    Pour plus d'informations, reportez-vous à Comment trouver votre ID de locataire Azure Active Directory.

  2. Activez le principal de service Azure avec DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH.

    Exemple :

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user',
            params   => JSON_OBJECT('azure_tenantid' value 'azure_tenantID'));
    END;
    /

    Cette commande active l'authentification de principal de service Azure et crée une application Azure sur Autonomous Database.

    Si vous voulez que l'utilisateur indiqué dispose de privilèges permettant d'activer le principal de service Azure pour d'autres utilisateurs, définissez le paramètre params grant_option sur TRUE.

    Par exemple :

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user',
            params   => JSON_OBJECT('grant_option' value TRUE, 
                                    'azure_tenantid' value 'azure_tenantID'));
    END;
    /

    Une fois cette commande exécutée, adb_user peut activer le principal de service Azure pour un autre utilisateur. Par exemple, si vous êtes connecté en tant que adb_user, vous pouvez exécuter la commande suivante :

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user2');
    END;
    /

Pour plus d'informations, reportez-vous à Procédure ENABLE_PRINCIPAL_AUTH.

Octroi du consentement à l'application Azure et affectation de rôles

Pour accéder aux ressources Azure à partir d'Autonomous Database avec l'authentification de principal de service Azure, vous devez donner votre consentement à l'application Azure et affecter des rôles pour autoriser l'accès à vos ressources Azure.

Pour donner votre consentement à l'application Azure et affecter des rôles, procédez comme suit :

  1. Sur Autonomous Database, interrogez CLOUD_INTEGRATIONS.

    Par exemple :

    SELECT param_name, param_value FROM CLOUD_INTEGRATIONS;
    
    PARAM_NAME        PARAM_VALUE
    --------------- ------------------------------------------------------------------------------------------------------------------------------------------
    azure_tenantid    29981886-6fb3-44e3-82ab-d870b0e8e7eb
    azure_consent_url https://login.microsoftonline.com/f8cdef31-91255a/oauth2/v2.0/authorize?client_id=d66f1b5-1250d5445c0b&response_type=code&scope=User.read
    azure_app_name    ADBS_APP_OCID1.AUTONOMOUSDATABASE.REGION1.SEA.ANZWKLJSZLYNB3AAWLYL3JVC4ICEXLB3ZG6WTCX735JSSY2NRHOBU4DZOOVA

    La vue CLOUD_INTEGRATIONS est disponible pour l'utilisateur ADMIN ou pour un utilisateur disposant du rôle DWROLE.

  2. Dans un navigateur, ouvrez l'URL de consentement Azure, indiquée par le paramètre azure_consent_url.

    Par exemple, copiez l'URL et saisissez-la dans votre navigateur :

    https://login.microsoftonline.com/f8cdef31-91255a/oauth2/v2.0/authorize?client_id=d66f1b5-1250d5445c0b&response_type=code&scope=User.read

    La page Permissions demandées s'ouvre et affiche une demande de consentement semblable à ce qui suit :

    Description de azure_consent.png
    Description de l'image azure_consent.png
  3. Pour donner votre consentement, cliquez sur accepter.
  4. Sur la console Microsoft Azure, attribuez les rôles que vous voulez accorder pour autoriser l'accès aux ressources Azure indiquées.

    Par exemple, si vous voulez accéder à Azure Blob Storage à partir d'Autonomous Database, affectez des rôles de sorte que l'application Azure (le principal de service) ait accès à Azure Blob Storage.

    Remarque

    Pour utiliser Azure Blob Storage, vous avez besoin d'un compte de stockage Azure. Si vous ne disposez pas d'un compte de stockage Azure, créez-en un. Pour plus d'informations, reportez-vous à Créez un compte de stockage.
    1. Sur la console Microsoft Azure, sous Services Azure, sélectionnez Comptes de stockage.
    2. Sous Comptes de stockage, cliquez sur le compte de stockage auquel accorder l'accès pour le principal de service.
    3. A gauche, cliquez sur Contrôle d'accès (IAM).
    4. Dans la partie supérieure, cliquez sur + Ajouter → Ajouter une attribution de rôle.
    5. Dans la zone de recherche, saisissez du texte pour affiner la liste des rôles affichés. Saisissez, par exemple, Storage Blob pour afficher les rôles disponibles contenant Storage Blob.
    6. Sélectionnez des rôles appropriés pour l'accès à accorder. Sélectionnez, par exemple, Storage Blob Data Contributeur.
    7. Cliquez sur Suivant.
    8. Dans Ajouter une affectation de rôle, sous Membres, cliquez sur + Sélectionner des membres.
    9. Under Select members, in the select field, enter the azure_app_name listed in Step 1 (the param_value column of the CLOUD_INTEGRATIONS view).
    10. Sélectionner l'application.

      Par exemple, cliquez sur ADBS_APP_OCID1.AUTONOMOUSDATABASE.REGION1.SEA.ANZWKLJSZLYNB3AAWLYL3JVC4ICEXLB3ZG6WTCX735JSSY2NRHOBU4DZOOVA.

    11. Cliquez sur Sélectionner.
    12. Cliquez sur Vérifier + attribuer.
  5. Cliquez à nouveau sur Vérifier + attribuer.

    Après avoir affecté un rôle, vous devez attendre car la propagation des affectations de rôle dans Azure peut prendre jusqu'à cinq minutes.

Cet exemple présente les étapes permettant d'accorder des rôles pour l'accès à Azure Blob Storage. Si vous voulez accorder l'accès à d'autres services Azure, vous devez effectuer des étapes équivalentes pour les services Azure supplémentaires afin d'autoriser l'application Azure (le principal de service) à accéder au service Azure.

Utilisation du principal de service Azure avec DBMS_CLOUD

Lorsque vous effectuez des appels DBMS_CLOUD pour accéder aux ressources Azure et que vous indiquez le nom des informations d'identification en tant que AZURE$PA, l'authentification côté Azure est effectuée à l'aide du principal de service Azure.

Si ce n'est pas déjà fait, procédez comme suit :

Pour utiliser une fonction ou une procédure DBMS_CLOUD avec un principal de service Azure, indiquez AZURE$PA comme nom d'informations d'identification. Par exemple, vous pouvez accéder à Azure Blob Storage à l'aide des informations d'identification de principal de service Azure comme suit :

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

Si vous comparez les étapes requises pour accéder au stockage d'objet, comme indiqué dans Création d'informations d'identification et copie de données dans une table existante, l'étape 1, qui consiste à créer les informations d'identification, n'est pas requise car vous utilisez un principal de service Azure appelé AZURE$PA.

Désactivation du principal de service Azure

Pour désactiver l'accès aux ressources Azure à partir d'Autonomous Database avec le principal de service Azure, utilisez DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.

Pour désactiver le principal de service Azure sur Autonomous Database, procédez comme suit :

BEGIN
    DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
        provider => 'AZURE',
        username => 'adb_user');
END;
/

Lorsque la valeur provider est AZURE et que la valeur username est un utilisateur autre que l'utilisateur ADMIN, la procédure révoque les privilèges de l'utilisateur indiqué. Dans ce cas, l'utilisateur ADMIN et les autres utilisateurs peuvent continuer à utiliser ADMIN.AZURE$PA, et l'application créée pour l'instance Autonomous Database reste sur l'instance.

Lorsque la valeur provider est AZURE et que la valeur username est ADMIN, la procédure permet de désactiver l'authentification basée sur le principal de service Azure et de supprimer l'application de principal de service Azure sur l'instance Autonomous Database. Dans ce cas, si vous voulez activer le principal de service Azure, vous devez effectuer toutes les étapes requises pour utiliser à nouveau le principal de service Azure, notamment les étapes suivantes :

Pour plus d'informations, reportez-vous à DISABLE_PRINCIPAL_AUTH Procédure.

Remarques relatives au principal de service Azure

Remarques relatives à l'utilisation du principal de service Azure.

  • Clonage d'une instance Autonomous Database avec le principal de service Azure : lorsque vous clonez une instance avec le principal de service Azure activé, la configuration du principal de service Azure n'est pas transférée vers le clone. Suivez les étapes permettant d'activer le principal de service Azure sur le clone si vous voulez activer le principal de service Azure sur une instance clonée.