Uso de la entidad de servicio de Azure para acceder a los recursos de Azure

Puede utilizar un principal de servicio de Azure con Autonomous Database para acceder a los recursos de Azure sin tener que crear y almacenar sus propios objetos de credenciales en la base de datos.

Activación de la entidad de servicio de Azure

Active la autenticación de principal de servicio de Azure para permitir que Autonomous Database acceda a los servicios de Azure sin proporcionar credenciales a largo plazo.

Nota

Para utilizar la autenticación de principal de servicio de Autonomous Database con Azure, necesita una cuenta de Microsoft Azure. Consulte Microsoft Azure para obtener más información.

Para activar la autenticación de principal de servicio de Azure en Autonomous Database:

  1. Obtenga su ID de inquilino de Microsoft Azure Active Directory.

    Consulte Cómo encontrar su ID de inquilino de Azure Active Directory para obtener más información.

  2. Active el principal de servicio de Azure con DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH.

    Por ejemplo:

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

    Esto permite la autenticación del principal de servicio de Azure y crea una aplicación de Azure en Autonomous Database.

    Si desea que el usuario especificado tenga privilegios para activar el principal de servicio de Azure para otros usuarios, defina el parámetro params grant_option en TRUE.

    Por ejemplo:

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

    Después de ejecutar este comando, adb_user puede activar el principal de servicio de Azure para otro usuario. Por ejemplo, si se conecta como adb_user, puede ejecutar el siguiente comando:

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

Consulte ENABLE_PRINCIPAL_AUTH Procedure para obtener más información.

Proporcionar consentimiento para la aplicación Azure y asignación de roles

Para acceder a los recursos de Azure desde Autonomous Database con autenticación de principal de servicio de Azure, debe dar su consentimiento a la aplicación de Azure y asignar roles para permitir el acceso a sus recursos de Azure.

Para proporcionar el consentimiento de la aplicación Azure y asignar roles, realice los siguientes pasos:

  1. En la consulta de Autonomous Database CLOUD_INTEGRATIONS.

    Por ejemplo:

    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 vista CLOUD_INTEGRATIONS está disponible para el usuario ADMIN o para un usuario con el rol DWROLE.

  2. En un explorador, abra la URL de consentimiento de Azure, especificada por el parámetro azure_consent_url.

    Por ejemplo, copie e introduzca la URL en el explorador:

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

    Se abre la página Permisos solicitados y muestra una solicitud de consentimiento, similar a la siguiente:

    Descripción de azure_consent.png a continuación
    Descripción de la ilustración azure_consent.png
  3. Para proporcionar el consentimiento, haga clic en Aceptar.
  4. En la consola de Microsoft Azure, asigne los roles que desea otorgar para permitir el acceso a los recursos de Azure especificados.

    Por ejemplo, si desea acceder a Azure Blob Storage desde Autonomous Database, asigne roles para que la aplicación de Azure (el principal de servicio) tenga acceso a Azure Blob Storage.

    Nota

    Para trabajar con Azure Blob Storage, necesita una cuenta de almacenamiento de Azure. Si no tiene una cuenta de almacenamiento de Azure, cree una cuenta de almacenamiento. Consulte Creación de una cuenta de almacenamiento para obtener más información.
    1. En la consola de Microsoft Azure, en Servicios de Azure, seleccione Cuentas de almacenamiento.
    2. En Cuentas de almacenamiento, haga clic en la cuenta de almacenamiento a la que desea otorgar acceso de principal de servicio.
    3. A la izquierda, haga clic en Control de acceso (IAM).
    4. En el área superior, haga clic en + Agregar → Agregar asignación de rol.
    5. En el área de búsqueda, introduzca texto para acotar la lista de roles que ve. Por ejemplo, introduzca Blobo de almacenamiento para mostrar los roles disponibles que contienen Blobo de almacenamiento.
    6. Seleccione uno o más roles según corresponda para el acceso que desea otorgar. Por ejemplo, seleccione Contribuyente de datos de blob de almacenamiento.
    7. Haga clic en Siguiente.
    8. En Agregar asignación de rol, en Miembros, haga clic en + Seleccionar miembros.
    9. En Seleccionar miembros, en el campo de selección, introduzca el valor azure_app_name que se muestra en el paso 1 (la columna param_value de la vista CLOUD_INTEGRATIONS).
    10. Seleccione la aplicación.

      Por ejemplo, haga clic en ADBS_APP_OCID1.AUTONOMOUSDATABASE.REGION1.SEA.ANZWKLJSZLYNB3AAWLYL3JVC4ICEXLB3ZG6WTCX735JSSY2NRHOBU4DZOOVA

    11. Haga clic en Seleccionar.
    12. Haga clic en Revisar + asignar.
  5. Vuelva a hacer clic en Revisar + Asignar.

    Después de asignar un rol, debe esperar, ya que las asignaciones de roles pueden tardar hasta cinco minutos en propagarse en Azure.

En este ejemplo se muestran los pasos para otorgar roles para acceder a Azure Blob Storage. Si desea proporcionar acceso a otros servicios de Azure, debe realizar pasos equivalentes para los servicios de Azure adicionales para permitir que la aplicación de Azure (el principal de servicio) acceda al servicio de Azure.

Uso de la entidad de servicio de Azure con DBMS_CLOUD

Al realizar llamadas DBMS_CLOUD para acceder a los recursos de Azure y especificar el nombre de credencial como AZURE$PA, la autenticación en el lado de Azure se realiza mediante el principal de servicio de Azure.

Si aún no lo ha hecho, realice los siguientes pasos previos necesarios:

Para utilizar un procedimiento o función DBMS_CLOUD con el principal de servicio de Azure, especifique AZURE$PA como nombre de credencial. Por ejemplo, puede acceder a Azure Blob Storage mediante las credenciales de principal de servicio de Azure de la siguiente manera:

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 compara los pasos necesarios para acceder al almacenamiento de objetos, como se muestra en Crear credenciales y copiar datos en una tabla existente, observe que el paso 1, la creación de credenciales no es necesaria porque está utilizando un principal de servicio de Azure denominado AZURE$PA.

Desactivación de la entidad de servicio de Azure

Para desactivar el acceso a los recursos de Azure desde Autonomous Database con el principal de servicio de Azure, utilice DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.

Para desactivar el principal de servicio de Azure en Autonomous Database:

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

Cuando el valor provider es AZURE y username es un usuario distinto del usuario ADMIN, el procedimiento revoca los privilegios del usuario especificado. En este caso, el usuario ADMIN y otros usuarios pueden seguir utilizando ADMIN.AZURE$PA y la aplicación que se crea para la instancia de Autonomous Database permanece en la instancia.

Cuando el valor provider es AZURE y username es ADMIN, el procedimiento desactiva la autenticación basada en principal de servicio de Azure y suprime la aplicación de principal de servicio de Azure en la instancia de Autonomous Database. En este caso, si desea activar el principal de servicio de Azure, debe realizar todos los pasos necesarios para volver a utilizar el principal de servicio de Azure, incluidos los siguientes:

Consulte DISABLE_PRINCIPAL_AUTH Procedure para obtener más información.

Notas para la entidad de servicio de Azure

Notas para utilizar el principal de servicio de Azure.

  • Clonación de una instancia de Autonomous Database con el principal de servicio de Azure: al clonar una instancia con el principal de servicio de Azure activado, la configuración del principal de servicio de Azure no se transfiere a la clonación. Realice los pasos para activar el principal de servicio de Azure en la clonación si desea activar el principal de servicio de Azure en una instancia clonada.