Configura la aplicación de la política de Autorización Binaria

La Autorización binaria para Google Distributed Cloud te permite extender la aplicación durante el tiempo de implementación de la Autorización binaria a tus clústeres de usuario locales para ayudar a proteger sus cargas de trabajo de contenedores. Puedes aplicar las reglas de aplicación forzosa de una política configurada en tu Google Cloud proyecto a los clústeres de usuario en la versión 1.28 o posterior. Para obtener más información sobre las políticas y las reglas, consulta la Descripción general de la Autorización binaria.

Si habilitaste la versión de vista previa de Autorización Binaria para Google Distributed Cloud, inhabilítala y limpia los recursos antes de habilitar la función de DG en los clústeres de la versión 1.28 o posterior.

Requisitos previos

Antes de habilitar la aplicación forzosa de la política de Autorización Binaria para un clúster de usuario, asegúrate de cumplir con los siguientes requisitos previos:

  • Registra el clúster en una flota: En el caso de un clúster creado con gkectl, el clúster se registra en el proyecto de Google Cloud que especifiques en el campo gkeConnect.projectID del archivo de configuración del clúster. Este proyecto se conoce como el proyecto host de la flota. Para obtener más información sobre las flotas, incluidos los casos de uso, las prácticas recomendadas y los ejemplos, consulta la documentación de Administración de flotas.

  • Habilita la API de Autorización Binaria en tu proyecto de Google Cloud : Habilita el servicio de Autorización Binaria en tu proyecto host de la flota.

  • Agrega el rol de evaluador de políticas de Autorización Binaria a tu proyecto host de flota: Para otorgar el rol de evaluador de políticas de Autorización Binaria (roles/binaryauthorization.policyEvaluator) a la cuenta de servicio de Kubernetes en tu proyecto host de flota, ejecuta el siguiente comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_ID.[binauthz-system/binauthz-agent]" \
        --role="roles/binaryauthorization.policyEvaluator"
    

    Si tu clúster se ejecuta detrás de un servidor proxy, asegúrate de que este permita conexiones a la API de Autorización Binaria (binaryauthorization.googleapis.com). Esta API proporciona validación y control de implementaciones basados en políticas para las imágenes implementadas en tu clúster. Para obtener más información, consulta Reglas de proxy y firewall.

Una vez que cumplas con los requisitos previos, podrás habilitar (o inhabilitar) la política de Autorización Binaria cuando crees un clúster nuevo o actualices uno existente.

Habilita la política de Autorización Binaria durante la creación del clúster

Puedes habilitar la aplicación de la política de Autorización Binaria con gkectl o gcloud CLI.

gkectl

Para habilitar la Autorización Binaria cuando creas un clúster con gkectl, sigue estos pasos:

  1. Antes de crear el clúster, agrega binaryAuthorization.evaluationMode al archivo de configuración del clúster de usuario, como se muestra en el siguiente ejemplo:

    ...
    binaryAuthorization:
      evaluationMode: "project_singleton_policy_enforce"
    ...
    

    Los valores permitidos para evaluationMode son los siguientes:

    • project_singleton_policy_enforce: Aplica las reglas especificadas en la política de Autorización Binaria, también conocida como política singleton de proyecto, en tu proyecto de Google Cloud para controlar la implementación de imágenes de contenedor en tu clúster.

    • disabled: Inhabilita el uso de la Autorización Binaria para tu clúster. Este es el valor predeterminado. Si omites binaryAuthorization, la función se inhabilita.

  2. Realiza cualquier otro cambio necesario en el archivo de configuración del clúster y, luego, ejecuta el comando gkectl create cluster.

Para obtener más información sobre la creación de clústeres, consulta Descripción general de la instalación de Google Distributed Cloud.

Habilita o inhabilita la política de Autorización Binaria para un clúster existente

Si tienes un clúster existente de la versión 1.28 o posterior, puedes habilitar o inhabilitar la Autorización Binaria en cualquier momento con gkectl o gcloud CLI.

gkectl

  • Para habilitar la opción:

    1. Edita el archivo de configuración del clúster para agregar los campos binaryAuthorization:

      ...
      binaryAuthorization:
        evaluationMode: "project_singleton_policy_enforce"
      
    2. Actualiza el clúster:

      gkectl update cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG_FILE \
        --force

      Reemplaza lo siguiente:

      • ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador
      • USER_CLUSTER_CONFIG_FILE: Es la ruta de acceso del archivo de configuración del clúster de usuario.
    3. Espera a que la Deployment llamada binauthz-module-deployment en el espacio de nombres binauthz-system esté lista.

      Cuando la implementación está lista, Autorización Binaria aplica las reglas especificadas en la política de Autorización Binaria, también conocida como política singleton de proyecto. Esta política está asociada con tu proyecto deGoogle Cloud y especifica reglas para controlar la implementación de imágenes de contenedor. Para obtener más información sobre el uso de gkectl para actualizar un clúster, consulta Actualiza clústeres. Para obtener más información sobre las políticas y reglas de Autorización binaria, consulta Descripción general de Autorización binaria.

  • Para hacerlo, sigue estos pasos:

    1. Edita el archivo de configuración del clúster y quita la sección binaryAuthorization o establece evaluationMode en disabled.

      ...
      binaryAuthorization:
        evaluationMode: "disabled"
      
    2. Actualiza el clúster:

      gkectl update cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG_FILE \
        --force

    Después de realizar este cambio, espera unos minutos hasta que se quite el Deployment llamado binauthz-module-deployment en el espacio de nombres binauthz-system.

Soluciona problemas

Si no completas todos los requisitos previos, es posible que veas un mensaje como el siguiente, que indica que hay un problema con la configuración de la Autorización binaria:

failed to validate Binary Authorization policy

(1) Ensure the Binary Authorization API is enabled for your Google Cloud project:
    gcloud services enable binaryauthorization.googleapis.com --project=PROJECT_ID
(2) Ensure an IAM policy binding is in place granting binaryauthorization.policyEvaluator role to the binauthz-system/binauthz-agent Kubernetes service account:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_ID.[binauthz-system/binauthz-agent]" \
        --role=roles/binaryauthorization.policyEvaluator