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:
-
Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) en la instancia de Secure Source Manager -
Para clonar un repositorio, haz lo siguiente:
Lector de repositorios de Secure Source Manager (
roles/securesourcemanager.repoReader) en el repositorio -
Para enviar cambios a un repositorio, haz lo siguiente:
Escritor de repositorios de Secure Source Manager (
roles/securesourcemanager.repoWriter) en el repositorio
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
Instala Git.
Si el instalador de Git te solicita que elijas un auxiliar de credenciales, selecciona Ninguno (no usar un auxiliar de credenciales).
Se requiere la versión
395.0.0o una posterior de gcloud CLI para usar Git con HTTPS. Para verificar tu versión de gcloud CLI, ejecuta el siguiente comando:gcloud --versionPara actualizar gcloud CLI, ejecuta el siguiente comando.
gcloud components updateDespués de la actualización, ejecuta
gcloud initpara 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_IDpor el nombre de tu instancia de Secure Source ManagerPROJECT_NUMBERpor el número de tu proyecto. Para obtener ayuda para encontrar el número de tu proyecto, consulta Identifica 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 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_IDpor el nombre de tu instancia de Secure Source ManagerPROJECT_NUMBERpor el número de tu proyecto. Para obtener ayuda para encontrar el número de tu proyecto, consulta Identifica proyectos.LOCATIONcon 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.
Crea una cuenta de servicio:
gcloud iam service-accounts create SA_NAME --project=PROJECT_IDReemplaza
SA_NAMEpor un nombre para la cuenta de servicio.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_EMAILpor el correo electrónico 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
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:
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.instanceAccessorOtorga 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.repoReaderReemplaza 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
Conéctate a la VM mediante SSH:
gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONEEn la VM, instala Git:
sudo apt-get install gitEn 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.
Para configurar el repositorio de Secure Source Manager como un repositorio remoto, ejecuta el siguiente comando:
git remote add origin REPOSITORY_URLAquí,
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 administración del código fuente de Git, consulta la documentación de Git.
¿Qué sigue?
- Obtén más información sobre la administración de código fuente de Git
- Ver y enumerar repositorios