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=INSTANCE_ID \
        --location=LOCATION \
        --member="serviceAccount:$SA_EMAIL" \
        --role=roles/securesourcemanager.repoReader
    

    Haz los cambios siguientes:

    • REPOSITORY_ID: ID del repositorio.
    • INSTANCE_ID: el ID de instancia de Secure Source Manager.
    • LOCATION: región de la instancia de Secure Source Manager.

    Para conceder acceso de escritura, usa el rol roles/securesourcemanager.repoWriter.

    Se recomienda conceder acceso a nivel de repositorio para seguir el principio de mínimos accesos. Si necesitas conceder acceso a todos los repositorios de un proyecto, consulta Control de acceso con la gestión de identidades y accesos.

Los permisos de gestión de identidades y accesos pueden tardar unos minutos en propagarse.

Configurar Git en la VM

  1. Conéctate a la máquina virtual con SSH:

    gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONE
    
  2. En la VM, instala Git:

    sudo apt-get install git
    
  3. En la VM, configura el asistente de credenciales de Git tal como se describe en Configurar las credenciales. Por ejemplo, en Linux:

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

Después de configurar el asistente de credenciales, Git usa las credenciales predeterminadas de la aplicación de la cuenta de servicio de la VM para autenticarse en Secure Source Manager. Ahora puedes clonar un repositorio. Debes usar la URL del repositorio HTTPS para autenticarte con las credenciales predeterminadas de la aplicación.

Crear una configuración de inicio de sesión de grupo de identidades de Workforce

No es necesario que completes esta sección a menos que utilices la federación de identidades de la plantilla para autenticarte en Secure Source Manager con un proveedor de identidades de terceros.

Para autenticarte con las credenciales de tu grupo de identidades de empleados en tu instancia de Secure Source Manager mediante comandos de la CLI de gcloud o comandos de Git, debes crear una configuración de inicio de sesión con tu grupo de identidades de empleados.

Para crear una configuración de inicio de sesión de un grupo de identidades de Workforce, sigue las instrucciones de Obtener tokens de corta duración para la federación de identidades de Workforce para crear un inicio de sesión basado en navegador con la CLI de gcloud.

Una vez que te hayas autenticado, podrás usar comandos de Git para interactuar con tu instancia de Secure Source Manager. Debes volver a autenticarte cuando caduque la duración de la sesión de tu grupo de identidades de la plantilla.

Clonar un repositorio

Clona un repositorio ejecutando el siguiente comando:

git clone REPOSITORY_URL

Donde REPOSITORY_URL es la URL HTTPS o SSH que se muestra en la parte superior de la página del repositorio que quieres clonar.

Enviar un repositorio a Secure Source Manager

Debes crear un repositorio de Secure Source Manager que actúe como remoto antes de poder enviar contenido a él.

Para enviar tu repositorio de Git a un repositorio de Secure Source Manager vacío, debes añadir el repositorio de Secure Source Manager como remoto y enviarlo.

  1. Para definir el repositorio de Secure Source Manager como remoto, ejecuta el siguiente comando:

    git remote add origin REPOSITORY_URL
    

    Donde REPOSITORY_URL es la URL HTTPS o SSH que se muestra en la parte superior de la página del repositorio.

  2. Para enviar al repositorio, ejecuta el siguiente comando:

    git push -u origin main
    

Para obtener más información sobre la gestión del código fuente de Git, consulta la documentación de Git.

Siguientes pasos