Habilita Autorización Binaria para Cloud Run

En esta guía, se muestra cómo configurar Autorización Binaria para aplicar la implementación basada en políticas de los servicios y trabajos de Cloud Run.

Antes de comenzar

Configura Cloud Run y habilita las API mediante los siguientes pasos:

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita las API de Cloud Run, Artifact Registry, Binary Authorization.

    Habilita las API

  5. Instala Google Cloud CLI.
  6. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  7. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  8. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  9. Habilita las API de Cloud Run, Artifact Registry, Binary Authorization.

    Habilita las API

  10. Instala Google Cloud CLI.
  11. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init

Habilita la autorización binaria en un servicio existente de Cloud Run

Puedes habilitar la aplicación de Autorización Binaria en un servicio existente. Para activar la aplicación después de habilitarla, es posible que debas implementar una revisión o actualizar el tráfico del servicio.

Puedes habilitar la aplicación de Autorización Binaria en un servicio existente mediante la consola de Google Cloud o Google Cloud CLI:

Consola

  1. Ve a la página de Cloud Run en la consola de Google Cloud.

    Ir a Cloud Run

  2. Haz clic en el servicio.

  3. Haz clic en la pestaña Seguridad.

  4. Para habilitar la aplicación de la autorización binaria en el servicio, haz clic en Habilitar.

  5. Opcional: Para configurar la política de autorización binaria, haz clic en Configurar política.

gcloud

Habilita Autorización Binaria en el servicio y, luego, impleméntala:

gcloud run services update SERVICE_NAME --binary-authorization=default

Reemplaza SERVICE_NAME por un nombre para el servicio.

YAML

Puedes descargar y ver las configuraciones del servicio existente mediante el comando gcloud run services describe --format export, que genera resultados limpios en formato YAML. Luego, puedes modificar los campos que se describen a continuación y subir el YAML modificado mediante el comando gcloud run services replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración, ejecuta el siguiente comando:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Actualiza la anotación run.googleapis.com/binary-authorization: de la siguiente manera:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
        run.googleapis.com/binary-authorization: POLICY
      name: SERVICE
    spec:
      template:

    Reemplaza lo siguiente:

    • SERVICE: el nombre de tu Cloud Run.
    • POLICY: configurado como default
  3. Reemplaza el servicio por la configuración nueva mediante el siguiente comando:

gcloud run services replace service.yaml

Habilita Autorización Binaria en un servicio existente de Cloud Run

Puedes habilitar la aplicación de Autorización Binaria en un trabajo existente mediante la consola de Google Cloud o Google Cloud CLI:

Consola

  1. Ve a la página de Cloud Run en la consola de Google Cloud.

    Ir a Cloud Run

  2. Haz clic en el trabajo para abrir sus detalles.

  3. Haz clic en la pestaña Configuración.

  4. En Autorización binaria, selecciona una política de la lista de políticas.

  5. Haz clic en Aplicar para habilitar la aplicación de Autorización Binaria en el trabajo.

  6. Opcional: Para configurar la política de autorización binaria, haz clic en Configurar política.

gcloud

Habilita Autorización Binaria en el trabajo:

gcloud run jobs update JOB_NAME --binary-authorization=POLICY

Reemplaza lo siguiente:

  • JOB_NAME: el nombre de tu trabajo.
  • POLICY: la política que deseas aplicar. Usa el valor default para usar la política predeterminada.

Te recomendamos requerir Autorización Binaria para Cloud Run mediante la configuración de una política de la organización para hacerlo. Los desarrolladores de Cloud Run pueden inhabilitar Autorización Binaria si la política no está configurada.

Visualiza la política

Para ver la política, haz clic en Ver política.

Para obtener más información, consulta Configura una política de Autorización Binaria.

Error en la implementación del servicio o el trabajo

Si tu servicio o trabajo no se implementa porque infringe la política de Autorización Binaria, es posible que veas un error como el siguiente:

Revision REVISION_NAME uses an unauthorized container image.
Container image IMAGE_NAME is not authorized by policy.

El error también contiene información sobre por qué la imagen infringió la política. En este caso, puedes usar la anulación de emergencia para omitir la aplicación de la política y, luego, implementar la imagen.

Habilita la autorización binaria en un servicio nuevo

Puedes habilitar Autorización Binaria en un servicio nuevo mediante la consola de Google Cloud o Google Cloud CLI:

Consola

  1. Ir a la página Cloud Run:

    Ir a Cloud Run

  2. Haga clic en Crear servicio.

  3. En el formulario Crear servicio:

    1. Selecciona Cloud Run como tu plataforma de desarrollo.
    2. Selecciona la región en la que quieres que se ubique el servicio.
    3. Ingresa el nombre del servicio.
    4. Haz clic en Siguiente para ir a la página Configurar la primera revisión del servicio.
    5. Selecciona Implementar una revisión desde una imagen de contenedor existente.
    6. Ingresa o selecciona la imagen que quieres implementar.
    7. Expande la sección Configuración avanzada.
    8. Haz clic en la pestaña Seguridad.
    9. Selecciona la casilla de verificación Verificar la implementación del contenedor con la autorización binaria.

    10. Opcional: Haz clic en Configurar política para configurar la política de autorización binaria. Para obtener más información sobre la configuración de una política, consulta Configura una política.

    11. Implemente el servicio.

gcloud

Habilita Autorización Binaria en el servicio y, luego, impleméntala:

  gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION

Reemplaza lo siguiente:

  • SERVICE_NAME: Un nombre para tu servicio.
  • IMAGE_URL: La imagen que deseas implementar.
  • REGION: La región en la que deseas implementar tu servicio.

Habilita Autorización Binaria en un servicio nuevo

Puedes habilitar Autorización Binaria en un trabajo nuevo mediante Google Cloud CLI:

gcloud

  1. Crea un trabajo nuevo con Autorización Binaria habilitada:

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL OPTIONS \
      --binary-authorization=POLICY \
      --region=REGION

    Reemplaza lo siguiente:

    • JOB_NAME: el nombre del trabajo que deseas crear. Puedes omitir este parámetro, pero se te solicitará el nombre del trabajo si lo haces.
    • POLICY: la política que deseas aplicar. Usa el valor default para usar la política predeterminada.
    • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/job:latest
    • REGION: la región en la que se ejecutará este trabajo.
    • OPTIONS: cualquiera de las opciones disponibles que se describen en la página de creación de trabajos de Cloud Run.
  2. Espera a que finalice la creación del trabajo. Cuando se completa de forma correcta, la consola muestra un mensaje de éxito.

  3. Para ejecutar el trabajo, consulta Ejecuta trabajos o Ejecuta trabajos según una programación.

Cuando creas un trabajo nuevo, el agente de servicio de Cloud Run debe poder acceder al contenedor, que es el caso predeterminado.

YAML

  1. Crea un archivo service.yaml nuevo con este contenido:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/binary-authorization: POLICY
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    Reemplaza lo siguiente:

    • SERVICE: el nombre de tu Cloud Run.
    • IMAGE por la URL de la imagen de contenedor.
    • POLICY: configurado como default
  2. Implementa el servicio nuevo mediante el siguiente comando:

gcloud run services replace service.yaml

¿Qué sigue?