Conéctate a un host de Bitbucket Cloud

En esta página, se explica cómo conectarse a un host de Bitbucket Cloud a Cloud Build.

Antes de comenzar

  • Habilita las API de Cloud Build, Secret Manager, and Compute Engine.

    Habilita las API

Permisos de IAM obligatorios

Para obtener los permisos que necesitas para conectarte, pídele a tu administrador que te otorgue el rol de IAM Administrador de conexiones de Cloud Build (cloudbuild.connectionAdmin) en la cuenta de usuario. Para obtener más información sobre cómo otorgar roles, consulta Cómo administrar el acceso.

Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.

Crea tokens de acceso de Bitbucket Cloud

Crea los siguientes dos tokens de acceso en Bitbucket Cloud:

  • Token de acceso de administrador para conectar y desconectar repositorios
  • Token de acceso de lectura para permitir que Cloud Build acceda a tu código fuente.

Para crear estos tokens, sigue estos pasos:

  1. Accede a Bitbucket Cloud.

  2. Sigue las instrucciones de Bitbucket Cloud para crear tokens de acceso vinculados a tu repositorio, proyecto o lugar de trabajo.

    Otorga los siguientes permisos:

    • Token de acceso de administrador:

      • Repositorios: lectura y administrador
      • Solicitudes de extracción: lecturas
      • Webhooks: lectura y escritura
    • Token de acceso de lectura:

      • Repositorios: Leer
  3. Copia tus tokens para usarlos en los siguientes procedimientos.

Conéctate a un host de Bitbucket Cloud

Console

Sigue estos pasos para conectar Cloud Build a tu host de Bitbucket Cloud:

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página repositorios

    Verás la página Repositorios.

  2. En el selector de proyectos, selecciona tu proyecto de Google Cloud.

  3. En la parte superior de la página, selecciona la pestaña 2a gen..

  4. Haz clic en Crear conexión de host para conectar un host nuevo a Cloud Build.

  5. Selecciona Bitbucket como tu proveedor de origen.

  6. En la sección Configurar conexión, ingresa la siguiente información:

    1. Región: Selecciona una región para la conexión.

    2. Nombre: Ingresa un nombre para tu conexión.

    3. En la sección Detalles del host, selecciona Bitbucket Cloud como tu tipo de host.

    4. Workspace: Ingresa el ID del lugar de trabajo de tu repositorio de Bitbucket Cloud.

    5. Token de acceso: Ingresa el token de acceso de administrador que creaste anteriormente.

    6. Token de acceso de lectura: Ingresa el token de acceso de lectura que creaste anteriormente.

  7. Haz clic en Conectar.

    La nueva conexión aparecerá en la página Repositorios.

gcloud

  1. Completa los siguientes pasos para almacenar tus credenciales:

    1. Para almacenar tus tokens de acceso en Secret Manager en tu proyecto de Google Cloud, ejecuta los siguientes comandos:

      echo -n ADMIN_TOKEN | gcloud secrets create ADMIN_SECRET_NAME --data-file=-
      
      echo -n READ_TOKEN | gcloud secrets create READ_SECRET_NAME --data-file=-
      

      Aquí:

      • ADMIN_TOKEN es tu token de acceso de administrador.
      • ADMIN_SECRET_NAME es el nombre que quieres asignar a tu secreto del token de acceso de administrador en Secret Manager.
      • READ_TOKEN es tu token de acceso de lectura.
      • READ_SECRET_NAME es el nombre que quieres asignar a tu secreto del token de acceso de lectura en Secret Manager.
    2. Crea un secreto de webhook en Secret Manager mediante la ejecución del siguiente comando, en el que WEBHOOK_SECRET_NAME es el nombre que quieres darle a tu secreto de webhook:

      echo -n ${ex.(random-uuid)} | gcloud secrets create WEBHOOK_SECRET_NAME --data-file=-
      
    3. Si no todos tus secretos están en el mismo proyecto, otorga acceso a la cuenta de servicio de Cloud Build mediante la ejecución del siguiente comando:

      PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
      CLOUD_BUILD_SERVICE_ACCOUNT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
      gcloud secrets add-iam-policy-binding ADMIN_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      
      gcloud secrets add-iam-policy-binding READ_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      
      gcloud secrets add-iam-policy-binding WEBHOOK_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      

      Aquí:

      • PROJECT_ID es tu ID del proyecto de Google Cloud.
      • ADMIN_SECRET_NAME es el nombre de tu secreto del token de administrador.
      • READ_SECRET_NAME es el nombre de tu secreto del token de lectura.
      • WEBHOOK_SECRET_NAME es el nombre de tu secreto de webhook.
  2. Conecta Cloud Build a tu host de Bitbucket Cloud con el siguiente comando:

    gcloud builds connections create bitbucket-cloud CONNECTION_NAME \
        --workspace=WORKSPACE_ID \
        --project=PROJECT_ID \
        --region=REGION \
        --authorizer-token-secret-version=projects/PROJECT_ID/secrets/ADMIN_SECRET_NAME/versions/latest \
        --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/latest \
        --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/1
    

    Aquí:

    • CONNECTION_NAME es el nombre que quieres asignar a la conexión a tu host de Bitbucket Cloud.
    • WORKSPACE_ID es el ID del lugar de trabajo de tu repositorio de Bitbucket Cloud.
    • PROJECT_ID es tu ID del proyecto de Google Cloud.
    • REGION es la región de la conexión de host.
    • ADMIN_SECRET_NAME es el nombre de tu secreto del token de administrador.
    • READ_SECRET_NAME es el nombre de tu secreto del token de acceso de lectura.
    • WEBHOOK_SECRET_NAME es el nombre de tu secreto de webhook.

¿Qué sigue?