Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

563
Vistas
Credenciales predeterminadas de la aplicación en Google Cloud Build

Dentro de mi código, intento recopilar las Credenciales predeterminadas de la aplicación de la cuenta de servicio asociada en Cloud Build:

 from google.auth import default credentials, project_id = default()

Esto funciona bien en mi espacio local porque configuré la variable de entorno GOOGLE_APPLICATION_CREDENTIALS de manera adecuada. Sin embargo, cuando se ejecuta esta línea (a través de un paso de prueba en mi configuración de compilación) dentro de Cloud Build, aparece el siguiente error:

 google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started

Esto me confunde porque, según los documentos:

De forma predeterminada, Cloud Build usa una cuenta de servicio especial para ejecutar compilaciones en su nombre. Esta cuenta de servicio se denomina cuenta de servicio de Cloud Build y se crea automáticamente cuando habilita la API de Cloud Build en un proyecto de Google Cloud. Leer aquí

Si la variable de entorno GOOGLE_APPLICATION_CREDENTIALS no está configurada, ADC usa la cuenta de servicio que está adjunta al recurso que ejecuta su código. Leer aquí

Entonces, ¿por qué la llamada predeterminada no puede acceder a las credenciales de la cuenta de servicio de Cloud Build?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Hay un truco: debe definir la red para usar en su compilación de Docker. Use el parámetro --network=cloudbuild , así

 steps: - name: gcr.io/cloud-builders/docker entrypoint: 'docker' args: - build - '--no-cache' - '--network=cloudbuild' - '-t' - '$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA' - . - '-f' - 'Dockerfile' ...

Puede encontrar la documentación aquí .

over 4 years ago · Santiago Trujillo Denunciar

0

Las credenciales predeterminadas de la aplicación (ADC) definen el método para buscar credenciales.

La instancia de VM de Cloud Build obtiene las credenciales de los metadatos a través de llamadas de red al 169.254.169.254. El contenedor que está ejecutando no tiene acceso a la red del host, lo que significa que el código que se ejecuta dentro del contenedor de Docker no puede acceder a los metadatos del host. Dado que no hay otras credenciales dentro de su contenedor, ADC falla con el mensaje No se pudieron determinar automáticamente las credenciales.

Solución: Proporcione las credenciales a las que se puede acceder dentro del contenedor de Docker.

Un método es almacenar un archivo de clave JSON de cuenta de servicio en Cloud Storage. Luego configure Cloud Build para descargar el archivo. Configure el Dockerfile para copiar el archivo en la imagen.

Construir en la nube YAML:

 - name: gcr.io/cloud-builders/gsutil args: ['cp', 'gs://bucketname/path/service-account.json', 'service-account.json']

archivo acoplable:

 COPY ./service-account.json /path/service-account.json

Google proporciona servicios adicionales, como Secret Manager, que también se pueden utilizar. Prefiero el almacenamiento en la nube, ya que la facilidad de almacenamiento y actualización de las credenciales facilita la documentación y la gestión.

Al considerar cuestiones relacionadas con la seguridad, la separación de privilegios y la administración, Google Cloud ofrece varios métodos.

Otro método es el publicado por Guillaume Blaquiere .

En entornos con seguridad relajada y a los desarrolladores se les otorgan amplios permisos (IAM Roles), la respuesta de Guillaume es simple y fácil de implementar. En entornos de seguridad estrictamente controlados, otorgar permisos amplios a Cloud Build es un riesgo de seguridad.

La seguridad a menudo es una compensación entre seguridad, implementación y facilidad de uso. La concesión de roles de IAM requiere una reflexión cuidadosa sobre cómo se van a utilizar los permisos y por qué/quién.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda