Configurar una política de autorización binaria con Cloud Run
En esta guía de inicio rápido se muestra cómo configurar y probar una regla básica en una política de autorización binaria con Cloud Run.
En esta guía de inicio rápido, usarás la autorización binaria para controlar el despliegue de un servicio de Cloud Run.
Antes de empezar
- 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Haz clic en Crear servicio para que se muestre el formulario Crear servicio:
En el formulario que aparece, haz lo siguiente:
- Selecciona Cloud Run como plataforma de desarrollo.
- Selecciona la región en la que quieres que se encuentre tu servicio.
- Especifica el nombre que quieras darle al servicio (por ejemplo,
test-service
). Haz clic en Siguiente para ir a la página Configurar la primera revisión del servicio.
En el formulario, haz lo siguiente:
- Selecciona Desplegar una revisión desde una imagen de contenedor que ya existe.
Usa
us-docker.pkg.dev/cloudrun/container/hello
como imagen de contenedor.Despliega la sección Configuración avanzada.
Haz clic en la pestaña Seguridad.
Selecciona la casilla Verificar el despliegue de contenedores con la autorización binaria:
De forma predeterminada, la política de autorización binaria permite que se desplieguen todas las imágenes.
Haz clic en Siguiente para ir a la página Configurar la activación del servicio:
Selecciona Permitir invocaciones no autenticadas para poder abrir el resultado en tu navegador web.
Haz clic en Crear para desplegar la imagen en Cloud Run y espera a que se complete el despliegue.
Tu servicio se ha desplegado. Las revisiones están sujetas a la aplicación de la política de autorización binaria.
-
Haz clic en Editar política.
En Regla predeterminada del proyecto, observa que la opción Permitir todas las imágenes está seleccionada.
Ve a la página Autorización binaria de la consola de Google Cloud .
Haz clic en Editar política.
En Regla predeterminada, selecciona No permitir todas las imágenes.
Haz clic en Save Policy.
Haz clic en el nombre del servicio que has implementado anteriormente en esta guía.
Haz clic en Editar y desplegar nueva revisión.
Haz clic en Desplegar.
Ve a la página Autorización binaria de la consola de Google Cloud .
Haz clic en Editar política.
Selecciona Permitir todas las imágenes.
Para guardar la política, haz clic en Guardar política.
Busca el servicio que quieras eliminar en la lista de servicios y marca la casilla correspondiente para seleccionarlo.
Haz clic en Eliminar. Se eliminarán todas las revisiones del servicio.
Usa acceso de emergencia para saltarte la implementación obligatoria de la autorización binaria.
Usa el
built-by-cloud-build
attestor para desplegar solo imágenes creadas por Cloud Build.Configura la política de Autorización Binaria mediante la Google Cloud consola o la herramienta de línea de comandos.
Ver eventos de autorización binaria para Cloud Run en registros de auditoría de Cloud
Crear un servicio con la autorización binaria habilitada
Para crear un servicio de Cloud Run con la autorización binaria habilitada, haz lo siguiente:
Actualizar la política de Autorización binaria para inhabilitar todas las imágenes
La política de autorización binaria contiene una regla predeterminada. Esta regla rige el despliegue del servicio de Cloud Run que acabas de crear.
De forma predeterminada, la regla permite que se desplieguen todas las imágenes de contenedor.
Para ver la política predeterminada, haz lo siguiente:
Ahora, modifique la política para impedir que se desplieguen todas las imágenes. Para ello, siga estos pasos:
Volver a desplegar el servicio
Prueba la política actualizada implementando una nueva revisión.
Para desplegar la imagen, haz lo siguiente:
Aparece un mensaje de error similar al siguiente:
Service update rejected by Binary Authorization policy: RevisionREVISION
uses unauthorized container image. Container image 'us-docker.pkg.dev/cloudrun/container/hello@SHA
' is not authorized by policy. Denied by an ALWAYS_DENY admission rule
Restablecer la política para permitir todas las imágenes
Para restablecer la política y permitir todas las imágenes, haz lo siguiente:
Ahora puedes desplegar imágenes.
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.
Para eliminar el servicio que has creado en Cloud Run, haz lo siguiente:
Para inhabilitar la autorización binaria, consulta Inhabilitar la autorización binaria.