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

  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.

    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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  7. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  13. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  14. 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:

    1. Ir a Cloud Run

    2. Haz clic en Crear servicio para que se muestre el formulario Crear servicio:

      imagen

      En el formulario que aparece, haz lo siguiente:

      1. Selecciona Cloud Run como plataforma de desarrollo.
      2. Selecciona la región en la que quieres que se encuentre tu servicio.
      3. Especifica el nombre que quieras darle al servicio (por ejemplo, test-service).
      4. Haz clic en Siguiente para ir a la página Configurar la primera revisión del servicio.

        En el formulario, haz lo siguiente:

        1. Selecciona Desplegar una revisión desde una imagen de contenedor que ya existe.
        2. Usa us-docker.pkg.dev/cloudrun/container/hello como imagen de contenedor.

        3. Despliega la sección Configuración avanzada.

        4. Haz clic en la pestaña Seguridad.

        5. Selecciona la casilla Verificar el despliegue de contenedores con la autorización binaria:

          imagen

          De forma predeterminada, la política de autorización binaria permite que se desplieguen todas las imágenes.

        6. Haz clic en Siguiente para ir a la página Configurar la activación del servicio:

          imagen

        7. Selecciona Permitir invocaciones no autenticadas para poder abrir el resultado en tu navegador web.

        8. 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.

    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:

    1. Ir a Autorización binaria

      Captura de pantalla de la pestaña Política que muestra la regla predeterminada

    2. Haz clic en Editar política.

    3. En Regla predeterminada del proyecto, observa que la opción Permitir todas las imágenes está seleccionada.

      Captura de pantalla de la opción para elegir un tipo de regla predeterminado

    Ahora, modifique la política para impedir que se desplieguen todas las imágenes. Para ello, siga estos pasos:

    1. Ve a la página Autorización binaria de la consola de Google Cloud .

      Ir a Autorización binaria

    2. Haz clic en Editar política.

    3. En Regla predeterminada, selecciona No permitir todas las imágenes.

      Captura de pantalla de la opción para elegir un tipo de regla predeterminado

    4. Haz clic en Save Policy.

    Volver a desplegar el servicio

    Prueba la política actualizada implementando una nueva revisión.

    Para desplegar la imagen, haz lo siguiente:

    1. Ir a Cloud Run

    2. Haz clic en el nombre del servicio que has implementado anteriormente en esta guía.

    3. Haz clic en Editar y desplegar nueva revisión.

    4. Haz clic en Desplegar.

    Aparece un mensaje de error similar al siguiente:

    Service update rejected by Binary Authorization policy: Revision
    REVISION 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:

    1. Ve a la página Autorización binaria de la consola de Google Cloud .

      Ir a Autorización binaria

    2. Haz clic en Editar política.

    3. Selecciona Permitir todas las imágenes.

    4. Para guardar la política, haz clic en Guardar política.

    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:

    1. Ir a Cloud Run

    2. Busca el servicio que quieras eliminar en la lista de servicios y marca la casilla correspondiente para seleccionarlo.

    3. Haz clic en Eliminar. Se eliminarán todas las revisiones del servicio.

    Para inhabilitar la autorización binaria, consulta Inhabilitar la autorización binaria.

    Siguientes pasos