Autentica mediante tokens de acceso

En este documento, se muestra cómo configurar la autenticación para acceder a las APIs de Google Cloud cuando el sistema SAP se aloja en una instancia de VM de Compute Engine.

Configura la autenticación

Para configurar la autenticación, sigue estos pasos:

  1. En la consola de Google Cloud, habilita la API de Service Account Credentials de IAM para tu proyecto de Google Cloud que requiere autenticación. Junto con la API de credenciales de la cuenta de servicio de IAM, debes habilitar cualquier otras APIs compatibles a la que planeas acceder mediante el SDK.

    Ir a la biblioteca de API

    Para obtener información sobre cómo habilitar las APIs de Google Cloud, consulta Habilita las API.

  2. En la consola de Google Cloud, crea una cuenta de servicio de IAM para la instancia de VM del host.

    Ir a Cuentas de servicio

    Para obtener información sobre cómo crear una cuenta de servicio, consulta Crea una cuenta de servicio.

  3. Otorga el rol Service Account Token Creator a la cuenta de servicio. Para obtener instrucciones, consulta Otorga un solo rol.

  4. Conecta la cuenta de servicio a la instancia de VM en la que se ejecuta la carga de trabajo de SAP. Además, configura el permiso de acceso de la VM en cloud-platform.

    • Si especificas la cuenta de servicio con la consola de Google Cloud, el permiso de acceso de la VM se establece automáticamente en el permiso cloud-platform.
    • Si especificas la cuenta de servicio con Google Cloud CLI o la API de Compute Engine, debes configurar el permiso de acceso a la API en Allow full access to all Cloud APIs.

      Para obtener instrucciones, consulta Cómo crear una VM y conecta la cuenta de servicio.

      Después de actualizar el permiso, reinicia la VM. Si tienes varias instancias de VM para la misma instalación de SAP, debes completar este paso en todas ellas.

  5. En la consola de Google Cloud, crea una cuenta de servicio de IAM dedicada para acceder a las APIs de Google Cloud.

    Ir a Cuentas de servicio

    Para obtener instrucciones, consulta Cómo crear una cuenta de servicio.

  6. Otorga a la cuenta de servicio los roles de IAM necesarios para acceder a la funcionalidad de la API. Para comprender el requisito de rol para las APIs de Google Cloud, consulta la documentación de la API individual y sigue el principio de privilegio mínimo. Si deseas obtener más información sobre los roles predefinidos específicos de la API, consulta Encuentra funciones de IAM para las APIs de Google Cloud.

  7. Si creaste la cuenta de servicio en un proyecto diferente al del proyecto que contiene las APIs de Google Cloud, debes realizar pasos adicionales para la configuración de la cuenta de servicio. Para obtener más información, consulta Configura cuentas de servicio en un entorno entre proyectos.

  8. En el sistema SAP, configura la clave de cliente:

    1. En la GUI de SAP, ejecuta el código de transacción /GOOG/SDK_IMG.

      Como alternativa, ejecuta el código de transacción SPRO y, luego, haz clic en IMG de referencia de SAP.

    2. Haz clic en el SDK de ABAP para Google Cloud > Configuración básica > Configurar clave de cliente.

    3. Haz clic en Entradas nuevas.

    4. Ingresa los valores para los siguientes campos:

      Campo Descripción
      Nombre de la clave de Google Cloud Especifica un nombre de la configuración de la clave de cliente. Por ejemplo, TEST_PUBSUB.
      Nombre de la cuenta de servicio de Google Cloud

      Especifica el nombre de la cuenta de servicio a la que le otorgaste permisos para acceder a las APIs de Google Cloud. Por ejemplo, sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com.

      Si la VM del host de tu sistema SAP que contiene el SDK está en un proyecto diferente al que tiene habilitadas las APIs de Google Cloud, especifica la cuenta de servicio que se usa para acceder a las APIs de Google Cloud. Para obtener más información, consulta Configura cuentas de servicio en un entorno entre proyectos.

      Permiso de Google Cloud Especifica el permiso de acceso a la API, https://www.googleapis.com/auth/cloud-platform.
      Identificador de proyecto de Google Cloud Especifica el ID del proyecto de Google Cloud que contiene las APIs de destino.
      Nombre del comando Deja este campo en blanco.
      Clase de autorización Especifica la clase de autorización, /GOOG/CL_AUTH_GOOGLE.
      Almacenamiento en caché de tokens

      La marca que determina si los tokens de acceso recuperados de Google Cloud se almacenan en caché.

      Te recomendamos que habilites el almacenamiento en caché de tokens después de que termines de configurar y probar tu conexión a Google Cloud. Para obtener más información sobre el almacenamiento en caché de tokens, consulta Habilita el almacenamiento en caché de tokens.

      Segundos de actualización de los tokens La cantidad de tiempo en segundos antes de que caduque un token de acceso y se deba actualizar. El valor predeterminado es 3500.
      Parámetro de autorización 1 Deja este campo en blanco.
      Parámetro de autorización 2 Deja este campo en blanco.
    5. Guarda la entrada nueva.

  9. En el sistema SAP, crea nuevos destinos de RFC para las APIs que planeas consumir con el SDK de ABAP para Google Cloud.

    Para obtener información sobre cómo crear destinos de RFC, consulta Destinos de RFC.

  10. En el sistema SAP, configura la tabla de asignación de servicios para la API de IAM y otras APIs que planeas consumir con el SDK de ABAP para Google Cloud.

    1. En la GUI de SAP, ejecuta el código de transacción /GOOG/SDK_IMG.

      Como alternativa, ejecuta el código de transacción SPRO y, luego, haz clic en IMG de referencia de SAP.

    2. Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar asignación de servicios.

    3. Haz clic en Entradas nuevas.

    4. Especifica los destinos de RFC para la API de IAM y otras APIs, por ejemplo, Pub/Sub API v1.

      Nombre Nombre del servicio Destino de RFC
      Nombre de la clave de Google Cloud iamcredentials.googleapis.com ZGOOG_IAMCREDENTIALS
      Nombre de la clave de Google Cloud pubsub:v1 ZGOOG_PUBSUB_V1
    5. Guarda la entrada nueva.

  11. En el sistema SAP, valida la configuración de autenticación. Para obtener más información, consulta Valida la configuración de autenticación.

Configura cuentas de servicio en un entorno entre proyectos

La VM host del sistema SAP, que contiene el SDK, puede estar en un proyecto de Google Cloud diferente al que tenga las APIs de Google Cloud habilitadas. En este caso, debes configurar cuentas de servicio con los roles de IAM necesarios para que el SDK pueda acceder a las APIs desde el proyecto diferente.

En la siguiente tabla, se muestra un ejemplo de configuración de una cuenta de servicio para el acceso a la API entre proyectos.

Entorno VM host de SAP APIs de Google Cloud
Proyecto de Google Cloud project-sap-host project-google-apis
Cuenta de servicio asignada a la VM host de SAP sa-sap-host@project-sap-host.iam.gserviceaccount.com N/A
Cuenta de servicio para acceder a las APIs de Google Cloud sa-google-apis@project-sap-host.iam.gserviceaccount.com N/A
Roles de IAM para la cuenta de servicio En el proyecto project-sap-host, otorga el rol de creador de tokens de cuenta de servicio sa-sap-host@project-sap-host.iam.gserviceaccount.com de la cuenta de servicio. En el proyecto project-google-apis, agrega la cuenta de servicio sa-google-apis@project-sap-host.iam.gserviceaccount.com como principio y otorga a la cuenta de servicio los roles adecuados para conectarse a las API de Google Cloud.

Para configurar las cuentas de servicio, sigue estos pasos:

  1. En el proyecto de Google Cloud que contiene la VM del host de SAP, otorga a la cuenta de servicio de la VM del host de SAP el rol Service Account Token Creator. Para obtener más información sobre los pasos, consulta Otorga un solo rol.
  2. En el proyecto de Google Cloud que contiene la VM host del SAP, crea una cuenta de servicio. Toma nota del nombre de la cuenta de servicio. Debes especificar este nombre cuando agregas la cuenta de servicio como principio al otro proyecto que contiene las APIs de Google Cloud.
  3. En el otro proyecto que contiene las API de Google Cloud, agrega la cuenta de servicio como principio y otorga los roles adecuados para conectarte a las API de Google Cloud. Para agregar una cuenta de servicio al proyecto de Google Cloud que contiene las API de Google Cloud, realiza los siguientes pasos:

    1. En la consola de Google Cloud, ve a la página de permisos de IAM.

      Ir a Permisos de IAM

    2. Confirma que el nombre del proyecto que contiene las APIs de Google Cloud de destino se muestra cerca de la parte superior de la página. Por ejemplo:

      Permisos del proyecto "PROJECT_NAME"

      Si no es así, cambia de proyecto.

    3. En la página de IAM, haz clic en Otorgar acceso. Se abre el cuadro de diálogo Otorgar acceso a “PROJECT_NAME.

    4. En el campo Principales nuevas, especifica el nombre de la cuenta de servicio.

    5. En el campo Seleccionar un rol, especifica un rol relevante. Por ejemplo, en Pub/Sub, para modificar los temas y las suscripciones y acceder para publicar y consumir mensajes, puedes especificar el rol de editor de Pub/Sub (roles/pubsub.editor).

      Para obtener más detalles sobre los roles predefinidos específicos de la API, consulta Referencia de los roles básicos y predefinidos de IAM.

    6. Agrega roles adicionales según sea necesario para el uso de la API. Implementa las prácticas recomendadas de Google mediante la aplicación del principio de privilegio mínimo.

    7. Haz clic en Guardar. La cuenta de servicio aparece en la lista de principales del proyecto en la página IAM.

Valida la configuración de autenticación

Para validar la configuración de autenticación, sigue estos pasos:

  1. En la GUI de SAP, ejecuta el código de transacción /GOOG/SDK_IMG.

    Como alternativa, ejecuta el código de transacción SPRO y, luego, haz clic en IMG de referencia de SAP.

  2. Haz clic en SDK de ABAP para Google Cloud > Utilidades > Validar configuración de autenticación.

  3. Ingresa el nombre de la clave del cliente.

  4. Haz clic en Ejecutar para verificar si el flujo general se configuró correctamente.

    Una marca de verificación verde en la columna Resultado indica que todos los pasos de configuración se completaron de forma correcta.

Obtener asistencia

Si necesitas ayuda para resolver problemas con el SDK de ABAP para Google Cloud, haz lo siguiente: