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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes Acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes Acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init 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.
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:
Ve a la página de Cloud Run en la Google Cloud consola.
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.
JOB_NAME: el nombre de tu trabajo.POLICY: la política que deseas aplicar. Usa el valordefaultpara usar la política predeterminada.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 sobre la configuración de una política, consulta Configura una política.
Implemente el servicio.
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.Ve a la página de trabajos de Cloud Run:
Haz clic en Crear trabajo para mostrar el formulario Crear trabajo.
- En el formulario, especifica la imagen de contenedor que contiene el código del trabajo o selecciona los elementos de una lista de contenedores implementados antes.
- El nombre del trabajo se genera de forma automática a partir de la imagen de contenedor. Puedes editar o cambiar el nombre del trabajo según sea necesario. El nombre de un trabajo no se puede cambiar después de que se crea el trabajo.
- Selecciona la región en la que quieres que se ubique el trabajo.
- Especifica la cantidad de tareas que deseas ejecutar en el trabajo. Todas las tareas deben realizarse con éxito para que el trabajo tenga éxito. De forma predeterminada, las tareas se ejecutan en paralelo.
Haz clic en Contenedor, variables y secretos, conexiones y seguridad para establecer propiedades adicionales del trabajo.
Haz clic en la pestaña Configuración. En la sección Recursos, configura lo siguiente:
- En el menú Memoria, especifica la cantidad de memoria requerida. El valor predeterminado es el mínimo requerido, 512 MiB.
- En el menú CPU, especifica la cantidad de CPU requerida. El valor predeterminado es el mínimo requerido, 1 CPU.
En la sección Capacidad de la tarea, haz lo siguiente:
En Tiempo de espera de la tarea, especifica la cantidad máxima de tiempo en segundos que la tarea puede ejecutarse, hasta 168 horas (7 días). Cada tarea debe completarse dentro del plazo especificado. El valor predeterminado es de 10 minutos.
En Cantidad de reintentos por tarea con errores, especifica la cantidad de reintentos en caso de fallas de tarea. El valor predeterminado es 3 reintentos.
En la sección Paralelismo, haz lo siguiente:
- En la mayoría de los casos, puedes seleccionar Ejecutar tantas tareas como sea posible.
- Si necesitas establecer un límite inferior debido a las restricciones de escalamiento en los recursos a los que accede tu trabajo, selecciona Limita la cantidad máxima de tareas simultáneas y especifica la cantidad de tareas simultáneas en el campo Límite de paralelismo personalizado.
Cuando termines de configurar tu trabajo, haz clic en Crear para crear el trabajo en Cloud Run.
Para ejecutar el trabajo, consulta ejecuta trabajos o ejecuta trabajos según una programación.
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 valordefaultpara usar la política predeterminada.- IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo,
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.
Crea un archivo
job.yamlnuevo con este contenido:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB annotations: run.googleapis.com/binary-authorization: POLICY spec: template: spec: containers: - image: IMAGE
Reemplaza lo siguiente:
- JOB: El nombre de tu trabajo de Cloud Run
- IMAGE: La URL de tu imagen de contenedor
- POLICY: configurado como
default
Implementa el servicio nuevo mediante el siguiente comando:
gcloud run jobs replace job.yaml
- Usa el certificador
built-by-cloud-buildpara implementar solo imágenes compiladas por Cloud Build. - Configura la política de autorización binaria con la consola deGoogle 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.
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 con la Google Cloud consola o Google Cloud CLI:
Console
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
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 con laGoogle Cloud consola o Google Cloud CLI:
Console
gcloud
Habilita Autorización Binaria en el trabajo:
gcloud run jobs update JOB_NAME --binary-authorization=POLICY
Reemplaza lo siguiente:
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 con la Google Cloud consola o Google Cloud CLI:
Console
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:
Habilita Autorización Binaria en un servicio nuevo
Puedes habilitar la Autorización Binaria en un trabajo nuevo con una de las siguientes opciones:
Console
gcloud
Cuando creas un trabajo nuevo, el agente de servicio de Cloud Run debe poder acceder al contenedor, que es el caso predeterminado.