Usar la gestión del código fuente de Git

Secure Source Manager admite todos los comandos de cliente de SCM de Git y tiene integradas las solicitudes de extracción y el seguimiento de incidencias. Se admiten tanto la autenticación HTTPS como la SSH.

Roles obligatorios

Para obtener los permisos que necesitas para usar Git e interactuar con un repositorio de Secure Source Manager, pide a tu administrador que te conceda los siguientes roles de IAM:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Para obtener información sobre cómo conceder roles de Secure Source Manager, consulta los artículos Control de acceso con gestión de identidades y accesos y Conceder acceso a instancias a los usuarios.

Instalar Git y Google Cloud CLI

  1. Instala Git.

  2. Si el instalador de Git te pide que elijas un asistente de credenciales, selecciona Ninguno (no usar un asistente de credenciales).

  3. Instala gcloud CLI.

  4. Para usar Git con HTTPS, se necesita la versión 395.0.0 o una posterior de gcloud CLI. Para comprobar la versión de la CLI de gcloud, ejecuta el siguiente comando:

    gcloud --version
    
  5. Para actualizar gcloud CLI, ejecuta el siguiente comando.

    gcloud components update
    
  6. Después de actualizar, ejecuta gcloud init para inicializar gcloud CLI.

    Para obtener más información, consulta la documentación de la CLI de gcloud sobre cómo actualizar componentes.

Configurar las credenciales

Si te autenticas en Secure Source Manager mediante un proveedor de identidades externo y Workforce Identity Federation, no tienes que completar esta sección. En su lugar, debes crear una configuración de inicio de sesión de grupo de identidades de empleados.

Añade el asistente de autenticación de Secure Source Manager a tu configuración global de Git ejecutando el siguiente comando:

Linux

git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh

Es posible que las versiones anteriores de Git no admitan comodines. Para añadir el auxiliar de autenticación sin comodines, ejecuta el siguiente comando:

git config --global credential.'https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev'.helper gcloud.sh

Haz los cambios siguientes:

  • INSTANCE_ID con el nombre de tu instancia de Secure Source Manager.
  • PROJECT_NUMBER con el número de tu proyecto. Si necesitas ayuda para encontrar el número de tu proyecto, consulta el artículo Identificar proyectos.
  • LOCATION con la región de la instancia. Para obtener más información sobre las regiones, consulta Ubicaciones.

Windows

git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd

Es posible que las versiones anteriores de Git no admitan comodines. Para añadir el auxiliar de autenticación sin comodines, ejecuta el siguiente comando:

git config --global credential.https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev.helper gcloud.cmd

Haz los cambios siguientes:

  • INSTANCE_ID con el nombre de tu instancia de Secure Source Manager.
  • PROJECT_NUMBER con el número de tu proyecto. Si necesitas ayuda para encontrar el número de tu proyecto, consulta el artículo Identificar proyectos.
  • LOCATION con la región de la instancia. Para obtener más información sobre las regiones, consulta Ubicaciones.

La herramienta auxiliar de autenticación usa la CLI de gcloud para obtener tusGoogle Cloud credenciales cuando usas comandos de Git con Secure Source Manager.

Para volver a autenticarte después de la configuración inicial de las credenciales, ejecuta el siguiente comando de la CLI de gcloud:

gcloud auth login

Autenticar desde una VM de Compute Engine con una cuenta de servicio

Puedes autenticarte desde una máquina virtual (VM) de Compute Engine mediante una cuenta de servicio asociada.

Configurar la máquina virtual y la cuenta de servicio

Si usas la cuenta de servicio predeterminada de Compute Engine, crea tu VM con los permisos de OAuth necesarios:

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform

Haz los cambios siguientes:

  • VM_NAME: el nombre de tu VM.
  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • ZONE: la zona de tu VM.

Si usas una cuenta de servicio personalizada, crea la cuenta de servicio y, a continuación, crea la VM.

  1. Crea una cuenta de servicio:

    gcloud iam service-accounts create SA_NAME --project=PROJECT_ID
    

    Sustituye SA_NAME por el nombre de la cuenta de servicio.

  2. Concede permiso para usar la cuenta de servicio. Para crear una VM con una cuenta de servicio, debes tener el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser) en la cuenta de servicio. Asigna este rol a la cuenta principal que cree la VM:

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

    Sustituye USER_EMAIL por el correo del usuario que crea la VM.

  3. Crea la VM:

    gcloud compute instances create VM_NAME \
        --project=PROJECT_ID \
        --zone=ZONE \
        --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform \
        --service-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

Asigna roles de gestión de identidades y accesos a la cuenta de servicio

Concede acceso a la cuenta de servicio a la instancia y al repositorio de Secure Source Manager:

  1. Concede acceso a la instancia:

    SA_EMAIL=$(gcloud compute instances describe VM_NAME --project=PROJECT_ID --zone=ZONE --format="get(serviceAccounts[0].email)")
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:$SA_EMAIL" \
        --role=roles/securesourcemanager.instanceAccessor
    
  2. Concede acceso de lectura al repositorio.

    Para conceder acceso de lectura a un repositorio específico, ejecuta el siguiente comando:

    gcloud ssm repos add-iam-policy-binding REPOSITORY_ID \
        --instance