La autorización binaria para Google Distributed Cloud es una Google Cloud función que amplía la implementación en tiempo de despliegue alojada de la autorización binaria a tus clústeres de usuario locales. El principal caso de uso de la autorización binaria en Google Distributed Cloud es proteger las cargas de trabajo de tus clústeres de usuario. Sigue los pasos de esta guía para aplicar las reglas de cumplimiento de una política de Autorización Binaria configurada en tu proyecto a tus clústeres de usuario. Google Cloud Para obtener más información sobre las políticas y las reglas de autorización binaria, consulta la descripción general de la autorización binaria.
Requisitos previos
Antes de habilitar la implementación de la política de autorización binaria en un clúster de usuarios, asegúrate de que cumples los siguientes requisitos:
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 Google Cloud que especifiques en el campogkeConnect.projectID
del archivo de configuración del clúster. Este proyecto se denomina proyecto host de la flota. Para obtener más información sobre las flotas, incluidos casos prácticos, prácticas recomendadas y ejemplos, consulta la documentación sobre gestión de flotas.Habilita la API de autorización binaria en tu proyecto Google Cloud : habilita el servicio de autorización binaria en tu proyecto host de la flota.
Añade el rol Evaluador de políticas de autorización binaria a tu proyecto host de la flota: para asignar el rol Evaluador de políticas de autorización binaria (
roles/binaryauthorization.policyEvaluator
) a la cuenta de servicio de Kubernetes en tu proyecto 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 el servidor proxy permita las conexiones a la API de autorización binaria (
binaryauthorization.googleapis.com
). Esta API proporciona validación y control de despliegue basados en políticas para las imágenes desplegadas en tu clúster. Para obtener más información, consulta Reglas de proxy y cortafuegos.
Una vez que cumplas los requisitos previos, podrás habilitar (o inhabilitar) la política de Autorización Binaria al crear un clúster o actualizar uno que ya tengas.
Habilitar la política de autorización binaria durante la creación del clúster
Puedes habilitar la implementación obligatoria de la política de autorización binaria con gkectl
o con la CLI de gcloud.
gkectl
Para habilitar la autorización binaria al crear un clúster con gkectl
, sigue estos pasos:
Antes de crear el clúster, añade
binaryAuthorization.evaluationMode
al archivo de configuración del clúster de usuarios, como se muestra en el siguiente ejemplo:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce" ...
Los valores permitidos de
evaluationMode
son:project_singleton_policy_enforce
: aplica las reglas especificadas en la política de autorización binaria, también conocida como política de singleton de proyecto, en tu proyecto de Google Cloud para controlar el despliegue de imágenes de contenedor en tu clúster.disabled
: inhabilita el uso de la autorización binaria en tu clúster. Este es el valor predeterminado. Si omitesbinaryAuthorization
, la función se inhabilitará.
Haz los cambios necesarios en el archivo de configuración del clúster y, a continuación, ejecuta el comando
gkectl create cluster
.
Para obtener más información sobre cómo crear clústeres, consulta la descripción general de la instalación de Google Distributed Cloud.
Habilitar o inhabilitar la política de autorización binaria en un clúster
Si tienes un clúster con la versión 1.28 o una posterior, puedes habilitar o inhabilitar la autorización binaria en cualquier momento mediante gkectl
o la CLI de gcloud.
gkectl
Para habilitar esta función, sigue estos pasos:
Edita el archivo de configuración del clúster para añadir los
binaryAuthorization
campos:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce"
Actualiza el clúster:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Haz los cambios siguientes:
ADMIN_CLUSTER_KUBECONFIG
: la ruta del archivo kubeconfig del clúster de administradorUSER_CLUSTER_CONFIG_FILE
: la ruta del archivo de configuración del clúster de usuarios.
Espera a que la implementación llamada
binauthz-module-deployment
en el espacio de nombresbinauthz-system
esté lista.Cuando el despliegue está listo, la autorización binaria aplica las reglas especificadas en la política de autorización binaria, también conocida como política de un solo proyecto. Esta política está asociada a tu proyecto deGoogle Cloud y especifica reglas para controlar el despliegue de imágenes de contenedor. Para obtener más información sobre cómo usar
gkectl
para actualizar un clúster, consulta Actualizar clústeres. Para obtener más información sobre las políticas y las reglas de Autorización binaria, consulta la descripción general de Autorización binaria.
Para inhabilitarla, sigue estos pasos:
Edite el archivo de configuración del clúster y elimine la sección
binaryAuthorization
o definaevaluationMode
comodisabled
.... binaryAuthorization: evaluationMode: "disabled"
Actualiza el clúster:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Después de hacer este cambio, espera unos minutos hasta que se elimine la implementación llamada
binauthz-module-deployment
en el espacio de nombresbinauthz-system
.
Solución de 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 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