Utiliser un principal de service Azure pour accéder aux ressources Azure

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

Activer un principal de service Azure

Activer l'authentification du principal de service Azure pour permettre à Autonomous AI Database d'accéder aux services Azure sans fournir de données d'identification à long terme.

Note

Pour utiliser Autonomous AI Database avec l'authentification de principal de service Azure, vous avez besoin d'un compte Microsoft Azure. Voir Microsoft Azure pour plus de détails.

Pour activer l'authentification du principal de service Azure sur Autonomous AI Database :

  1. Obtenez votre ID client Microsoft Azure Active Directory.
  2. Activez un 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;
    /

    Cela permet l'authentification du principal de service Azure et crée une application Azure sur Autonomous AI Database.

    Si vous voulez que l'utilisateur spécifié dispose de privilèges pour activer le principal de service Azure pour les autres utilisateurs, réglez le paramètre params grant_option à TRUE.

    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;
    /

    Après avoir exécuté cette commande, 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, voir ProcédureENABLE_PRINCIPAL_AUTH.

Fournir le consentement pour les applications Azure et affecter des rôles

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

Pour fournir le consentement de l'application Azure et affecter des rôles, procédez comme suit :

  1. Sur l'interrogation Autonomous AI Database CLOUD_INTEGRATIONS.

    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 doté du rôle DWROLE.

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

    Par exemple, copiez et entrez l'URL 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 Autorisations demandées s'ouvre et affiche une demande de consentement, similaire à ce qui suit :

    Description de azure_consent.png :
    Description de l'illustration azure_consent.png
  3. Pour fournir un consentement, cliquez sur Accepter.
  4. Dans la console Microsoft Azure, affectez les rôles que vous souhaitez accorder pour autoriser l'accès aux ressources Azure spécifiées.

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

    Note

    Pour utiliser Azure Blob Storage, vous avez besoin d'un compte de stockage Azure. Si vous n'avez pas de compte de stockage Azure, créez un compte de stockage. Pour plus d'informations, voir Créer un compte de stockage.
    1. Dans la console Microsoft Azure, sous Services Azure, sélectionnez Comptes de stockage.
    2. Sous Comptes de stockage, cliquez sur le compte de stockage auquel vous voulez accorder l'accès au principal de service.
    3. À gauche, cliquez sur Contrôle de l'accès (IAM).
    4. Dans la zone supérieure, cliquez sur + Ajouter → Ajouter une affectation de rôle.
    5. Dans la zone de recherche, entrez du texte pour restreindre la liste des rôles que vous voyez. Par exemple, entrez Objet BLOB de stockage pour afficher les rôles disponibles qui contiennent Objet BLOB de stockage.
    6. Sélectionnez un ou plusieurs rôles appropriés pour l'accès que vous voulez accorder. Par exemple, sélectionnez Contributeur de données BLOB de stockage.
    7. Cliquez sur Suivant.
    8. Dans Ajouter une affectation de rôle, sous Membres, cliquez sur + Sélectionner des membres.
    9. Sous Sélectionner des membres, dans le champ de sélection, entrez azure_app_name dans la liste de l'étape 1 (colonne param_value de la vue CLOUD_INTEGRATIONS).
    10. Sélectionnez l'application.

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

    11. Cliquez sur Sélectionner.
    12. Cliquez sur Vérifier + affecter.
  5. Cliquez de nouveau sur Vérifier + Affecter.

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

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

Utiliser un principal de service Azure avec DBMS_CLOUD

Lorsque vous effectuez des appels DBMS_CLOUD pour accéder aux ressources Azure et spécifiez le nom des données d'identification AZURE$PA, l'authentification côté Azure se produit à l'aide du principal de service Azure.

Si vous ne l'avez pas encore fait, effectuez les étapes préalables requises :

Pour utiliser une procédure ou une fonction DBMS_CLOUD avec le principal de service Azure, spécifiez AZURE$PA comme nom de données d'identification. Par exemple, vous pouvez accéder à Azure Blob Storage à l'aide des données d'identification du 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'objets, comme indiqué sous Créer des données d'identification et copier des données dans une table existante, notez que l'étape 1, la création de données d'identification n'est pas requise car vous utilisez un principal de service Azure nommé AZURE$PA.

Désactiver un principal de service Azure

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

Pour désactiver le principal de service Azure sur Autonomous AI Database :

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

Lorsque la valeur provider est AZURE et que username est un utilisateur autre que ADMIN, la procédure révoque les privilèges de l'utilisateur spécifié. Dans ce cas, l'utilisateur ADMIN et d'autres utilisateurs peuvent continuer à utiliser ADMIN.AZURE$PA et l'application créée pour l'instance de base de données d'intelligence artificielle autonome reste sur l'instance.

Lorsque la valeur provider est AZURE et que username est ADMIN, la procédure désactive l'authentification basée sur le principal de service Azure et supprime l'application principale de service Azure sur l'instance de base de données Autonomous AI 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 :

Pour plus d'informations, voir ProcédureDISABLE_PRINCIPAL_AUTH.

Notes sur le principal de service Azure

Notes pour l'utilisation du principal de service Azure.

  • Clonage d'une instance de base de données autonome 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 reportée sur le clone. Effectuez les étapes pour activer le principal de service Azure sur le clone si vous voulez activer le principal de service Azure sur une instance clonée.