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

El siguiente error aparece cuando intentas crear un repositorio:

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

Este problema se produce 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:
    • El rol de administrador de repositorios (roles/securesourcemanager.repoAdmin) en tu proyecto.
    • Descriptor de acceso de 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

El siguiente error aparece 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 se produce en los siguientes casos:

  • gcloud CLI se instala con Homebrew o con otra instalación no estándar.
  • git-credential-gcloud.sh no se agrega 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 intentas 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 suceder si usas un cliente SSH más antiguo 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 se produce una de las siguientes situaciones:

  • Al archivo de configuración global de Git le falta el asistente de autenticación de Secure Source Manager.
  • Se está usando el almacenamiento 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 asistente de credenciales del sistema en lugar de llamar al asistente 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 los repositorios de Secure Source Manager con HTTPS. Secure Source Manager requiere la versión 395.0.0 o posterior de Google Cloud CLI.

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 el SO Windows, quita esas líneas 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 ayudante 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. Ejecuta el siguiente comando para validar que la línea del ayudante de autenticación se haya agregado a tu configuración global de Git:

      git config --list | grep credential
      

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

    3. Ejecuta gcloud auth login para realizar la autenticación.

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

    Windows

    1. Para verificar la versión de gcloud CLI, sigue las instrucciones de Instala Git y Google Cloud CLI.
    2. Para agregar el ayudante 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. Ejecuta el siguiente comando para validar que la línea del ayudante de autenticación se haya agregado a tu configuración global de Git:

      git config --list | grep credential
      

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

    4. Ejecuta gcloud auth login para realizar la autenticación.

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

  4. Si anteriormente configuraste la credencial para tu host de Git como gcloud.sh, pero recibes un error como 'credential-gcloud.sh' is not a git command, significa que Git no puede encontrar la secuencia de comandos git-credential-gcloud.sh en la PATH de tu máquina. Actualiza tu PATH o reemplaza el gcloud.sh en tu archivo gitconfig por la ruta de acceso 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 de HTTPS de Git. Por lo general, 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, por lo general, significa que no se pudo extraer la información del usuario del token entrante. Existen varias causas posibles para este error:

  • 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 a curl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN}

  • Estás usando un token generado a partir de la Workload Identity 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 inactivos pueden provocar que falle la autenticación con Secure Source Manager, incluso después de volver a autenticarte con gcloud auth login.

Para resolver este problema, borra de forma manual las credenciales inactivas del Acceso a llaveros:

  1. Abre la aplicación Acceso a llaveros en tu Mac (ubicada en /Applications/Utilities/).
  2. Busca sourcemanager.dev.
  3. Borra cualquier entrada del tipo "contraseña de Internet" que coincida 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 volver 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 cuenta de servicio de Kubernetes (KSA) con Workload Identity de la flota de GKE

Cuando usas la Workload Identity de la 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 actuar en nombre de 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.

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, tu proyecto no aparece.

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

Para solucionar este problema, sigue estos pasos:

  • Para borrar las cookies, agrega 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 activadores no activa compilaciones

Si las compilaciones no se activan como se espera 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 la 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 solucionar 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 dice Valid build triggers configuration.

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

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

Build cannot be created.

Este problema se produce 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 necesarios. Consulta Roles de cuenta de servicio obligatorios.
  • 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 tiene un estado de confirmación de error.

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

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

Se rechazó el envío de Git debido a que se detectaron datos sensibles

Cuando envías confirmaciones a un repositorio con el análisis de secretos habilitado, el envío falla con 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 volver a crearla

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 frecuencia 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 restablecerá 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 a 0.
  • Vuelve a crear la instancia con un ID de instancia diferente y único.
  • Omite el análisis de secretos de forma temporal o solicita un aumento de cuota. Para obtener más información, consulta Aumenta la cuota disponible.

Se produjo un error cuando se configuraba la cuenta de servicio del repositorio

El siguiente error aparece 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.