La Autorización Binaria para Google Distributed Cloud es una Google Cloud función que extiende la aplicación alojada en el tiempo de implementación de la Autorización Binaria a tus clústeres de usuarios locales. El caso de uso principal de la autorización binaria en Google Distributed Cloud es proteger las cargas de trabajo en tus clústeres de usuarios. Sigue los pasos de esta guía para aplicar las reglas de aplicación forzosa de una política de autorización binaria configurada en tu proyecto de Google Cloud a tus clústeres de usuarios. Para obtener más información sobre las políticas y reglas de la Autorización Binaria, consulta la descripción general de la Autorización Binaria.
Requisitos previos
Antes de habilitar la aplicación forzosa de la política de autorización binaria para un clúster de usuarios, asegúrate de cumplir con los siguientes criterios previos:
Registra el clúster con una flota: En el caso de un clúster creado con
gkectl
, el clúster se registra en el proyecto Google Cloud que especificas en el campogkeConnect.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 Binary Authorization 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 de host de la 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 de host de la flota, ejecuta el siguiente comando:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[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 servidor permita conexiones a la API de Binary Authorization (
binaryauthorization.googleapis.com
). Esta API proporciona validación y control de implementación 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
, haz lo siguiente:
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 administrar 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
, se inhabilita la función.
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 versión 1.28 o superior, puedes habilitar o inhabilitar la Autorización Binaria en cualquier momento con gkectl
o la CLI de gcloud.
gkectl
Para habilitar la función, sigue estos pasos:
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 implementación llamada
binauthz-module-deployment
en el espacio de nombresbinauthz-system
esté lista.Cuando la implementación esté lista, la Autorización Binaria aplicará 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 de Google Cloud y especifica reglas que rigen 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 la Autorización Binaria, consulta Descripción general de la Autorización Binaria.
Para inhabilitar la función, sigue estos pasos:
Edita el archivo de configuración del clúster y quita la sección
binaryAuthorization
o estableceevaluationMode
endisabled
.... 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 la implementación llamada
binauthz-module-deployment
en 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.svc.id.goog[binauthz-system/binauthz-agent]" \ --role=roles/binaryauthorization.policyEvaluator