Exécuter des agents de VM sur chaque nœud GKE dans les organisations

Cette page explique comment s'assurer que VM Manager est activé sur toutes les instances Compute Engine, y compris les VM Google Kubernetes Engine dans une organisation, un dossier ou un projet, à l'aide du service de règles d'administration.

Ce guide est destiné aux équipes de sécurité qui souhaitent s'assurer que tous les programmes requis, tels que les agents de sécurité et de surveillance, s'exécutent sur toutes les instances d'une organisation, d'un dossier ou d'un projet. Pour appliquer la configuration uniquement avec les règles d'administration, suivez ce guide. Pour une approche de configuration en tant que code, utilisez Config Sync. Config Sync vous permet de configurer et de contrôler de nombreux aspects de vos clusters, et offre une valeur ajoutée au-delà des règles d'administration.

Avant de lire cette page, assurez-vous de bien connaître VM Manager et les contraintes Resource Manager.

Ce guide vous explique comment appliquer l'utilisation de VM Manager dans chaque projet d'une organisation ou d'un dossier. Il ne vous explique pas comment configurer et utiliser VM Manager avec des règles d'OS. Pour obtenir ces instructions, consultez Créer une attribution de règle d'OS.

À propos de VM Manager

VM Manager est une suite d'outils qui permet de gérer les systèmes d'exploitation des grands parcs de machines virtuelles (VM) exécutant Windows et Linux sur Compute Engine. Vous pouvez utiliser VM Manager pour appliquer des règles d'OS afin de personnaliser les programmes qui s'exécutent sur les VM. Par exemple, vous pouvez définir une règle pour installer un agent sur une ressource et la réutiliser sur plusieurs ressources. VM Manager est désactivé par défaut dans Google Cloud les projets.

Vous pouvez affiner l'application des règles par VM Manager à l'aide de OSPolicyAssignments, qui vous permettent d'étendre les règles d'OS à des VM spécifiques à l'aide de sélecteurs. Par exemple, toutes les VM de nœud GKE sont associées au libellé goog-gke-node, que vous pouvez cibler avec une attribution de règle d'OS.

Règles d'administration et VM Manager

Si votre Google Cloud organisation comporte plusieurs niveaux de hiérarchie tels que des dossiers et des sous-dossiers, l'activation manuelle de VM Manager sur tous ces projets peut entraîner une surcharge de gestion inutile. Vous pouvez exiger que tous les projets de tous les dossiers ou d'une organisation activent VM Manager sur toutes les VM à l'aide du service de règles d'administration avec la contrainte constraints/compute.requireOsConfig. Voici quelques avantages de l'application de VM Manager à l'aide d'une règle d'administration :

  • Tous les nouveaux projets ajoutent le libellé de métadonnées enable-osconfig=TRUE à chaque projet et VM.
  • Si quelqu'un tente de supprimer ce libellé ou de lui attribuer une valeur autre que true, cette modification est rejetée.
  • Si quelqu'un tente de créer ou de mettre à jour une VM de manière à définir la clé de métadonnées enable-osconfig sur une valeur autre que true, cette modification est rejetée.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser la Google Cloud CLI pour cette tâche, installez et initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
  • Assurez-vous que vous utilisez déjà VM Manager avec des règles d'OS et des attributions de règles d'OS pour exécuter des agents sur vos VM. Pour obtenir des instructions, consultez Créer une attribution de règle d'OS.
  • Activez l'API Cloud Resource Manager et les API OS Config.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer les API

Limites

La règle d'administration constraints/compute.requireOsConfig présente les limites suivantes :

  • Les ressources présentant des violations préexistantes ne sont pas modifiées par la nouvelle règle d'administration. Vous pouvez définir manuellement les métadonnées de la règle ou à l'aide de gcloud sur les ressources existantes.
  • Toute personne autorisée à modifier les métadonnées sur les instances Compute Engine du projet peut désactiver osconfig-agent sur la VM en définissant le champ de métadonnées osconfig-disabled-features.
  • Si osconfig-agent ne s'exécute pas, la VM s'affiche comme non conforme dans le tableau de bord VM Manager. Cela peut se produire, par exemple, si un utilisateur a désactivé manuellement l'agent.

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer des règles d'administration, demandez à votre administrateur de vous accorder le rôle IAM Administrateur des règles d'administration (roles/orgpolicy.policyAdmin) dans l'organisation. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer compute.requireOsConfig dans une organisation

Une fois que vous avez activé VM Manager et étendu une OSPolicyAssignment à vos VM, vous pouvez vous assurer que VM Manager est activé par défaut sur tous les nouveaux projets avec la règle d'administration constraints/compute.requireOsConfig. La manière dont vous appliquez constraints/compute.requireOsConfig dépend de la version de l'API que vous utilisez.

API Organization Policy v2

Vous pouvez appliquer la contrainte constraints/compute.requireOsConfig à une Google Cloud ressource telle qu'un dossier ou une organisation à l'aide de la gcloud CLI ou de la Google Cloud console.

gcloud

  1. Vérifiez que la contrainte compute.requireOsConfig n'est pas déjà appliquée :

    gcloud org-policies describe \
        constraints/compute.requireOsConfig \
        --organization=ORGANIZATION_ID
    

    Remplacez ORGANIZATION_ID par votre ID d'organisation.

    Si aucune règle n'est définie, cette commande renvoie une erreur NOT_FOUND :

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

    Si la règle existe, la commande renvoie la règle actuelle. L'application d'une nouvelle règle remplace la règle existante, le cas échéant.

  2. Créez un fichier temporaire /tmp/policy.yaml pour stocker la règle :

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    
  3. Exécutez la commande set-policy :

    gcloud org-policies set-policy /tmp/policy.yaml
    
  4. Vérifiez que la nouvelle règle est appliquée :

    gcloud org-policies describe \
        constraints/compute.requireOsConfig --effective \
        --organization=ORGANIZATION_ID
    

    La sortie de la commande ressemble à ceci :

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    

Console

  1. Dans la Google Cloud console, accédez à la page Règles d'administration.

    Accéder à la page Règles d'administration

  2. Dans le sélecteur de projet, sélectionnez le projet, le dossier ou l'organisation dont vous souhaitez modifier les règles d'administration.

  3. Sur la page Règles d'administration, utilisez le filtre pour rechercher compute.requireOsConfig.

  4. Cliquez sur le nom de la règle pour ouvrir la page Détails de la règle.

  5. Cliquez sur Gérer la règle pour mettre à jour la règle d'administration de cette ressource.

  6. Sur la page Modifier la règle, sélectionnez Remplacer la règle parente.

  7. Sélectionnez Ajouter une règle.

  8. Sous Application, définissez l'application de cette règle d'administration sur Activée.

  9. Pour appliquer la règle, cliquez sur Définir la règle.

API Resource Manager v1

  1. Vérifiez que la contrainte compute.requireOsConfig n'est pas déjà appliquée :

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    Remplacez ORGANIZATION_ID par votre ID d'organisation.

    Si aucune règle n'est définie, cette commande renvoie une règle incomplète, comme dans l'exemple suivant :

    constraint: "constraints/compute.requireOsConfig"
    etag: BwVJi0OOESU=
    

    Si la règle existe, la commande renvoie la règle actuelle. L'application d'une nouvelle règle remplace la règle existante, le cas échéant.

  2. Définissez la règle à appliquer à l'organisation :

    gcloud resource-manager org-policies enable-enforce constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    La sortie de la commande ressemble à ceci :

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    etag: BwVJitxdiwY=
    
  3. Vérifiez que la nouvelle règle est appliquée :

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --effective \
        --organization ORGANIZATION_ID
    

    La sortie de la commande ressemble à ceci :

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    

L'application complète des modifications de règles d'administration peut prendre jusqu'à 15 minutes.

Pour en savoir plus sur les autres règles que vous pouvez appliquer, ou sur la modification ou la suppression de règles, consultez la documentation Resource Manager.

Étape suivante

En savoir plus sur les journaux d'audit GKE.