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. Usted o su administrador de arrendamiento definirán las políticas de Oracle Cloud Infrastructure y un grupo dinámico que le permitirá acceder a los recursos de la instancia de Oracle Cloud Infrastructure con una entidad. No es necesario crear un objeto de credencial y Autonomous Database crea y protege las credenciales de 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 y acceder a los recursos de Oracle Cloud Infrastructure.

Una entidad de recurso consta de un token de sesión temporal y credenciales seguras que permiten que la base de datos se autentique en otros servicios de Oracle Cloud Infrastructure. Mediante una entidad de recurso para acceder a 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 la entidad de recurso, usted o el administrador de su 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 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:

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

  • Lista de solicitudes de trabajo o lista de errores de solicitudes de trabajo.

Al trabajar con la base de datos, 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 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 mediante los certificados que se le agregan. Estos certificados se crean, asignan a los recursos y rotan automáticamente, evitando la necesidad de que cree y gestione 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 del SDK 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:

Al autenticarse mediante una entidad de recurso, no necesita crear ni gestionar credenciales para acceder a los recursos de Oracle Cloud Infrastructure. Autonomous Database pone a su disposición la entidad de recurso y la protege.

Cumplimiento de requisitos para usar 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 entidad 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 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 las reglas son miembros del grupo dinámico. Al definir una regla para un grupo dinámico, considere qué recurso se va a otorgar 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 utilice 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 que 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. Escribir 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 directiva 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 a fin de 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 utilice 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 principal de recurso se guarda en caché durante dos horas. Si cambia la política o el grupo dinámico, tendrá que esperar dos horas para ver el efecto de los cambios.

Consulte Cómo funcionan las políticas y Gestión de políticas para obtener más información sobre las 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 Realización de requisitos para usar 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 ENABLE_RESOURCE_PRINCIPAL Procedure para obtener más información.

    Esto 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 acceso adb_user 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 ENABLE_RESOURCE_PRINCIPAL Procedure para obtener más información.
  3. Verifique que la credencial de entidad de recurso esté activada.

    Por ejemplo, cuando el usuario ADMIN consulta 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. Esto deniega el acceso del usuario especificado a la credencial OCI$RESOURCE_PRINCIPAL.

Por ejemplo:

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

Consulte DISABLE_RESOURCE_PRINCIPAL Procedure 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 siguientes 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 Crear credenciales y copiar datos en una tabla existente, observe que el paso 1, la creación de credenciales no es necesaria cuando utiliza la entidad de recurso porque está utilizando la credencial OCI$RESOURCE_PRINCIPAL definida por el sistema.