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 :
Dans la Cloud de Confiance console, accédez à la page Règles d'administration.
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.
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.
Pour mettre à jour la règle d'administration pour cette ressource, cliquez sur Gérer la règle.
Sur la page Modifier la règle, cliquez sur Ignorer la règle parente.
Sélectionnez Ajouter une règle.
Sous Application, sélectionnez Activé.
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.
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.
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
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: trueRemplacez les éléments suivants :
RESOURCE_TYPEparorganizations,foldersouprojects.RESOURCE_IDpar 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é dansRESOURCE_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: truePour rendre la règle d'administration conditionnelle sur un tag, ajoutez un bloc
conditionauxrules. 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.Exécutez la
org-policies set-policycommande avec l'indicateurdryRunSpecpour définir la règle d'administration en mode dry run :gcloud org-policies set-policy POLICY_PATH \ --update-mask=dryRunSpecRemplacez
POLICY_PATHpar 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.
Utilisez la
policy-intelligence simulate orgpolicycommande 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_PATHRemplacez les éléments suivants :
ORGANIZATION_IDpar l'ID de votre organisation, par exemple1234567890123. La simulation de modifications sur plusieurs organisations n'est pas prise en charge.POLICY_PATHpar 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.
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-policyet l'indicateurspec:gcloud org-policies set-policy POLICY_PATH \ --update-mask=specRemplacez
POLICY_PATHpar 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_TYPEparorganizations,foldersouprojects.RESOURCE_IDpar 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é dansRESOURCE_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 :
Dans la Cloud de Confiance console, accédez à la page Explorateur de journaux.
Dans le volet Requête, saisissez la requête suivante :
protoPayload.metadata.dryRun="true" protoPayload.methodName="CheckOrgPolicy" protoPayload.resourceName =~ "/compute.managed.disableVmsWithContainerStartupAgent"Cliquez sur Exécuter la requête.
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.dryRunest défini surtrue. - La contrainte
constraints/compute.managed.disableVmsWithContainerStartupAgentest incluse dans les détails de la violation.
- Ils sont liés à
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.
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
- Découvrez comment migrer des conteneurs déployés sur des VM lors de la création de VM.