Empêcher la création de VM qui utilisent les métadonnées du conteneur

Pour vous assurer que les ressources de votre organisation n'utilisent pas l'agent de démarrage de conteneur (konlet) obsolète ni les métadonnées gce-container-declaration associées, Google vous recommande d'appliquer une règle d'administration. La contrainte gérée compute.managed.disableVmsWithContainerStartupAgent, lorsqu'elle est appliquée, désactive la création de ressources qui utilisent les métadonnées obsolètes.

Cette page explique comment effectuer les opérations suivantes :

  • Appliquer une règle d'administration pour désactiver la création d'instances Compute Engine qui utilisent l'agent de démarrage de conteneur.
  • Surveiller l'impact de la règle d'administration en l'appliquant en mode dry run.
  • Identifier les projets qui tentent d'utiliser l'agent de démarrage de conteneur obsolète avec l'explorateur de journaux.

Appliquer la règle d'administration pour désactiver la création de VM qui utilisent les métadonnées de conteneur

Pour empêcher la création de ressources qui utilisent l'agent de démarrage de conteneur obsolète, Google vous recommande d'appliquer une règle d'administration. La contrainte constraints/compute.managed.disableVmsWithContainerStartupAgent empêche la création de ressources avec la clé de métadonnées gce-container-declaration. Cette contrainte n'affecte pas les instances ni les modèles d'instance existants.

Vous pouvez appliquer cette contrainte à l'aide de la Cloud de Confiance console, Google Cloud CLI ou de l'API Compute Engine.

Console

Pour définir la règle d'administration à l'aide de la console, procédez comme suit :

  1. Dans la Cloud de Confiance 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.

    La page Règles d'administration affiche la liste des contraintes de règles d'administration disponibles.

  3. Sélectionnez la contrainte Disable creation of Compute Engine instances that use the deprecated container startup agent (konlet) (Désactiver la création d'instances Compute Engine qui utilisent l'agent de démarrage de conteneur obsolète (konlet)) dans la liste des contraintes. La page Détails de la règle qui s'affiche décrit la contrainte et fournit des informations sur son application.

  4. Pour mettre à jour la règle d'administration pour cette ressource, cliquez sur Gérer la règle.

  5. Sur la page Modifier la règle, cliquez sur Ignorer la règle parente.

  6. Sélectionnez Ajouter une règle.

  7. Sous Application, sélectionnez Activé.

  8. Pour prévisualiser l'impact de la modification de votre règle d'administration avant son application, cliquez sur Tester les modifications. Pour en savoir plus sur le test des modifications apportées aux règles d'administration, consultez Tester les modifications apportées aux règles d'administration à l'aide de Policy Simulator.

  9. Pour appliquer la règle d'administration en mode dry run, cliquez sur Définir la règle de dry run. Pour en savoir plus, consultez Créer une règle d'administration en mode dry run à partir d'une règle active.

  10. Une fois que vous avez vérifié que la règle d'administration en mode dry run fonctionne comme prévu, définissez la règle active en cliquant sur Définir la règle.

gcloud

  1. Créez un fichier YAML pour définir la règle d'administration.

    name: RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.disableVmsWithContainerStartupAgent
    spec:
      rules:
      - enforce: true
    dryRunSpec:
      rules:
      - enforce: true
    

    Remplacez les éléments suivants :

    • RESOURCE_TYPE par organizations, folders ou projects.

    • RESOURCE_ID par l'ID de votre organisation, l'ID du dossier, l'ID du projet ou le numéro du projet, en fonction du type de ressource spécifié dans RESOURCE_TYPE.

    L'exemple suivant montre un fichier YAML qui applique la règle d'administration pour le projet dont l'ID est 123456 :

    name: projects/123456/policies/compute.managed.disableVmsWithContainerStartupAgent
    spec:
      rules:
      - enforce: true
    dryRunSpec:
      rules:
      - enforce: true
    

    Pour rendre la règle d'administration conditionnelle sur un tag, ajoutez un bloc condition aux rules. Si vous ajoutez une règle conditionnelle à une règle d'administration, vous devez ajouter au moins une règle inconditionnelle, sinon la règle ne pourra pas être enregistrée. Pour en savoir plus, consultez Définir une règle d'administration avec des tags.

  2. Exécutez la org-policies set-policy commande avec l'indicateur dryRunSpec pour définir la règle d'administration en mode dry run :

     gcloud org-policies set-policy POLICY_PATH \
       --update-mask=dryRunSpec
    

    Remplacez POLICY_PATH par le chemin d'accès complet au fichier YAML de votre règle d'administration.

    Pour en savoir plus sur les règles d'administration en mode dry run, consultez Créer une règle d'administration en mode dry run.

  3. Utilisez la policy-intelligence simulate orgpolicy commande pour prévisualiser l'impact de la modification de votre règle d'administration avant son application :

    gcloud policy-intelligence simulate orgpolicy \
      --organization=ORGANIZATION_ID \
      --policies=POLICY_PATH
    

    Remplacez les éléments suivants :

    • ORGANIZATION_ID par l'ID de votre organisation, par exemple 1234567890123. La simulation de modifications sur plusieurs organisations n'est pas prise en charge.

    • POLICY_PATH par le chemin d'accès complet au fichier YAML de votre règle d'administration.

    Pour en savoir plus sur le test des modifications apportées aux règles d'administration, consultez Tester les modifications apportées aux règles d'administration à l'aide de Policy Simulator.

  4. Une fois que vous avez vérifié que la règle d'administration en mode dry run fonctionne comme prévu, définissez la règle active avec la commande org-policies set-policy et l'indicateur spec :

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    Remplacez POLICY_PATH par le chemin d'accès complet au fichier YAML de votre règle d'administration.

REST

Pour définir la règle d'administration, utilisez la organizations.policies.create méthode.

POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies

Le corps de la requête JSON contient la définition d'une règle d'administration. Si cette contrainte ne prend pas en charge les paramètres, omettez le bloc parameters sous rules.

{
  "name": "RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.disableVmsWithContainerStartupAgent",
  "spec": {
    "rules": [
      {
        "enforce": true,
      }
    ]
  },
  "dryRunSpec": {
    "rules": [
      {
        "enforce": true,
      }
    ]
  }
}

Remplacez les éléments suivants :

  • RESOURCE_TYPE par organizations, folders ou projects.

  • RESOURCE_ID par l'ID de votre organisation, l'ID du dossier, l'ID du projet ou le numéro du projet, en fonction du type de ressource spécifié dans RESOURCE_TYPE.

L'exemple suivant montre un corps de requête qui applique la règle d'administration pour le projet dont l'ID est 123456 :

  {
    "name": "projects/123456/policies/compute.managed.disableVmsWithContainerStartupAgent",
    "spec": {
      "rules": [
        {
          "enforce": true,
        }
      ]
    },
    "dryRunSpec": {
      "rules": [
        {
          "enforce": true,
        }
      ]
    }
  }
  ```

Optionally, to make the organization policy conditional on a tag, add a
`condition` block to the `rules`. If you add a conditional rule to an
organization policy, you must add at least one unconditional rule or the
policy cannot be saved. For more details, see
[Setting an organization policy with tags](/resource-manager/docs/organization-policy/tags-organization-policy).

For more information about dry-run organization policies, see
[Create an organization policy in dry-run mode](/resource-manager/docs/organization-policy/dry-run-policy).

Surveiller l'utilisation des métadonnées obsolètes en appliquant la règle en mode dry run

Au lieu d'appliquer directement la règle, ce qui bloque la création d'instances qui utilisent les métadonnées de déclaration de conteneur, vous pouvez l'appliquer en mode dry run. Ce paramètre vous permet de surveiller et de consigner toutes les actions que la règle peut bloquer, sans interférer avec les opérations. Pour en savoir plus, consultez Créer une règle d'administration en mode dry run.

Lorsqu'une action déclenche la règle en mode dry run (par exemple, si vous tentez de créer une instance avec la clé de métadonnées gce-container-declaration), une entrée de journal est générée dans Cloud Audit Logs.

Pour identifier les projets qui tentent d'utiliser l'agent de démarrage de conteneur obsolète, procédez comme suit :

  1. Dans la Cloud de Confiance console, accédez à la page Explorateur de journaux.

    Accéder à l'explorateur de journaux

  2. Dans le volet Requête, saisissez la requête suivante :

    protoPayload.metadata.dryRun="true"
    protoPayload.methodName="CheckOrgPolicy"
    protoPayload.resourceName =~ "/compute.managed.disableVmsWithContainerStartupAgent"
    
  3. Cliquez sur Exécuter la requête.

  4. Identifiez les projets qui tentent d'utiliser l'agent de démarrage de conteneur obsolète en examinant les entrées de journal. Les journaux des violations en mode dry run présentent les caractéristiques suivantes :

    • Ils sont liés à orgpolicy.googleapis.com.
    • Le champ protoPayload.metadata.dryRun est défini sur true.
    • La contrainte constraints/compute.managed.disableVmsWithContainerStartupAgent est incluse dans les détails de la violation.
  5. Examinez les informations des journaux d'audit pour comprendre où et pourquoi l'agent de démarrage de conteneur obsolète est toujours utilisé. Ces informations peuvent vous aider à migrer ces charges de travail vers des alternatives compatibles.

  6. Une fois que vous avez vérifié que la règle d'administration en mode dry run fonctionne comme prévu, appliquez la règle en passant de l'état d'application du mode dry run au mode actif.

Pour en savoir plus sur l'utilisation de l'explorateur de journaux, consultez Afficher les journaux à l'aide de l'explorateur de journaux.

Étape suivante