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:
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
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
Ve a la página de Cloud Run en la consola de Google Cloud.
Haz clic en el servicio.
Haz clic en la pestaña Seguridad.
Para habilitar la aplicación de la autorización binaria en el servicio, haz clic en Habilitar.
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
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
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
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
Ve a la página de Cloud Run en la consola de Google Cloud.
Haz clic en el trabajo para abrir sus detalles.
Haz clic en la pestaña Configuración.
En Autorización Binaria, selecciona una política de la lista de políticas.
Haz clic en Aplicar para habilitar la aplicación de Autorización Binaria en el trabajo.
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 valordefault
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
Ir a la página Cloud Run:
Haga clic en Crear servicio.
En el formulario Crear servicio:
- Selecciona Cloud Run como tu plataforma de desarrollo.
- Selecciona la región en la que quieres que se ubique el servicio.
- Ingresa el nombre del servicio.
- Haz clic en Siguiente para ir a la página Configurar la primera revisión del servicio.
- Selecciona Implementar una revisión desde una imagen de contenedor existente.
- Ingresa o selecciona la imagen que quieres implementar.
- Expande la sección Configuración avanzada.
- Haz clic en la pestaña Seguridad.
Selecciona la casilla de verificación Verificar la implementación del contenedor con la autorización binaria.
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.
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
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 valordefault
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.
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.
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
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
Implementa el servicio nuevo mediante el siguiente comando:
gcloud run services replace service.yaml
¿Qué sigue?
- Usa el certificador
built-by-cloud-build
para implementar solo imágenes compiladas por Cloud Build. - Configura la política de autorización binaria mediante la consola de Google Cloud o la herramienta de línea de comandos.
- Usa certificaciones para implementar solo imágenes de contenedor firmadas.
- Mira un video sobre cómo usar Autorización Binaria en Cloud Run para que solo se implementen las compilaciones aprobadas.