L'autorisation binaire pour Google Distributed Cloud est une fonctionnalité Google Cloud qui étend l'application hébergée et le déploiement de l'autorisation binaire à vos clusters sur site. Le principal cas d'utilisation de l'autorisation binaire sur Google Distributed Cloud est de sécuriser les charges de travail, mais elle fonctionne avec tous les types de clusters. Suivez les étapes de ce guide pour appliquer les règles d'application d'une règle d'autorisation binaire configurée dans votre projet Google Cloud à vos clusters. Pour en savoir plus sur les règles et les stratégies d'autorisation binaire, consultez la présentation de l'autorisation binaire.
Prérequis
Avant de pouvoir activer l'application de la règle d'autorisation binaire pour un cluster d'utilisateur, assurez-vous de remplir les critères préalables suivants :
Enregistrer le cluster avec un parc : pour un cluster créé avec
bmctl
, le cluster est enregistré dans le projet Google Cloud que vous spécifiez dans le champgkeConnect.projectID
du fichier de configuration du cluster. Ce projet est appelé projet hôte du parc. Pour en savoir plus sur les parcs, y compris sur les cas d'utilisation, les bonnes pratiques et obtenir des exemples, consultez la documentation sur la gestion de parc.Activez l'API d'autorisation binaire dans votre projet Google Cloud : activez le service d'autorisation binaire dans votre projet hôte de parc.
Ajoutez le rôle d'évaluateur de la stratégie d'autorisation binaire à votre projet hôte de parc : pour attribuer le rôle d'évaluateur de la stratégie d'autorisation binaire (
roles/binaryauthorization.policyEvaluator
) au compte de service Kubernetes sur votre projet hôte du parc, exécutez la commande suivante :gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[binauthz-system/binauthz-agent]" \ --role="roles/binaryauthorization.policyEvaluator"
Si votre cluster s'exécute derrière un serveur proxy, assurez-vous que le serveur proxy autorise les connexions à l'API Binary Authorization (
binaryauthorization.googleapis.com
). Cette API permet de valider et de contrôler les déploiements basés sur des règles pour les images déployées sur votre cluster. Pour en savoir plus sur l'utilisation d'une configuration proxy, consultez la section Installer derrière un proxy.
Une fois que vous avez rempli les conditions préalables, vous pouvez activer (ou désactiver) la règle d'autorisation binaire lorsque vous créez un cluster ou mettez à jour un cluster existant.
Activer la règle d'autorisation binaire lors de la création du cluster
Vous pouvez activer l'application de la règle d'autorisation binaire avec bmctl
ou gcloud CLI.
bmctl
Pour activer l'autorisation binaire lorsque vous créez un cluster avec bmctl
, procédez comme suit :
Avant de créer votre cluster, ajoutez
spec.binaryAuthorization.evaluationMode
au fichier de configuration du cluster, comme illustré dans l'exemple suivant:... --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... binaryAuthorization: evaluationMode: "PROJECT_SINGLETON_POLICY_ENFORCE"
Les valeurs autorisées pour
evaluationMode
sont les suivantes :PROJECT_SINGLETON_POLICY_ENFORCE
: appliquez les règles spécifiées dans la stratégie d'autorisation binaire, également appelée règle Singleton de projet, sur votre projet Google Cloud afin de régir le déploiement des images de conteneurs sur votre cluster.DISABLE
: désactivez l'utilisation de l'autorisation binaire pour votre cluster. Il s'agit de la valeur par défaut. Si vous omettezbinaryAuthorization
, la fonctionnalité est désactivée.
Apportez les autres modifications nécessaires dans le fichier de configuration du cluster, puis exécutez la commande
bmctl create cluster
.
Pour en savoir plus sur la création de clusters, consultez la page Présentation de la création de clusters.
CLI gcloud
Pour créer un cluster d'utilisateur et activer l'autorisation binaire, ajoutez l'indicateur
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
lorsque vous exécutez la commandegcloud container bare-metal clusters create
.Cela crée un cluster d'utilisateur qui applique les règles spécifiées dans la règle d'autorisation binaire, également appelée règle Singleton de projet. Cette règle est associée à votre projet Google Cloud et spécifie les règles régissant le déploiement des images de conteneurs. Pour en savoir plus sur l'utilisation de gcloud CLI pour créer un cluster d'utilisateur, consultez Créer un cluster d'utilisateur à l'aide de clients d'API GKE On-Prem. Pour en savoir plus sur les règles et les stratégies d'autorisation binaire, consultez la présentation de l'autorisation binaire.
Activer ou désactiver la règle d'autorisation binaire pour un cluster existant
Si vous disposez d'un cluster de version 1.16 ou ultérieure, vous pouvez activer ou désactiver l'autorisation binaire à tout moment à l'aide de bmctl
ou de la CLI gcloud.
bmctl
Pour activer :
Modifiez le fichier de configuration du cluster pour ajouter les champs
binaryAuthorization
:... --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... binaryAuthorization: evaluationMode: "PROJECT_SINGLETON_POLICY_ENFORCE"
Mettez à jour le cluster :
bmctl update cluster -c CLUSTER_NAME --admin-kubeconfig=CLUSTER_KUBECONFIG
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster à mettre à jour.CLUSTER_KUBECONFIG
: chemin d'accès au fichier kubeconfig du cluster.
Attendez que le déploiement nommé
binauthz-module-deployment
dans l'espace de nomsbinauthz-system
soit prêt.Une fois le déploiement prêt, l'autorisation binaire applique les règles spécifiées dans la stratégie d'autorisation binaire, également appelée règle Singleton de projet. Cette règle est associée à votre projet Google Cloud et spécifie les règles qui régissent le déploiement des images de conteneurs. Pour en savoir plus sur l'utilisation de
bmctl
pour mettre à jour un cluster, consultez Mettre à jour des clusters. Pour en savoir plus sur les règles et les stratégies d'autorisation binaire, consultez la présentation de l'autorisation binaire.
Pour la désactiver :
Vous pouvez désactiver cette fonctionnalité en définissant
evaluationMode
surDISABLED
ou en supprimant la sectionbinaryAuthorization
des spécifications du cluster. Une fois cette modification effectuée, attendez quelques minutes jusqu'à ce que le déploiement nommébinauthz-module-deployment
dans l'espace de nomsbinauthz-system
soit supprimé.
CLI gcloud
Pour activer l'autorisation binaire pour un cluster existant, ajoutez l'indicateur
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
lorsque vous exécutez la commandegcloud container bare-metal clusters update
.Cette opération met à jour un cluster utilisateur afin que l'autorisation binaire applique les règles spécifiées dans la stratégie d'autorisation binaire, également appelée règle singleton de projet. Cette règle est associée à votre projet Google Cloud et spécifie les règles qui régissent le déploiement des images de conteneurs. Pour en savoir plus sur l'utilisation de gcloud CLI pour mettre à jour un cluster d'utilisateur, consultez la page Mise à jour des clusters bare metal pour les conteneurs gcloud dans la documentation de référence de gcloud CLI. Pour en savoir plus sur les règles et les stratégies d'autorisation binaire, consultez la présentation de l'autorisation binaire.
Pour désactiver l'autorisation binaire pour un cluster existant, exécutez la commande
gcloud container bare-metal clusters update
avec l'indicateur--binauthz-evaluation-mode=DISABLED
.
Dépannage
Si vous ne remplissez pas toutes les conditions préalables, il est possible que vous ne remarquiez pas de problème. Si l'autorisation binaire ne répond plus aux demandes de création de pod, vérifiez status.conditions
pour le ReplicaSet. Un message semblable au suivant indique qu'il y a un problème avec la configuration de l'autorisation binaire:
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