Autentícate en Dataform

En este documento, se describe cómo autenticar Dataform de manera programática.

CLI de Dataform

La interfaz de línea de comandos (CLI) de Dataform admite las credenciales predeterminadas de la aplicación (ADC). Con ADC, puedes hacer que las credenciales estén disponibles para tu aplicación en una variedad de entornos, como el desarrollo o la producción locales, sin necesidad de modificar el código de la aplicación.

Para usar ADC, primero debes proporcionarle tus credenciales.

Repositorios remotos

Puedes vincular un repositorio de Dataform a un repositorio de Bitbucket Cloud, GitHub o GitLab. Debes autenticar el repositorio remoto antes de vincularlo. Puedes autenticar un repositorio remoto en Dataform a través de HTTPS o SSH.

Para los repositorios remotos de GitHub y GitLab, puedes usar HTTPS o SSH para la autenticación. Para los repositorios remotos de Bitbucket Cloud, debes usar SSH.

Para obtener instrucciones, consulta Conéctate a un repositorio de Git de terceros.

Para obtener más información sobre la autenticación de Google Cloud, consulta la descripción general de la autenticación.

Acceso de API

Dataform admite el acceso programático. La forma de autenticarte en Dataform depende de cómo accedas a la API. Puedes acceder a la API de las siguientes maneras:

Bibliotecas cliente

Las bibliotecas cliente de Dataform proporcionan compatibilidad de lenguajes de alto nivel para autenticar en Dataform de manera programática. Las bibliotecas cliente admiten las credenciales predeterminadas de la aplicación (ADC). Las bibliotecas buscan credenciales en un conjunto de ubicaciones definidas y las usan para autenticar solicitudes a la API. Con ADC, puedes hacer que las credenciales estén disponibles para tu aplicación en una variedad de entornos, como el desarrollo o producción local, sin necesidad de modificar el código de la aplicación.

REST

Puedes autenticarte en la API de Dataform con tus credenciales de gcloud CLI o con las credenciales predeterminadas de la aplicación. Para obtener más información sobre la autenticación en solicitudes de REST, consulta Autentica para usar REST. Para obtener información sobre los tipos de credenciales, consulta Credenciales de la CLI de gcloud y credenciales de ADC.

Configura la autenticación para Dataform

La forma de configurar la autenticación depende del entorno en el que se ejecuta tu código.

Las siguientes opciones para configurar la autenticación son las más utilizadas. Para obtener más información y opciones de autenticación, consulta Autenticación en Google.

Para un entorno de desarrollo local

Puedes configurar las credenciales para un entorno de desarrollo local de las siguientes maneras:

Bibliotecas cliente o herramientas de terceros

Configura las credenciales predeterminadas de la aplicación (ADC) en tu entorno local:

  1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

    gcloud init
  2. Crea credenciales de autenticación locales para tu Cuenta de Google:

    gcloud auth application-default login

    Se muestra una pantalla de acceso. Después de acceder, tus credenciales se almacenan en el archivo de credenciales local que usa ADC.

Para obtener más información sobre cómo trabajar con ADC en un entorno local, consulta Entorno de desarrollo local.

Solicitudes REST desde la línea de comandos

Cuando realizas una solicitud REST desde la línea de comandos, puedes usar tus credenciales de gcloud si incluyes gcloud auth print-access-token como parte del comando que envía la solicitud.

En el siguiente ejemplo, se enumeran las cuentas de servicio para el proyecto especificado. Puedes usar el mismo patrón para cualquier solicitud de REST.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID es el ID del proyecto de Google Cloud.

Para enviar tu solicitud, expande una de estas opciones:

 

Para obtener más información sobre la autenticación mediante REST y gRPC, consulta Autentica para usar REST. Si deseas obtener información sobre la diferencia entre tus credenciales locales de ADC y tus credenciales de la CLI de gcloud, consulta Credenciales de la CLI de gcloud y credenciales de ADC.

En Google Cloud

Para autenticar una carga de trabajo que se ejecuta en Google Cloud, debes usar las credenciales de la cuenta de servicio conectada al recurso de procesamiento en el que se ejecuta tu código. Por ejemplo, puedes conectar una cuenta de servicio a una instancia de máquina virtual (VM) de Compute Engine, a un servicio de Cloud Run o a un Trabajo de Dataflow. Este enfoque es el método de autenticación preferido para el código que se ejecuta en un recurso de procesamiento de Google Cloud.

En la mayoría de los servicios, debes conectar la cuenta de servicio cuando crees el recurso que ejecutará el código; no puedes agregar o reemplazar la cuenta de servicio más adelante. Compute Engine es una excepción: te permite conectar una cuenta de servicio a una instancia de VM en cualquier momento.

Usa gcloud CLI para crear una cuenta de servicio y adjuntarla a tu recurso:

  1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

    gcloud init
  2. Configura la autenticación:

    1. Crea la cuenta de servicio:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Reemplaza SERVICE_ACCOUNT_NAME por un nombre para la cuenta de servicio.

    2. Para proporcionar acceso a tu proyecto y tus recursos, otorga un rol a la cuenta de servicio:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

      Reemplaza lo siguiente:

      • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
      • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
      • ROLE: el rol a otorgar
    3. Para otorgar otro rol a la cuenta de servicio, ejecuta el comando como lo hiciste en el paso anterior.
    4. Otorga a tu Cuenta de Google un rol que te permita usar los roles de la cuenta de servicio y conectar la cuenta de servicio a otros recursos:

      gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

      Reemplaza lo siguiente:

      • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
      • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
      • USER_EMAIL: La dirección de correo electrónico de tu Cuenta de Google
  3. Crea el recurso que ejecutará tu código y conecta la cuenta de servicio a ese recurso. Por ejemplo, si usas Compute Engine:

    Crea una instancia de Compute Engine. Configúrala como se indica a continuación:
    • Reemplaza INSTANCE_NAME por el nombre de instancia que desees.
    • Establece la marca --zone en la zona en la que deseas crear tu instancia.
    • Establece la marca --service-account en la dirección de correo electrónico de la cuenta de servicio que creaste.
    gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL

Para obtener más información sobre la autenticación en las APIs de Google, consulta Autenticación en Google.

Local o en un proveedor de servicios en la nube diferente

El método preferido para configurar la autenticación desde fuera de Google Cloud es usar la federación de identidades de carga de trabajo. Para obtener más información, consulta Local u otro proveedor de servicios en la nube en la documentación de autenticación.

Control de acceso en Dataform

Después de autenticarte en Dataform, debes tener autorización para acceder a los recursos de Google Cloud. Dataform usa Identity and Access Management (IAM) para la autorización.

Para obtener más información sobre los roles de Dataform, consulta Controla el acceso con la IAM. Para obtener más información sobre IAM y la autorización, consulta Descripción general de IAM.

¿Qué sigue?