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 campogkeConnect.projectIDdel 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:
Antes de crear el clúster, agrega
binaryAuthorization.evaluationModeal 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
evaluationModeson 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 omitesbinaryAuthorization, la función se inhabilita.
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:
Edita el archivo de configuración del clúster para agregar los campos
binaryAuthorization:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce"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 administradorUSER_CLUSTER_CONFIG_FILE: Es la ruta de acceso del archivo de configuración del clúster de usuario.
Espera a que la Deployment llamada
binauthz-module-deploymenten el espacio de nombresbinauthz-systemesté 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
gkectlpara 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:
Edita el archivo de configuración del clúster y quita la sección
binaryAuthorizationo estableceevaluationModeendisabled.... binaryAuthorization: evaluationMode: "disabled"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-deploymenten el espacio de nombresbinauthz-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