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 entidad de recurso 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 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 entidad de recurso 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, autentique y acceda 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 entidad 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. Cada recurso tiene su propia identidad y se autentica 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 permite utilizar una entidad de recurso para autenticarse en las API de Oracle Cloud Infrastructure mediante las siguientes interfaces:

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

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:

Cuando se autentica 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 entidad 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. Cree un grupo dinámico de Oracle Cloud Infrastructure.
    1. En la consola de Oracle Cloud Infrastructure, haga clic en Identity and Security y, a continuación, en Dynamic Groups
    2. Haga clic en Crear grupo dinámico e introduzca un nombre, una descripción y una regla o 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.

      La instancia de Autonomous Database se especifica en el parámetro resource.id con un OCID:

      resource.id = 'your_Autonomous_Database_instance_OCID'

      Debe agregar un nombre de dominio cuando el arrendamiento utiliza un dominio de identidad. Por ejemplo:

      resource.id = 'identity_domain_name/your_Autonomous_Database_instance_OCID'
    • Permitir todas las bases de datos autónomas en un compartimento.

      Las bases de datos autónomas se especifican en el parámetro resource.type y el compartimento se identifica mediante 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 al almacén de objetos de Oracle Cloud Infrastructure 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

      Debe agregar un nombre de dominio cuando el arrendamiento utiliza un dominio de identidad. Por ejemplo:

      Allow dynamic-group identity_domain_name/Example5 to manage buckets in tenancy
      Allow dynamic-group identity_domain_name/Example5 to manage objects in tenancy
    4. Haga clic en Crear.
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.

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

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. Como usuario ADMIN, active la entidad de recurso para la instancia de Autonomous Database.

    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' 
            AND table_name = 'OCI$RESOURCE_PRINCIPAL' 
            AND table_schema = 'ADMIN';
    
    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 puntual. 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 autentica 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.