Configurer l'application de la stratégie d'autorisation binaire

L'autorisation binaire pour Google Distributed Cloud vous permet d'étendre l'application de l'autorisation binaire au moment du déploiement à vos clusters d'utilisateur sur site afin de sécuriser leurs charges de travail de conteneurs. Vous pouvez appliquer les règles d'application d'une stratégie configurée dans votre projet Google Cloud aux clusters d'utilisateur de la version 1.28 ou ultérieure. Pour en savoir plus sur les règles et les stratégies, consultez la présentation de l'autorisation binaire.

Si vous avez activé la version preview de l'autorisation binaire pour Google Distributed Cloud, désactivez-la et nettoyez les ressources avant d'activer la fonctionnalité DG sur les clusters de version 1.28 ou ultérieure.

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 champ gkeConnect.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 Binary Authorization dans votre projet Google Cloud  : activez l'autorisation binaire Authorization 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.[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 Binary Authorization (binaryauthorization.googleapis.com). Cette API fournit une validation et un contrôle du déploiement basés sur des règles pour les images déployées sur votre cluster. Pour en savoir plus, consultez Règles de proxy et de pare-feu.

Une fois les conditions préalables remplies, vous pouvez activer (ou désactiver) la stratégie d'autorisation binaire lorsque vous créez un cluster ou mettez à jour un cluster existant.

Activer la stratégie d'autorisation binaire lors de la création du cluster

Vous pouvez activer l'application de la stratégie d'autorisation binaire avec gkectl ou la gcloud CLI.

gkectl

Pour activer l'autorisation binaire lorsque vous créez un cluster avec gkectl, procédez comme suit :

  1. Avant de créer votre cluster, ajoutez binaryAuthorization.evaluationMode au fichier de configuration du cluster d'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 omettez binaryAuthorization, la fonctionnalité est désactivée.

  2. Apportez 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 page 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 la gcloud CLI.

gkectl

  • Pour activer :

    1. Modifiez le fichier de configuration du cluster pour ajouter les champs binaryAuthorization :

      ...
      binaryAuthorization:
        evaluationMode: "project_singleton_policy_enforce"
      
    2. 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'administrateur
      • USER_CLUSTER_CONFIG_FILE : chemin d'accès au fichier de configuration du cluster d'utilisateur
    3. Attendez que le déploiement nommé binauthz-module-deployment dans l'espace de noms binauthz-system soit prêt.

      Lorsque le déploiement est prêt, l'autorisation binaire applique les règles spécifiées dans la règle d'autorisation binaire, également appelée règle Singleton de projet. Cette stratégie est associée à votre projetGoogle Cloud et spécifie des règles régissant le déploiement d'images de conteneurs. Pour en savoir plus sur l'utilisation de gkectl 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 :

    1. Modifiez le fichier de configuration du cluster et supprimez la section binaryAuthorization ou définissez evaluationMode sur disabled.

      ...
      binaryAuthorization:
        evaluationMode: "disabled"
      
    2. Mettez à jour le cluster :

      gkectl update cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG_FILE \
        --force

    Après avoir effectué cette modification, attendez quelques minutes que le déploiement nommé binauthz-module-deployment dans l'espace de noms binauthz-system soit supprimé.

Dépannage

Si vous ne remplissez pas toutes les conditions préalables, un message semblable à celui-ci peut s'afficher, indiquant un problème de 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.[binauthz-system/binauthz-agent]" \
        --role=roles/binaryauthorization.policyEvaluator