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

Puede utilizar una entidad 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 entidad 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 entidad 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 la entidad de servicio de Azure en Autonomous Database:

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

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

  2. Active la entidad 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 de la entidad de servicio de Azure y crea una aplicación de Azure en Autonomous Database.

    Si desea que el usuario especificado tenga privilegios para activar la entidad 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 la entidad 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 el procedimiento ENABLE_PRINCIPAL_AUTH para obtener más información.

Consentimiento para la aplicación Azure y asignación de roles

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

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

  1. En Autonomous Database, consulte 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 dirección 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 se muestra una solicitud de consentimiento, similar a la siguiente:

    Descripción de azure_consent.png a continuación
  3. Para proporcionar 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 Azure (la entidad 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 al principal de servicio.
    3. A la izquierda, haga clic en Control de acceso (IAM).
    4. From the top area, click + Add → Add role assignment.
    5. Introduzca texto en el área de búsqueda para restringir la lista de roles que se muestran. Por ejemplo, introduzca Blob de almacenamiento para mostrar los roles disponibles que contienen Blob de almacenamiento.
    6. Seleccione uno o más roles según corresponda para el acceso que desea otorgar. Por ejemplo, seleccione Colaborador de datos de bloques de almacenamiento.
    7. Haga clic en Siguiente.
    8. En Agregar asignación de rol, en Miembros, haga clic en + Seleccionar miembros.
    9. 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 adicionales de Azure para permitir que la aplicación Azure (la entidad de servicio) acceda al servicio de Azure.

Uso de la entidad de servicio de Azure con DBMS_CLOUD

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

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

Para utilizar un procedimiento o función DBMS_CLOUD con la entidad de servicio de Azure, especifique AZURE$PA como nombre de credencial. Por ejemplo, puede acceder a Azure Blob Storage mediante las credenciales de la entidad 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 a Object Storage, como se muestra en Creación de credenciales y copia de datos en una tabla existente, observe que el paso 1, la creación de credenciales no es necesaria porque está utilizando una entidad de servicio de Azure denominada AZURE$PA.

Desactivación de la entidad de servicio de Azure

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

Para desactivar la entidad 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 de 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 creada para la instancia de Autonomous Database permanece en la instancia.

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

Consulte el procedimiento DISABLE_PRINCIPAL_AUTH para obtener más información.

Notas sobre la entidad de servicio de Azure

Notas sobre el uso de la entidad de servicio de Azure.

  • Clonación de una instancia de Autonomous Database con la entidad de servicio de Azure: cuando clona una instancia con la entidad de servicio de Azure activada, la configuración de la entidad de servicio de Azure no se transfiere a la clonación. Realice los pasos para activar la entidad de servicio de Azure en la clonación si desea activar la entidad de servicio de Azure en una instancia clonada.