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. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    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:

Console

  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

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:

    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:

Console

  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 a través de 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.

Falla de la implementación del servicio o del 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:

Console

  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 acerca de la configuración de una política predeterminada, 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. Una vez que la operación se completa de manera 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?