Uso de nombres de recursos de Amazon (ARN) para acceder a los recursos de AWS

Puede usar Amazon Resource Names (ARN) para obtener acceso a recursos de AWS con la base de datos de IA autónoma.

Acerca del uso de nombres de recursos de Amazon (ARN) para acceder a los recursos de AWS

Al utilizar la autenticación basada en roles de ARN con la base de datos de IA autónoma, puede acceder de forma segura a los recursos de AWS sin crear ni guardar credenciales basadas en claves de acceso de AWS IAM a largo plazo.

Por ejemplo, puede que desee cargar datos de un cubo S3 de AWS en su base de datos de IA autónoma, realizar alguna operación en los datos y, a continuación, volver a escribir los datos modificados en el cubo S3. Puede hacerlo sin utilizar un ARN si tiene credenciales de usuario de AWS para acceder al cubo S3. Sin embargo, el uso de ARN basados en roles para acceder a los recursos de AWS desde la base de datos de IA autónoma tiene las siguientes ventajas:

  • Puede crear acceso basado en roles, con diferentes políticas para diferentes usuarios o esquemas que necesiten acceso a los recursos de AWS desde una instancia de base de datos de IA autónoma. Esto le permite establecer una política para limitar el acceso a los recursos de AWS por rol. Por ejemplo, definir una política que limite el acceso de solo lectura, por rol, a un cubo S3.
  • Las credenciales basadas en ARN proporcionan una mejor seguridad, ya que no necesita proporcionar credenciales de usuario de AWS a largo plazo en el código para acceder a los recursos de AWS. La base de datos de IA autónoma gestiona las credenciales temporales generadas desde AWS Assume Role Operation.

Pasos para configurar el uso de ARN con una base de datos de IA autónoma

Antes de crear una credencial con un ARN en Autonomous AI Database, en AWS, el administrador de su cuenta debe definir una política que le permita acceder a los recursos de AWS, como un cubo S3. Por defecto, los servicios de credenciales de ARN no están activados en la base de datos de IA autónoma. El usuario ADMIN activa las credenciales de ARN para el usuario necesario, lo que les permite crear y utilizar credenciales de ARN en la instancia de base de datos de IA autónoma.

En AWS, el rol ARN es el identificador del acceso proporcionado y se puede ver en la consola de AWS. Para mayor seguridad, cuando el administrador de AWS configura el rol, las políticas y la relación de confianza para la cuenta de AWS, también debe configurar un ID externo en la relación de confianza del rol.

El ID externo proporciona protección adicional para asumir roles. El administrador de AWS configura el ID externo como uno de los siguientes, según la instancia de la base de datos de IA autónoma:

  • OCID de compartimento

  • OCID de la base de datos

  • OCID del arrendamiento

En AWS, el rol solo puede ser asumido por usuarios de confianza identificados por el ID externo incluido en la URL de solicitud, donde el ID externo proporcionado en la solicitud coincide con el ID externo configurado en la relación de confianza del rol.

Nota

La configuración del ID externo es necesaria para la seguridad.

En la siguiente figura, se describen los pasos de configuración:

Descripción de adb_arn_config_steps.eps a continuación
Descripción de la ilustración adb_arn_config_steps.eps

Pasos para utilizar ARN con DBMS_CLOUD

Cada recurso de AWS tiene su propia identidad y el recurso se autentica con la instancia de la base de datos de IA autónoma mediante una credencial DBMS_CLOUD que crea con parámetros que identifican la ARN. Autonomous AI Database crea y protege las credenciales principales que utiliza para acceder a los recursos de AWS.

Para crear una credencial con parámetros ARN para acceder a los recursos de AWS:

  1. Realice los pasos previos necesarios en la cuenta de AWS: en su cuenta de AWS, desde la consola de administración de AWS o mediante la CLI, cree los roles y las políticas de la ARN que utiliza con la base de datos de IA autónoma y actualice la relación de confianza para el rol. El ARN de usuario de Oracle se configura cuando se actualiza la relación de confianza para el rol.

    Consulte Realización de requisitos de gestión de AWS para utilizar nombres de recurso de Amazon (ARN) para obtener más información.

  2. Realice los pasos previos necesarios en la base de datos de IA autónoma: en la base de datos de IA autónoma debe permitir que el usuario ADMIN u otro usuario utilice credenciales con parámetros ARN para acceder a los recursos de AWS.

    Consulte Realización de requisitos previos para la base de datos de IA autónoma para utilizar Amazon ARN para obtener más información.

  3. Cree credenciales con DBMS_CLOUD.CREATE_CREDENTIAL y proporcione los parámetros que identifican un rol de AWS. Con el objeto de credenciales, la base de datos de IA autónoma puede acceder a los recursos de AWS según lo especificado en las políticas definidas para el rol en la cuenta de AWS.

    Consulte Creación de credenciales con parámetros de ARN para acceder a los recursos de AWS para obtener más información sobre estos pasos.

  4. Utilice el objeto de credencial que ha creado en el paso anterior con un procedimiento o función DBMS_CLOUD que toma un parámetro de credencial, como DBMS_CLOUD.COPY_DATA o DBMS_CLOUD.LIST_OBJECTS.

Cumplimiento de requisitos de gestión de AWS para utilizar nombres de recursos de Amazon (ARN)

Utilizando la consola de administración de AWS o utilizando las API, cree un usuario, rol, políticas y relación de confianza de AWS. Realice estos pasos antes de utilizar con DBMS_CLOUD.CREATE_CREDENTIAL para crear una credencial con un parámetro ARN en Autonomous AI Database.

Para usar un ARN para acceder a los recursos de AWS, su administrador de AWS define las políticas y un principal que le permite acceder a los recursos de AWS. Por ejemplo, al utilizar la base de datos de IA autónoma, puede que desee acceder a los datos desde un cubo S3, realizar alguna operación en los datos y, a continuación, volver a escribir los datos modificados en el cubo S3.

Nota

Según la configuración de AWS existente y el ID externo que utilice, no es necesario crear un nuevo rol y política para cada instancia de base de datos de IA autónoma. Si ya tiene un rol de AWS que contiene la política necesaria para acceder a un recurso, por ejemplo, para acceder al almacenamiento en la nube S3, puede modificar la relación de confianza para incluir los detalles en el paso 3. Del mismo modo, si ya tiene un rol con la relación de confianza necesaria, puede utilizar ese rol para acceder a todas sus bases de datos en un compartimento o arrendamiento de OCI si utiliza un ID externo que especifique el OCID del compartimento o el OCID del arrendamiento.

Desde la consola de administración de AWS o mediante las API, un administrador de AWS realiza los siguientes pasos:

  1. Cree una política. En la política, especifica permisos para acceder a los recursos de AWS, como cubos S3.
  2. Cree un rol y asocie la política al rol.
    1. Acceda a la consola de administración de AWS y seleccione Gestión de identidad y acceso (IAM).
    2. Haga clic en Crear rol.
    3. Seleccione Otra cuenta de AWS.
    4. Introduzca su ID de cuenta.
      Se utiliza como valor temporal. Posteriormente, sustituya esto por el ID de cuenta que utiliza para acceder a los recursos de AWS.
    5. En el área Opciones, seleccione Requerir ID externo e introduzca un ID externo temporal, como 0000. Posteriormente, sustituirá este ID externo por un valor válido.
    6. Haga clic en Siguiente permiso para asociar las políticas que ha creado en el paso 1 u otras políticas que desea aplicar al rol.
    7. Haga clic en Siguiente etiqueta y aplique o cree etiquetas según sea necesario para el rol.
    8. Haga clic en Siguiente revisión y agregue un nombre de rol y una descripción de rol.
    9. Haga clic en Crear rol.

    Utilice el ARN del rol con DBMS_CLOUD.CREATE_CREDENTIAL para crear objetos de credenciales con parámetros ARN para acceder a los recursos de AWS.

    Consulte Creación de un rol para delegar permisos a un usuario de IAM para obtener más información.

  3. Especifique una relación de confianza para el rol.
    1. En la lista Roles, en Nombre de rol, seleccione el rol que ha creado.
    2. En la página Resumen de roles para el rol seleccionado, seleccione el separador Relaciones de confianza.
    3. En la relación de confianza, haga clic en Editar relación de confianza.
    4. Edite la relación de confianza para especificar el parámetro Principal AWS.

      Este ARN de usuario de AWS está disponible en la vista CLOUD_INTEGRATIONS. Consulte Realización de requisitos previos para la base de datos de IA autónoma para utilizar Amazon ARN para obtener más información.

    5. Edite la relación de confianza para especificar el ID externo.

      En la base de datos de IA autónoma al crear una credencial de AWS ARN con DBMS_CLOUD.CREATE_CREDENTIAL o al activar AWS ARN con DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, el valor de parámetro external_id_type por defecto es database_ocid. Opcionalmente, puede definir el valor external_id_type en uno de los valores soportados: database_ocid, compartment_ocid o tenant_ocid.

      Al utilizar el OCID de base de datos como ID externo, la relación de confianza de la política solo confía en la instancia de base de datos de IA autónoma especificada con el OCID. Si utiliza un OCID de compartimento, la relación de confianza de la política confía en todas las instancias de la base de datos de IA autónoma del compartimento y puede utilizar el mismo rol ARN para otorgar acceso a los recursos de AWS a cualquier base de datos de IA autónoma del compartimento especificado. Del mismo modo, si utiliza el OCID del arrendamiento, puede utilizar el mismo rol ARN para otorgar acceso a los recursos de AWS a cualquier base de datos de IA autónoma del arrendamiento especificado.

      Antes, en el paso 2, establecía el ID externo de la relación de confianza en el valor temporal 0000.

      En AWS, puede configurar el valor de ID externo de relación de confianza para que coincida con una de las siguientes opciones:

      • Cuando el tipo external_id_type es database_ocid, en AWS configura el ID externo de la relación de confianza del rol para que sea el OCID de la base de datos.

        El OCID de la base de datos está disponible ejecutando la siguiente consulta:

        SELECT cloud_identity FROM v$pdbs;

        Consulte Obtener detalles de arrendamiento para obtener más información.

      • Cuando el tipo external_id_type es compartment_ocid, en AWS configura el ID externo de relación de confianza del rol para que sea el OCID de compartimento.

        El OCID de compartimento está disponible en la página de detalles del compartimento de la consola de Oracle Cloud Infrastructure. Para buscar la página de detalles del compartimento, en el menú de navegación izquierdo de Oracle Cloud Infrastructure, haga clic en Identidad y seguridad y, a continuación, seleccione Compartimentos. Seleccione el compartimento que contiene la instancia de base de datos de IA autónoma para ver el ID de compartimento.

      • Cuando el tipo external_id_type es tenant_ocid, en AWS configura el ID externo de relación de confianza del rol para que sea el OCID de arrendamiento.

        El OCID de arrendamiento está disponible en la página de detalles del arrendamiento desde la consola de Oracle Cloud Infrastructure. Para buscar la página de detalles del arrendamiento, en el menú de navegación de la izquierda de Oracle Cloud Infrastructure, haga clic en Gobernanza y administración y, a continuación, seleccione Detalles de arrendamiento. El separador Información de arrendamiento muestra el OCID de arrendamiento.

      • Al definir el valor para ExternalID, el valor de OCID debe estar en mayúsculas por defecto. Si desea proporcionar el OCID en minúsculas, defina la condición "StringEqualsIgnoreCase" en lugar de "StringEquals" en el JSON al editar la relación de confianza.

      Descripción de arn_aws_create_role_aws_trust_final.png a continuación
      Descripción de la ilustración arn_aws_create_role_aws_trust_final.png

Una vez finalizada la configuración del rol ARN, puede activar ARN en la instancia. Consulte Realización de requisitos previos para la base de datos de IA autónoma para utilizar Amazon ARN para obtener más información.

Realización de requisitos de base de datos de IA autónoma para utilizar ARN de Amazon

Antes de utilizar un recurso de AWS con DBMS_CLOUD.CREATE_CREDENTIAL con un parámetro ARN, el usuario ADMIN debe activar ARN en la instancia de la base de datos de IA autónoma.

Por defecto, los servicios de credenciales de ARN no están activados en la base de datos de IA autónoma. El usuario ADMIN ejecuta el procedimiento DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH para permitir que el usuario ADMIN u otros usuarios creen credenciales con parámetros ARN.

  1. Active el uso de credenciales de ARN en la instancia de la base de datos de IA autónoma.
    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            username => 'adb_user',
            params => JSON_OBJECT( 
                    'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN'));
    END;
    /
    

    Si desea que el usuario especificado tenga privilegios para activar credenciales ARN para otros usuarios, defina el parámetro params grant_option en TRUE.

    Por ejemplo:

    BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
         username => 'adb_user',
         params => JSON_OBJECT(
                         'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
                         'grant_option' value TRUE ));
    END;
    /

    Después de ejecutar este comando, adb_user tiene privilegios para activar las credenciales de ARN para otros usuarios.

    Por ejemplo, si se conecta como adb_user, puede ejecutar el siguiente comando:

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

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

  2. Consulte la vista CLOUD_INTEGRATIONS para obtener el ARN de usuario de AWS de Oracle.
    SELECT param_value FROM CLOUD_INTEGRATIONS
            WHERE param_name = 'aws_user_arn';
    
    PARAM_VALUE
    --------------------------------------------  
    arn:aws:iam::account-ID:user/username

    La vista CLOUD_INTEGRATIONS está disponible para el usuario ADMIN o para un usuario con privilegios DWROLE.

    El administrador de AWS utiliza el valor aws_user_arn al configurar la relación de confianza del rol de AWS con el rol y las políticas en el sistema de AWS. Al proporcionar este valor, se otorga permiso en AWS para que DBMS_CLOUD acceda a los recursos de AWS.

Después de activar ARN en la instancia de base de datos de IA autónoma ejecutando DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, la credencial denominada AWS$ARN está disponible para su uso con cualquier API DBMS_CLOUD que tome una credencial como entrada. A excepción de la credencial denominada AWS$ARN, también puede crear credenciales adicionales con parámetros ARN para acceder a los recursos de AWS. Consulte Creación de credenciales con parámetros ARN para acceder a recursos de AWS para obtener más información.

Creación de credenciales con parámetros de ARN para acceder a los recursos de AWS

Después de activar el uso de ARN para la instancia de la base de datos de IA autónoma y el administrador de AWS configura la ARN, en la base de datos de IA autónoma puede crear un objeto de credencial con parámetros ARN.

Autonomous AI Database crea y protege las credenciales de principal que utiliza para acceder a los recursos de Amazon cuando proporciona el objeto de credencial con procedimientos y funciones DBMS_CLOUD.

Para utilizar los recursos de Amazon con Autonomous AI Database, haga lo siguiente:

  1. Cree credenciales mediante el procedimiento DBMS_CLOUD.CREATE_CREDENTIAL con el parámetro params para especificar el valor de ARN. Por ejemplo:
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_ARN',
        params =>
            JSON_OBJECT('aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',                                            
                        'external_id_type' value 'database_ocid')
      );
    END;
    /

    Esta operación crea las credenciales en la base de datos en un formato cifrado. Puede utilizar cualquier nombre para el nombre de credencial.

    Para obtener información detallada sobre los parámetros, consulte el Procedimiento CREATE_CREDENTIAL.

  2. Use un procedimiento DBMS_CLOUD para acceder a un recurso de Amazon con las credenciales de ARN.

    Por ejemplo, utilice DBMS_CLOUD.LIST_OBJECTS.

    SELECT object_name FROM DBMS_CLOUD.LIST_OBJECTS(
               credential_name => 'DEF_CRED_ARN',
               location_uri    => 'https://my-bucket.s3.us-west-2.amazonaws.com/');

Actualización de credenciales con parámetros de ARN para los recursos de AWS

Las credenciales de ARN que utiliza en la base de datos de IA autónoma funcionan con el servicio de token de AWS que le permite utilizar credenciales temporales basadas en roles para acceder a los recursos de AWS desde la base de datos de IA autónoma.

Cuando un administrador de AWS revoca las políticas, los roles o la relación de confianza, debe actualizar las credenciales o crear nuevas credenciales para acceder a los recursos de AWS.

Realice los siguientes pasos para actualizar las credenciales:

  1. Utilice DBMS_CLOUD.UPDATE_CREDENTIAL para actualizar una credencial basada en ARN para proporcionar un nuevo valor de ARN.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'aws_role_arn',
         value => 'new_ARN_value'); 
    END;
    /

    Esto actualiza el atributo aws_role_arn al nuevo valor new_ARN_value para la credencial denominada DEF_CRED_ARN.

  2. Utilice DBMS_CLOUD.UPDATE_CREDENTIAL para actualizar una credencial basada en ARN para actualizar el valor de atributo external_id_type.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'external_id_type',
         value => 'compartment_ocid'); 
    END;
    /

    Esto actualiza el valor de atributo external_id_type al valor compartment_ocid.

Consulte Procedimiento UPDATE_CREDENTIAL y Procedimiento CREATE_CREDENTIAL para obtener más información.