Utilisez des règles de système d'exploitation pour conserver des configurations logicielles cohérentes sur les instances de machine virtuelle (VM) Linux et Windows.
Avant de commencer
- Consultez les pages Règle d'OS et attribution de règles d'OS.
- Consultez les quotas d'OS Config.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Systèmes d'exploitation compatibles
Pour obtenir la liste complète des systèmes d'exploitation et des versions compatibles avec les règles d'OS, consultez la page Détails des systèmes d'exploitation.
Autorisations
Étant donné que vous pouvez utiliser des règles d'OS pour installer et gérer des packages logiciels sur une VM, la création et la gestion des règles de système d'exploitation équivaut à accorder l'accès à l'exécution de code à distance sur une VM.
Lorsque vous configurez des stratégies d'OS, les autorisations IAM sont utilisées pour contrôler l'accès aux ressources et les activités sont enregistrées dans le journal d'audit. Cependant, les utilisateurs peuvent toujours exécuter du code sur la VM, ce qui présente un risque pour la sécurité. Pour limiter ce risque, nous vous recommandons de ne fournir que l'accès requis à chaque utilisateur.
Les propriétaires d'un projet disposent d'un accès complet pour créer et gérer des attributions de règles d'OS. Pour tous les autres utilisateurs, vous devez accorder des autorisations. Vous pouvez attribuer l'un des rôles suivants :
- Administrateur OSPolicyAssignment (
roles/osconfig.osPolicyAssignmentAdmin
). Contient les autorisations permettant de créer, supprimer, mettre à jour, obtenir et répertorier les attributions de règles d'OS. - Éditeur OSPolicyAssignment (
roles/osconfig.osPolicyAssignmentEditor
). Contient les autorisations permettant de mettre à jour, d'obtenir et de répertorier les attributions de règles d'OS. - Lecteur OSPolicyAssignment (
roles/osconfig.osPolicyAssignmentViewer
). Contient les autorisations d'accès en lecture seule pour obtenir et répertorier les attributions de règles d'OS.
Exemple de commande permettant de définir des autorisations
Pour accorder à un utilisateur l'accès administrateur pour des attributions de règles d'OS, exécutez la commande suivante :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.osPolicyAssignmentAdmin
Remplacez les éléments suivants :
PROJECT_ID
: ID du projetUSER_ID
: nom d'utilisateur Google Workspace de l'utilisateur
Créer une attribution de règles OS
Procédez comme suit pour créer et déployer une attribution de règles d'OS :
- Configurez VM Manager.
- Attribuez les autorisations requises aux utilisateurs.
- Consultez Règles d'OS et attributions de règles d'OS.
- Créez les ressources de règles d'OS.
Pour créer et déployer l'attribution de la règle d'OS, utilisez l'une des méthodes suivantes :
Console
Procédez comme suit pour créer et déployer une attribution de règles d'OS :
- Sur votre client local, créez ou téléchargez une règle de système d'exploitation. Il doit s'agir d'un fichier JSON ou YAML. Pour en savoir plus sur la création de règles d'OS ou pour afficher des exemples de règles d'OS, consultez la page Règles d'OS.
Dans la console Google Cloud, accédez à la page Règles d'OS.
Cliquez sur Créer une attribution de règles d'OS.
Dans la section ID d'attribution, indiquez un nom pour l'attribution de règles d'OS. Consultez la convention d'attribution de noms des ressources.
Dans la section Règles d'OS, importez le fichier de règle d'OS.
Dans la section Instances de VM cibles, spécifiez les VM cibles.
- Sélectionnez la zone contenant les VM auxquelles vous souhaitez appliquer la règle.
- Sélectionnez les familles de systèmes d'exploitation.
- Facultatif : Vous pouvez filtrer davantage les VM en spécifiant des étiquettes d'inclusion et d'exclusion.
Par exemple, vous pouvez sélectionner toutes les VM Ubuntu dans votre environnement de test et exclure celles qui exécutent Google Kubernetes Engine, en spécifiant les éléments suivants :
- Famille d'OS :
ubuntu
- Inclure :
env:test
,env:staging
- Exclure :
goog-gke-node
Spécifiez un plan de déploiement.
- Spécifiez la taille de la vague (également appelé budget d'interruption). Exemple : 10%
- Indiquez le temps d'attente. Par exemple, 15 minutes.
Cliquez sur Lancer le déploiement.
gcloud
Procédez comme suit pour créer et déployer une attribution de règles d'OS dans une zone :
Créez une ressource d'attribution de règles d'OS au format JSON ou YAML. Ce fichier définit les règles d'OS que vous souhaitez appliquer à vos VM, les VM cibles auxquelles vous souhaitez appliquer les règles et le taux de déploiement auquel appliquer les règles d'OS. Pour en savoir plus sur ce fichier et obtenir des exemples d'attributions, consultez la page Attribution de règles d'OS.
Utilisez la commande
os-config os-policy-assignments create
pour créer et déployer l'attribution de règles d'OS dans un emplacement spécifié.gcloud compute os-config os-policy-assignments create OS_POLICY_ASSIGNMENT_ID \ --location=ZONE \ --file=OS_POLICY_ASSIGNMENT_FILE \ --async
Remplacez les éléments suivants :
OS_POLICY_ASSIGNMENT_ID
: nom de l'attribution de la règle de système d'exploitation. Consultez la convention d'attribution de noms des ressources.ZONE
: zone dans laquelle créer l'attribution de la règle du système d'exploitationOS_POLICY_ASSIGNMENT_FILE
: chemin absolu du fichier d'attribution de règles d'OS que vous avez créé à l'étape précédente.
Exemple
gcloud compute os-config os-policy-assignments create my-os-policy-assignment \ --location=asia-south1-a \ --file=/downloads/assignment-config.yaml \ --async
Le résultat ressemble à ce qui suit :
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
Notez le nom complet de la ressource pour l'opération. Dans l'exemple précédent, le nom de ressource complet est le suivant :
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Vous pouvez utiliser ce nom de ressource complet pour obtenir des détails sur un déploiement ou pour annuler un déploiement. Voir Déploiements.
Terraform
Pour créer une attribution de règle d'OS, utilisez la ressource
google_os_config_os_policy_assignment
.L'exemple suivant vérifie si le serveur Web Apache est exécuté sur des VM CentOS.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
REST
Pour créer une attribution de règle d'OS sur votre client local, procédez comme suit :
Créez une attribution de règles d'OS. Il doit s'agir d'un fichier JSON. Pour en savoir plus sur la création d'attributions de règles d'OS ou pour afficher des exemples d'attributions de règles d'OS, consultez la section Attribution de règles d'OS.
Si vous souhaitez utiliser l'exemple d'attribution de règle d'OS YAML, vous devez la convertir au format JSON.
Dans l'API, envoyez une requête
POST
à la méthodeprojects.locations.osPolicyAssignments.create
.Dans le corps de la requête, collez les spécifications d'attribution des règles de système d'exploitation de l'étape précédente.
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/OSPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { JSON_OS_POLICY }
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.OS_POLICY_ASSIGNMENT_ID
: nom de l'attribution de règle d'OSJSON_OS_POLICY
: spécifications d'attribution de règles du système d'exploitation créées à l'étape précédente. Il doit être au format JSON. Pour plus d'informations sur les paramètres et le format, consultez la pageResource: OSPolicyAssignment
.ZONE
: zone dans laquelle créer l'attribution de la règle d'OS
Exemple
Par exemple, pour créer une attribution de règles d'OS pour Google Cloud Observability qui installe les agents de surveillance et de journalisation sur les VM sélectionnées à l'aide de l'exemple d'attribution de règles OS, procédez comme suit :
- Convertir l'exemple au format JSON
- Effectuez la requête suivante :
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/OSPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { "osPolicies": [ { "id": "setup-repo-and-install-package-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "setup-repo", "repository": { "yum": { "id": "google-cloud-monitoring", "displayName": "Google Cloud Monitoring Agent Repository", "baseUrl": "https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el8-x86_64-all", "gpgKeys": [ "https://packages.cloud.google.com/yum/doc/yum-key.gpg", "https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg" ] } } }, { "id": "install-pkg", "pkg": { "desiredState": "INSTALLED", "yum": { "name": "stackdriver-agent" } } } ] } ] } ], "instanceFilter": { "inclusionLabels": [ { "labels": { "used_for": "testing" } } ] }, "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": { "seconds": 300 } } }
Déploiements
Les attributions de stratégies d'OS sont déployées selon un taux de déploiement. Cela signifie que les attributions qui ciblent un ensemble de VM peuvent être déployées progressivement et ne sont pas appliquées immédiatement à toutes les VM. Les modifications sont déployées progressivement afin de vous permettre d'intervenir et d'annuler un déploiement si de nouvelles modifications provoquent des régressions.
Lorsque les appels de méthode à une API peuvent prendre beaucoup de temps, l'API renvoie une opération de longue durée. Pour en savoir plus sur les opérations de longue durée, consultez la page Opérations de longue durée.
L'API OS Config crée une opération de longue durée chaque fois que vous créez, mettez à jour ou supprimez une attribution de règles de système d'exploitation. Chaque opération de longue durée renvoie une ressource d'opération. Cette ressource d'opération est semblable à ceci :
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
Chaque opération de création, de mise à jour ou de suppression génère également une nouvelle révision d'attribution de règles d'OS. Pour afficher les révisions d'une attribution de règle de système d'exploitation, consultez la section Répertorier les révisions d'attribution de stratégies d'OS.
Vous pouvez utiliser Google Cloud CLI pour obtenir les détails d'un déploiement ou pour l'annuler.
Obtenir les détails d'un déploiement
Pour obtenir des détails sur un déploiement, utilisez la commande os-config os-policy-assignments operations describe
.
gcloud compute os-config os-policy-assignments operations describe FULLY_QUALIFIED_OPERATION_NAME
Remplacez FULLY_QUALIFIED_OPERATION_NAME
par le nom complet de la ressource pour l'opération renvoyée par la création, la mise à jour ou la suppression.
Exemple
gcloud compute os-config os-policy-assignments operations describe \ projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Exemple de résultat :
done: true metadata: '@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignmentOperationMetadata apiMethod: CREATE osPolicyAssignment: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment@cfb78790-41d8-40d1-b8a1-1eaf6011b909 rolloutStartTime: '2021-04-15T00:53:52.963569Z' rolloutState: SUCCEEDED rolloutUpdateTime: '2021-04-15T00:53:53.094041Z' name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/cfb78790-41d8-40d1-b8a1-1eaf6011b909 response: '@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignment baseline: true description: My test policy instanceFilter: inclusionLabels: - labels: label-key-not-targeting-instances: label-value-not-targeting-instances name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment osPolicies: - id: q-test-policy mode: ENFORCEMENT resourceGroups: - osFilter: osShortName: centos osVersion: '7' resources: - id: add-repo repository: yum: baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-ops-agent-el7-x86_64-all
Annuler un déploiement
Console
Dans la console Google Cloud, accédez à la page Règles d'OS.
Cliquez sur l'onglet Attribution de règle d'OS.
Pour l'attribution de règle d'OS pour laquelle vous souhaitez annuler le déploiement, cliquez sur Action (> Annuler le déploiement.
)Cliquez sur Annuler le déploiement.
gcloud
Pour annuler un déploiement, utilisez la commande gcloud compute os-config os-policy-assignments operations cancel
.
gcloud compute os-config os-policy-assignments operations cancel FULLY_QUALIFIED_OPERATION_NAME
Remplacez FULLY_QUALIFIED_OPERATION_NAME
par le nom complet de la ressource pour l'opération renvoyée par la création, la mise à jour ou la suppression.
Exemple
gcloud compute os-config os-policy-assignments operations cancel \ projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Si la commande aboutit, aucun résultat n'est renvoyé.
Étape suivante
- En savoir plus sur les règles de système d'exploitation.
- Gérer les attributions de règles d'OS