Solución de problemas

En esta página, se muestra cómo resolver problemas con Secure Source Manager.

Mensaje de error cuando se crea un repositorio

Aparece el siguiente error cuando intentas crear un repositorio:

There was an error while loading /repo/create. Try refreshing the page.

Este problema ocurre en los siguientes casos:

  • La API de Secure Source Manager no está habilitada en tu proyecto.
  • No tienes el rol de administrador de repositorios en tu proyecto ni permisos para crear repositorios en la instancia de Secure Source Manager.

Para solucionar este problema, sigue estos pasos:

  • Habilita la API de Secure Source Manager en tu proyecto.
  • Pídele a tu administrador que te otorgue los siguientes roles:
    • Rol de administrador de repo (roles/securesourcemanager.repoAdmin) en tu proyecto
    • Descriptor de acceso a instancias (roles/securesourcemanager.instanceAccessor) en la instancia de Secure Source Manager
    • Creador de repositorios de instancias (roles/securesourcemanager.instanceRepositoryCreator) en la instancia de Secure Source Manager

Consulta Control de acceso con IAM para obtener más detalles.

Mensaje de error cuando se clona un repositorio en una Mac

Aparece el siguiente error cuando intentas clonar un repositorio:

git: 'credential-gcloud.sh' is not a git command.  See 'git --help'.
fatal: Authentication failed for [repo-url]

Este problema ocurre en los siguientes casos:

  • Gcloud CLI se instaló con Homebrew o con otra instalación no estándar.
  • git-credential-gcloud.sh no se agregó a tu PATH.

Para solucionar este problema, sigue estos pasos:

  • Ejecuta source $HOMEBREW_PREFIX/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc
  • Ejecuta el siguiente comando para verificar que git-credential-gcloud.sh esté en tu ruta de acceso:

    which git-credential-gcloud.sh
    

La conexión SSH falla con el error "no matching"

Cuando intentes realizar operaciones de Git a través de SSH, es posible que recibas uno de los siguientes mensajes de error:

  • Unable to negotiate with <host> port <port>: no matching key exchange method found.
  • Unable to negotiate with <host> port <port>: no matching cipher found.
  • Unable to negotiate with <host> port <port>: no matching MAC found.

Este problema se produce cuando tu cliente SSH no admite los algoritmos criptográficos que requiere Secure Source Manager. Esto puede ocurrir si usas un cliente SSH anterior o si tu cliente no está configurado para usar algoritmos compatibles.

Secure Source Manager requiere uno de los siguientes algoritmos:

  • Algoritmos de intercambio de claves: curve25519-sha256, diffie-hellman-group14-sha256
  • Cifrados: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
  • MAC: hmac-sha2-256-etm@openssh.com, hmac-sha2-256

Para resolver este problema, actualiza tu cliente SSH a una versión reciente que admita estos algoritmos.

Las solicitudes HTTPS de Git fallan con un error de permiso denegado o no autorizado

Cuando se intentan ejecutar comandos de Git a través de HTTPS, se muestra un mensaje de error de permiso denegado o no autorizado.

Este problema ocurre cuando sucede una de las siguientes situaciones:

  • Falta el auxiliar de autenticación de Secure Source Manager en el archivo de configuración global de Git.
  • Se está usando el almacén de credenciales integrado de Git en lugar de llamar al asistente de autenticación de Secure Source Manager para obtener una credencial nueva.
  • Se está usando un auxiliar de credenciales del sistema en lugar de llamar al auxiliar de autenticación de Secure Source Manager para obtener una credencial nueva.
  • Se usa una versión anterior de Google Cloud CLI cuando se interactúa con repositorios de Secure Source Manager a través de HTTPS. Secure Source Manager requiere la versión 395.0.0 de Google Cloud CLI o una posterior.

Para solucionar este problema, sigue estos pasos:

  1. Ejecuta el siguiente comando para determinar el contenido de tu configuración global de Git.

    git config --list | grep credential
    
  2. Si ves alguna línea similar a *credential*.helper=store en macOS o credential.helper = manager en Windows, quítalas y, luego, vuelve a autenticarte con gcloud auth login antes de volver a intentar el comando de Git.

  3. Si la respuesta no incluye credential.https://*.*.sourcemanager.dev.helper=gcloud.sh en macOS o Linux, o credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd en Windows, agrega el asistente de autenticación de Secure Source Manager a tu configuración global de Git:

    Linux

    1. Para agregar el auxiliar de autenticación de Secure Source Manager a tu configuración global de Git, ejecuta el siguiente comando:

      git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
      
    2. Para validar que la línea de ayuda de autenticación se agregó a tu configuración global de Git, ejecuta el siguiente comando:

      git config --list | grep credential
      

      El resultado debe incluir credential.https://*.*.sourcemanager.dev.helper=gcloud.sh.

    3. Para autenticar, ejecuta gcloud auth login.

    4. Ejecuta un comando de Git para probar la autenticación.

    Windows

    1. Verifica tu versión de gcloud CLI siguiendo las instrucciones de Instala Git y Google Cloud CLI.
    2. Para agregar el auxiliar de autenticación de Secure Source Manager a tu configuración global de Git, ejecuta el siguiente comando:

      git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
      
    3. Para validar que la línea de ayuda de autenticación se agregó a tu configuración global de Git, ejecuta el siguiente comando:

      git config --list | grep credential
      

      El resultado debe incluir credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd.

    4. Para autenticar, ejecuta gcloud auth login.

    5. Ejecuta un comando de Git para probar la autenticación.

  4. Si anteriormente configuraste la credencial de tu host de Git como gcloud.sh, pero recibes un error como 'credential-gcloud.sh' is not a git command, esto indica que Git no puede encontrar la secuencia de comandos git-credential-gcloud.sh en PATH para tu máquina. Actualiza tu PATH o reemplaza el gcloud.sh en tu archivo gitconfig por la ruta absoluta.

Las solicitudes HTTPS de Git fallan con un token no válido

Se requiere un token de OAuth válido como contraseña para las operaciones HTTPS de Git. Normalmente, esto lo controla el asistente de credenciales de Git, pero también puede funcionar con tokens de OAuth generados con otros enfoques (por ejemplo, credenciales predeterminadas de la aplicación).

Si se rechaza una solicitud de Git debido a un token no válido, normalmente significa que no se pudo extraer la información del usuario del token entrante. Este error puede deberse a varios motivos:

  • Es posible que haya vencido tu acceso a gcloud CLI.

    Vuelve a acceder con gcloud auth login.

  • Tu token no tiene el alcance suficiente. Se espera que los tokens de OAuth tengan los siguientes permisos:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/userinfo.email

    Puedes verificar el alcance del token llamando acurl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN}

  • Usas un token generado a partir de la identidad para cargas de trabajo de la flota de GKE:

  • Tienes políticas de la organización que impiden el uso de tokens fuera de ciertos perímetros, por ejemplo, el acceso adaptado al contexto.

    Para resolver este problema, establece la propiedad de configuración de gcloud CLI git_helper_use_adc en true y actualiza tus credenciales predeterminadas de la aplicación (ADC):

    1. Accede con las credenciales predeterminadas de la aplicación:

      gcloud auth application-default login
      
    2. Establece la propiedad git_helper_use_adc:

      gcloud config set auth/git_helper_use_adc true
      

Las solicitudes HTTPS de Git fallan en macOS con el error 403 debido a credenciales obsoletas

Cuando realizas operaciones de Git a través de HTTPS en macOS, es posible que recibas un error 403.

Este problema puede ocurrir en macOS si usas el llavero de iCloud, que puede interferir con los tokens de autenticación de gcloud CLI almacenando y sincronizando tokens obsoletos. Estos tokens vencidos pueden provocar que falle la autenticación con Secure Source Manager, incluso después de que vuelvas a autenticarte con gcloud auth login.

Para resolver este problema, borra manualmente las credenciales obsoletas del Acceso a Llavero:

  1. Abre la aplicación Acceso a Llaveros en tu Mac (ubicada en /Applications/Utilities/).
  2. Busca sourcemanager.dev.
  3. Borra las entradas de tipo "contraseña de Internet" que coincidan con *.*.sourcemanager.dev o la URL de tu instancia de Secure Source Manager. Para ello, haz clic con el botón derecho en la entrada y selecciona Borrar.
  4. Después de borrar las entradas, vuelve a intentar la operación de Git. Es posible que se te solicite que vuelvas a autenticarte con gcloud CLI. Si las operaciones de Git siguen fallando, ejecuta gcloud auth login antes de volver a intentarlo.

SSM devuelve un error cuando se usan tokens de cuentas de servicio de Kubernetes (KSA) con la identidad de carga de trabajo de la flota de GKE

Cuando se usa la identidad de carga de trabajo de flota de GKE, Secure Source Manager no admite los tokens de KSA sin procesar. Si usas estos tokens, se producirá un error.

Para resolver este problema, debes suplantar una cuenta de servicio y vincular la carga de trabajo a una cuenta de servicio de Google. También debes agregar la siguiente anotación a tu configuración de KSA:

iam.gke.io/gcp-service-account: SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

El proyecto no aparece en el selector de productos de la interfaz web

Cuando usas el selector de productos de la interfaz web de Secure Source Manager, no aparece tu proyecto.

Este problema ocurre cuando tienes varias credenciales de acceso para Secure Source Manager.

Para solucionar este problema, sigue estos pasos:

  • Borra las cookies agregando lo siguiente a la URL de tu instancia de Secure Source Manager: /_oauth/consent

    Por ejemplo, si la URL de tu instancia es https://my-instance-098765432123.us-central1.sourcemanager.dev/, ingresa https://my-instance-098765432123.us-central1.sourcemanager.dev/_oauth/consent en la barra de direcciones del navegador y, luego, accede con las credenciales correctas.

El archivo de activación no activa compilaciones

Si las compilaciones no se activan según lo esperado después de enviar el archivo de activadores, es posible que tengas uno de los siguientes problemas:

  • El archivo de activadores no está en la rama predeterminada. Para resolver este problema, mueve el archivo de activadores a tu rama predeterminada.
  • El archivo de activadores tiene un formato no válido. Este error se indica con un banner en la página del repositorio que dice Build triggers configuration error: .... Para corregir este problema, consulta el esquema del archivo de activadores. Cuando la configuración del archivo de activadores es correcta, el banner de la página del repositorio muestra el mensaje Valid build triggers configuration.

Error de configuración de los activadores de compilación

Después de enviar tu archivo triggers.yaml al repositorio de Secure Source Manager, aparece el siguiente error en un banner:

Build cannot be created.

Este problema ocurre por los siguientes motivos:

  • El archivo de configuración de Cloud Build tiene opciones o un formato no válidos.
  • El agente de servicio de Secure Source Manager no tiene el rol de creador de tokens de cuenta de servicio en la cuenta de servicio administrada por el usuario del repositorio.
  • La cuenta de servicio administrada por el usuario no tiene el rol de usuario de cuenta de servicio en la cuenta de servicio de Cloud Build.
  • La cuenta de servicio administrada por el usuario no tiene el rol de Editor de Cloud Build en el proyecto en el que se ejecutan las compilaciones.
  • La política de la organización iam.disableCrossProjectServiceAccountUsage bloquea el uso de la cuenta de servicio administrada por el usuario (si la cuenta de servicio está en un proyecto diferente).

Para solucionar este problema, haz lo siguiente:

  • Asegúrate de seguir el esquema de archivo de activadores correcto.
  • Verifica que se hayan otorgado todos los roles obligatorios. Consulta Roles obligatorios de la cuenta de servicio.
  • Si usas una cuenta de servicio administrada por el usuario en un proyecto diferente, verifica que la política de la organización iam.disableCrossProjectServiceAccountUsage esté inhabilitada en el proyecto que aloja la cuenta de servicio.

La compilación falla durante la ejecución

Si una compilación se activa correctamente, pero falla durante la ejecución, la confirmación asociada tendrá el estado de confirmación Fallida.

Para solucionar problemas relacionados con una compilación fallida, en la página del repositorio, junto al estado de la confirmación fallida, haz clic en Detalles.

Se abrirá el registro de ejecución de Cloud Build. Para obtener más información sobre la solución de problemas de compilaciones en Cloud Build, consulta Soluciona errores de compilación.

Se rechazó la operación git push porque se detectaron datos sensibles

Cuando envías confirmaciones a un repositorio con la función de análisis de secretos habilitada, el envío falla y se muestra un mensaje de error similar al siguiente:

remote: Push rejected: Sensitive data detected.

Este problema se produce cuando el análisis de secretos o una plantilla de inspección personalizada identifican información sensible en tu historial de confirmaciones.

Para solucionar este problema, sigue estos pasos:

  • Revierte la confirmación problemática con git reset --soft y quita la información sensible antes de volver a confirmar.
  • Si la información detectada es aceptable y tienes los permisos adecuados, omite la verificación con la opción de envío -o dlpskip=true:

    git push -o dlpskip=true origin BRANCH_NAME
    

La cuota diaria no se restablece después de la recreación

Después de borrar una instancia de Secure Source Manager y volver a crearla con el mismo ID de instancia el mismo día, es posible que recibas un error de cuota agotada o límite alcanzado para el análisis de secretos.

Este problema se produce porque la cuota de análisis de secretos es una cuota de velocidad diaria vinculada al ID de la instancia. Si borras y vuelves a crear una instancia con el mismo ID el mismo día, no se restablece el uso de la cuota.

Para resolver este problema, puedes realizar una de las siguientes acciones:

  • Espera hasta el segundo día para que el uso de la cuota diaria se restablezca automáticamente en 0.
  • Vuelve a crear la instancia con un ID de instancia diferente y único.
  • Omite la detección de secretos de forma temporal o solicita un aumento de cuota. Para obtener más información, consulta Cómo aumentar la cuota disponible.

Error al configurar la cuenta de servicio del repositorio

Aparece el siguiente error cuando intentas crear o actualizar un repositorio con una cuenta de servicio administrada por el usuario:

Permission denied on resource ...

Este problema se produce cuando no tienes el rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser) en la cuenta de servicio que intentas asociar con el repositorio. Secure Source Manager verifica que tengas permiso para actuar como la cuenta de servicio antes de permitirte asociarla con el repositorio.

Para resolver este problema, pídele a tu administrador que te otorgue el rol de usuario de cuenta de servicio en la cuenta de servicio.