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:
-
Accessor de instancia de Secure Source Manager (
roles/securesourcemanager.instanceAccessor) en la instancia de Secure Source Manager -
Para clonar un repositorio, sigue estos pasos:
Lector de repositorios de Secure Source Manager (
roles/securesourcemanager.repoReader) en el repositorio -
Para enviar cambios a un repositorio, sigue estos pasos:
Editor de repositorios de Secure Source Manager (
roles/securesourcemanager.repoWriter) en el repositorio
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
Instala Git.
Si el instalador de Git te pide que elijas un asistente de credenciales, selecciona Ninguno (no usar un asistente de credenciales).
Para usar Git con HTTPS, se necesita la versión
395.0.0o una posterior de gcloud CLI. Para comprobar la versión de la CLI de gcloud, ejecuta el siguiente comando:gcloud --versionPara actualizar gcloud CLI, ejecuta el siguiente comando.
gcloud components updateDespués de actualizar, ejecuta
gcloud initpara 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_IDcon el nombre de tu instancia de Secure Source Manager.PROJECT_NUMBERcon el número de tu proyecto. Si necesitas ayuda para encontrar el número de tu proyecto, consulta el artículo Identificar proyectos.LOCATIONcon 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_IDcon el nombre de tu instancia de Secure Source Manager.PROJECT_NUMBERcon el número de tu proyecto. Si necesitas ayuda para encontrar el número de tu proyecto, consulta el artículo Identificar proyectos.LOCATIONcon 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.
Crea una cuenta de servicio:
gcloud iam service-accounts create SA_NAME --project=PROJECT_IDSustituye
SA_NAMEpor el nombre de la cuenta de servicio.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_EMAILpor el correo del usuario que crea la VM.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:
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.instanceAccessorConcede 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.repoReaderHaz 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
Conéctate a la máquina virtual con SSH:
gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONEEn la VM, instala Git:
sudo apt-get install gitEn 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.
Para definir el repositorio de Secure Source Manager como remoto, ejecuta el siguiente comando:
git remote add origin REPOSITORY_URLDonde
REPOSITORY_URLes la URL HTTPS o SSH que se muestra en la parte superior de la página del repositorio.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.