L'autorisation binaire pour Google Distributed Cloud est une fonctionnalité Google Cloud qui étend l'application hébergée au moment du déploiement de l'autorisation binaire à vos clusters d'utilisateurs sur site. Le principal cas d'utilisation de l'autorisation binaire sur Google Distributed Cloud consiste à sécuriser les charges de travail sur vos clusters d'utilisateur. 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 utilisateur. Pour en savoir plus sur les stratégies et les règles de l'autorisation binaire, consultez la page 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
gkectl
, 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 ce serveur proxy autorise les connexions à l'API d'autorisation binaire (
binaryauthorization.googleapis.com
). Cette API fournit une validation et un contrôle de déploiement basés sur des règles pour les images déployées dans votre cluster. Pour en savoir plus, consultez la page Proxy des règles de proxy et de pare-feu.
Une fois les conditions préalables remplies, 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 stratégie d'autorisation binaire à l'aide de gkectl
ou de gcloud CLI.
gkectl
Pour activer l'autorisation binaire lorsque vous créez un cluster avec gkectl
, procédez comme suit :
Avant de créer votre cluster, ajoutez
binaryAuthorization.evaluationMode
au fichier de configuration du cluster utilisateur, comme illustré dans l'exemple suivant :... 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.disabled
: 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 toutes les autres modifications nécessaires dans le fichier de configuration du cluster, puis exécutez la commande
gkectl create cluster
.
Pour en savoir plus sur la création de clusters, consultez la Présentation de l'installation de Google Distributed Cloud.
Activer ou désactiver la règle d'autorisation binaire pour un cluster existant
Si vous disposez d'un cluster de version 1.28 ou ultérieure, vous pouvez activer ou désactiver l'autorisation binaire à tout moment à l'aide de gkectl
ou de gcloud CLI.
gkectl
Pour activer :
Modifiez le fichier de configuration du cluster pour ajouter les champs
binaryAuthorization
:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce"
Mettez à jour le cluster :
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Remplacez les éléments suivants :
ADMIN_CLUSTER_KUBECONFIG
: chemin d'accès au fichier kubeconfig du cluster d'administrateurUSER_CLUSTER_CONFIG_FILE
: chemin d'accès au fichier de configuration du cluster d'utilisateur
Attendez que le déploiement nommé
binauthz-module-deployment
dans l'espace de nomsbinauthz-system
soit prêt.Lorsque le déploiement est prêt, l'autorisation binaire applique les règles spécifiées dans la stratégie d'autorisation binaire, également appelée stratégie Singleton de projet. Cette stratégie est associée à votre projet Google Cloud et spécifie des règles permettant de régir le déploiement des images de conteneurs. Pour en savoir plus sur l'utilisation de
gkectl
pour mettre à jour un cluster, consultez la page Mettre à jour les clusters. Pour en savoir plus sur les stratégies et les règles de l'autorisation binaire, consultez la page Présentation de l'autorisation binaire.
Pour la désactiver :
Modifiez le fichier de configuration du cluster et supprimez la section
binaryAuthorization
ou définissezevaluationMode
surdisabled
.... binaryAuthorization: evaluationMode: "disabled"
Mettez à jour le cluster :
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
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é.
Dépannage
Si vous ne remplissez pas toutes les conditions préalables, un message de ce type peut s'afficher, indiquant 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