Usa la administración de código fuente de Git

Secure Source Manager admite todos los comandos del cliente de SCM de Git y tiene solicitudes de extracción y seguimiento de problemas integrados. Se admiten tanto la autenticación HTTPS como la autenticación SSH.

Roles obligatorios

Para obtener los permisos que necesitas para usar Git y, así, interactuar con un repositorio de Secure Source Manager, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Para obtener información sobre cómo otorgar roles de Secure Source Manager, consulta Control de acceso con IAM y Cómo otorgar acceso a la instancia a los usuarios.

Instala Git y Google Cloud CLI

  1. Instala Git.

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

  3. Instala la CLI de gcloud.

  4. Se requiere la versión 395.0.0 o una posterior de gcloud CLI para usar Git con HTTPS. Para verificar tu versión de gcloud CLI, ejecuta el siguiente comando:

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

    gcloud components update
    
  6. Después de la actualización, ejecuta gcloud init para inicializar la CLI de gcloud.

    Consulta la documentación de gcloud CLI sobre la actualización de componentes para obtener más información.

Configura tus credenciales

Si te autenticas en Secure Source Manager con un proveedor de identidad externo y la federación de identidades de personal, no es necesario que completes esta sección. En su lugar, debes crear una configuración de acceso al grupo de identidades de personal.

Ejecuta el siguiente comando para agregar el asistente de autenticación de Secure Source Manager a tu configuración global de Git:

Linux

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

Es posible que las versiones anteriores de Git no admitan comodines. Para agregar 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

Reemplaza lo siguiente:

  • INSTANCE_ID por el nombre de tu instancia de Secure Source Manager
  • PROJECT_NUMBER por el número de tu proyecto. Para obtener ayuda para encontrar el número de tu proyecto, consulta Identifica 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 agregar 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

Reemplaza lo siguiente:

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

El auxiliar de autenticación usa gcloud CLI para recuperar tus credenciales deGoogle Cloud 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 gcloud CLI:

gcloud auth login

Realiza la autenticación desde una VM de Compute Engine con una cuenta de servicio

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

Configura la VM y la cuenta de servicio

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

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

Reemplaza lo siguiente:

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

Si usas una cuenta de servicio personalizada, crea la cuenta de servicio y, luego, la VM.

  1. Crea una cuenta de servicio:

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

    Reemplaza SA_NAME por un nombre para la cuenta de servicio.

  2. Otorga permiso para usar la cuenta de servicio. Para crear una VM con una cuenta de servicio, necesitas el rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser) en la cuenta de servicio. Otorga este rol a la principal que crea 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"
    

    Reemplaza USER_EMAIL por el correo electrónico 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
    

Otorga roles de IAM a la cuenta de servicio

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

  1. Otorga 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. Otorga acceso de lectura al repositorio.

    Para otorgar 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
    

    Reemplaza lo siguiente:

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

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

    Se recomienda otorgar acceso a nivel del repositorio para seguir el principio de privilegio mínimo. Si necesitas otorgar acceso a todos los repositorios de un proyecto, consulta Control de acceso con IAM.

Los permisos de IAM pueden tardar unos minutos en propagarse.

Configura Git en la VM

  1. Conéctate a la VM mediante 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 auxiliar de credenciales de Git como se describe en Configura tus 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.

Crea una configuración de acceso para un grupo de identidades de personal

No es necesario que completes esta sección, a menos que uses la federación de identidades de personal para autenticarte en Secure Source Manager con un proveedor de identidad externo.

Para autenticarte con las credenciales de tu grupo de identidades para trabajadores en tu instancia de Secure Source Manager con comandos de gcloud CLI o comandos de Git, debes crear una configuración de acceso con tu grupo de identidades para trabajadores.

Para crear una configuración de acceso al grupo de identidades de personal, sigue las instrucciones en Obtén tokens de corta duración para la federación de identidades de personal para crear un acceso basado en el navegador con gcloud CLI.

Después de autenticarte, puedes usar comandos de Git para interactuar con tu instancia de Secure Source Manager. Debes volver a autenticarte cuando venza la duración de la sesión de tu grupo de identidades de personal.

Clona un repositorio

Para clonar un repositorio, ejecuta el siguiente comando:

git clone REPOSITORY_URL

Aquí, REPOSITORY_URL es la URL HTTPS o SSH que se muestra en la parte superior de la página del repositorio que deseas clonar.

Envía un repositorio existente a Secure Source Manager

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

Para enviar tu repositorio de Git existente a un repositorio vacío de Secure Source Manager, debes agregar el repositorio de Secure Source Manager como un repositorio remoto y enviar contenido a él.

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

    git remote add origin REPOSITORY_URL
    

    Aquí, 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 administración del código fuente de Git, consulta la documentación de Git.

¿Qué sigue?