Uso de la entidad de recurso para acceder a los recursos de Oracle Cloud Infrastructure

Puede utilizar una entidad de recurso de Oracle Cloud Infrastructure con Autonomous Database. El usuario o el administrador de arrendamiento definen las políticas de Oracle Cloud Infrastructure y un grupo dinámico que le permite acceder a los recursos de Oracle Cloud Infrastructure con una entidad de recurso. No es necesario crear un objeto de credencial y Autonomous Database crea y protege las credenciales de la red de recursos que utiliza para acceder a los recursos de Oracle Cloud Infrastructure especificados.

Acerca del uso de la entidad de recurso para acceder a los recursos de Oracle Cloud Infrastructure

Puede utilizar una entidad de recurso para autenticar los recursos de Oracle Cloud Infrastructure y acceder a ellos.

Una entidad de recurso consta de un token de sesión temporal y credenciales seguras que permiten a la base de datos autenticarse en otros servicios de Oracle Cloud Infrastructure. Mediante el uso de una entidad de recurso para acceder a los servicios, el token almacenado con las credenciales en Autonomous Database solo es válido para los recursos a los que se ha otorgado acceso al grupo dinámico.

Para utilizar Principal de recurso, el usuario o el administrador de arrendamiento definen las políticas de Oracle Cloud Infrastructure y un grupo dinámico que le permita acceder a los recursos de Oracle Cloud Infrastructure con una entidad de recurso. No es necesario crear un objeto de credencial y Autonomous Database crea y protege las credenciales de la red de recursos que utiliza para acceder a los recursos de Oracle Cloud Infrastructure especificados.

Por ejemplo, al utilizar Autonomous Database, puede que desee utilizar los recursos de Oracle Cloud Infrastructure para realizar lo siguiente:

  • Acceda a los datos de un cubo de almacenamiento de objetos y realice alguna operación en los datos y, a continuación, vuelva a escribir los datos modificados.
  • Acceda a sus almacenes, claves o secretos.

  • Muestre las solicitudes de trabajo o los errores de las solicitudes de trabajo.

Al trabajar con la base de datos, debe autenticar y acceder a la base de datos como usuario de base de datos. Un usuario de Autonomous Database no tiene una identidad de Oracle Cloud Infrastructure Identity and Access Management (IAM), por lo que, como usuario de Autonomous Database, no puede utilizar sus credenciales de base de datos para acceder a los servicios de Oracle Cloud Infrastructure. Sin una principal de recurso, debe obtener credenciales para acceder a los recursos de Oracle Cloud Infrastructure y crear un objeto de credencial para acceder a un recurso desde Autonomous Database.

Una entidad de recurso permite que los recursos estén autorizados para realizar acciones en los servicios de Oracle Cloud Infrastructure. Todos los recursos tienen su propia identidad y se autentican con los certificados que tiene agregados. Estos certificados se crean automáticamente, se asignan a recursos y se rotan, lo que evita la necesidad de crear y gestionar sus propias credenciales para acceder al recurso.

Autonomous Database lets you use a resource principal to authenticate to Oracle Cloud Infrastructure APIs using the following interfaces:

  • Procedimientos y funciones DBMS_CLOUD que toman un argumento de credencial
  • API de SDK de Oracle Cloud Infrastructure PL/SQL

Al autenticarse mediante una entidad de recurso, Autonomous Database proporciona un método seguro para acceder a los recursos de Oracle Cloud Infrastructure.

Hay varios pasos necesarios para configurar una entidad de recurso en Autonomous Database:

Al autenticarse mediante una entidad de recurso, no necesita crear ni gestionar credenciales para acceder a los recursos de Oracle Cloud Infrastructure. Autonomous Database permite que la entidad de recurso esté disponible y protege la entidad de recurso.

Cumplimiento de requisitos para utilizar la entidad de recurso con Autonomous Database

Antes de realizar una llamada a un recurso de Oracle Cloud Infrastructure mediante una principal de recurso, un administrador de arrendamiento de Oracle Cloud Infrastructure debe crear políticas, grupos dinámicos y reglas de Oracle Cloud Infrastructure que definan los privilegios de principal de recurso.

Realice los siguientes pasos antes de utilizar una entidad de recurso con Autonomous Database:

  1. Create an Oracle Cloud Infrastructure dynamic group.
    1. En la consola de Oracle Cloud Infrastructure, haga clic en Identidad y seguridad y, a continuación, en Grupos dinámicos
    2. haga clic en Crear grupo dinámico e introduzca un nombre, una descripción y una regla, o bien utilice el Creador de reglas para agregar una regla.
    3. Haga clic en Crear.

    Los recursos que cumplen los criterios de reglas son miembros del grupo dinámico. Al definir una regla para un grupo dinámico, tenga en cuenta a qué recurso se le dará acceso a otros recursos.

    Por ejemplo, tenga en cuenta los siguientes ejemplos:

    • Permitir que una instancia de Autonomous Database específica acceda a un recurso.

      El parámetro resource.id de Autonomous Database se especifica con un OCID:

      resource.id = '<your_Autonomous_Database_instance_OCID>'
    • Permitir todas las instancias de Autonomous Database en un compartimento.

      Las instancias de Autonomous Database se especifican en el parámetro resource.type y el compartimento se identifica con un OCID especificado en el parámetro resource.compartment.id:

      ALL {resource.type = 'autonomousdatabase', resource.compartment.id = '<your_Compartment_OCID>'}
    • Permitir todos los recursos del compartimento.

      Tipo de recurso identificado por el OCID, especificado en el parámetro resource.compartment.id:

      ALL
              {resource.compartment.id='<your_Compartment_OCID>'}

    Consulte Gestión de grupos dinámicos para obtener más información sobre la creación de un grupo dinámico y la creación de reglas para agregar recursos al grupo.

  2. Escriba sentencias de política para el grupo dinámico para permitir el acceso a los recursos de Oracle Cloud Infrastructure.
    1. En la consola de Oracle Cloud Infrastructure, haga clic en Identidad y seguridad y, a continuación, en Políticas.
    2. Para escribir políticas para un grupo dinámico, haga clic en Crear política e introduzca un nombre y una descripción.
    3. Utilice el Creador de política para crear una política.

      Por ejemplo, para crear una política que permita el acceso a Oracle Cloud Infrastructure Object Store para gestionar cubos y objetos en el almacén de objetos de un arrendamiento:

      Allow dynamic-group Example5 to manage buckets in tenancy
      Allow dynamic-group Example5 to manage objects in tenancy
    4. Haga clic en Crear.

      Consulte Gestión de políticas para obtener más información sobre políticas.

Nota

El token de la entidad de recurso se almacena en caché durante dos horas. Por lo tanto, si cambia la política o el grupo dinámico, tendrá que esperar dos horas para ver el efecto de los cambios.

Activación de la entidad de recurso para acceder a los recursos de Oracle Cloud Infrastructure

Realice los siguientes pasos para activar la entidad de recurso en Autonomous Database:

Como requisito, configure políticas y grupos dinámicos. Consulte Cumplimiento de requisitos para utilizar la entidad de recurso con Autonomous Database para obtener más información.

Para activar una entidad de recurso en Autonomous Database:

  1. As the ADMIN user, enable resource principal for the Autonomous Database instance.

    Por ejemplo:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL();
    
    PL/SQL procedure successfully completed. 
    
    Consulte Procedimiento ENABLE_RESOURCE_PRINCIPAL para obtener más información.

    Se crea la credencial OCI$RESOURCE_PRINCIPAL.

  2. (Opcional) Este paso solo es necesario si desea otorgar acceso a la credencial de entidad de recurso a un usuario de base de datos que no sea el usuario ADMIN. Como usuario ADMIN, active la entidad de recurso para un usuario de base de datos especificado.

    Por ejemplo:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'adb_user');
    
    PL/SQL procedure successfully completed. 
    

    Esto otorga al usuario adb_user acceso a la credencial OCI$RESOURCE_PRINCIPAL.

    Si desea que el usuario especificado tenga privilegios para activar la entidad de recurso para otros usuarios, defina el parámetro grant_option en TRUE.

    Por ejemplo:

    BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(
         username => 'adb_user',
         grant_option => TRUE);
    END;
    /

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

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'adb_user2');
    
    Consulte Procedimiento ENABLE_RESOURCE_PRINCIPAL para obtener más información.
  3. Verifique que la credencial de entidad de recurso esté activada.

    Por ejemplo, como usuario ADMIN, consulte la vista DBA_CREDENTIALS:

    SELECT owner, credential_name FROM dba_credentials 
            WHERE credential_name = 'OCI$RESOURCE_PRINCIPAL' AND owner = 'ADMIN'; 
    
    OWNER  CREDENTIAL_NAME
    -----  ----------------------
    ADMIN  OCI$RESOURCE_PRINCIPAL 
    

    Por ejemplo, como usuario no ADMIN, consulte la vista ALL_TAB_PRIVS:

    SELECT grantee, table_name, grantor, FROM ALL_TAB_PRIVS
              WHERE  grantee = 'ADB_USER';
    
    GRANTEE   TABLE_NAME GRANTOR
    --------- -------------------------------------
    ADB_USER  OCI$RESOURCE_PRINCIPAL ADMIN

La activación de la entidad de recurso en una instancia de Autonomous Database es una operación única. No es necesario volver a activar la entidad de recurso, a menos que ejecute DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPAL para desactivar la entidad de recurso.

Desactivación de la entidad de recurso en Autonomous Database

Muestra los pasos para desactivar la entidad de recurso para todos los usuarios de Autonomous Database o para un usuario especificado.

  1. Para desactivar la entidad de recurso para todos los usuarios, como usuario ADMIN, ejecute el siguiente comando:
    EXEC DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPAL();

    Esto elimina la credencial OCI$RESOURCE_PRINCIPAL.

  2. Verifique que la credencial de entidad de recurso esté desactivada.

    Por ejemplo:

    SELECT owner, credential_name FROM dba_credentials 
            WHERE credential_name = 'OCI$RESOURCE_PRINCIPAL' AND owner = 'ADMIN';
    
    No rows selected
    

Para eliminar el acceso a la credencial de entidad de recurso para un usuario de base de datos especificado, incluya el parámetro username. De esta forma, el usuario especificado no podrá acceder a la credencial OCI$RESOURCE_PRINCIPAL.

Por ejemplo:

EXEC DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPAL(username => 'ADB_USER');

Consulte Procedimiento DISABLE_RESOURCE_PRINCIPAL para obtener más información.

Uso de la entidad de recurso con DBMS_CLOUD

Al especificar credenciales de entidad de recurso con llamadas DBMS_CLOUD, la base de datos auténticas las solicitudes de Oracle Cloud Infrastructure y la base de datos proporciona las credenciales para acceder a los recursos de Oracle Cloud Infrastructure.

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

Para utilizar un procedimiento DBMS_CLOUD con credenciales de entidad de recurso:

  1. Utilice un procedimiento o función DBMS_CLOUD y especifique OCI$RESOURCE_PRINCIPAL como nombre de credencial.

    Por ejemplo, puede acceder a Oracle Cloud Infrastructure Object Storage mediante una entidad de recurso:

    CREATE TABLE CHANNELS
       (channel_id CHAR(1),
        channel_desc VARCHAR2(20),
        channel_class VARCHAR2(20)
       );
    /
    
    BEGIN
     DBMS_CLOUD.COPY_DATA(
        table_name =>'CHANNELS',
        credential_name =>'OCI$RESOURCE_PRINCIPAL',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
        format => json_object('delimiter' value ',')
     );
    END;
    /
    

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 al utilizar la entidad de recurso porque está utilizando la credencial OCI$RESOURCE_PRINCIPAL definida por el sistema.