Gérer les paramètres de ressources

Ce guide explique comment gérer les paramètres des ressources. Vous pouvez utiliser les paramètres des ressources pour configurer les paramètres de vos projets, dossiers et organisation Google Cloud de manière centralisée. Chaque paramètre de ressource vous permet de contrôler un aspect d'un service compatible.

Avant de commencer

Pour en savoir plus sur les paramètres des ressources et leur fonctionnement, consultez la page Présentation des paramètres de ressources.

Activer l'API

Vous pouvez activer l'API Resource Settings pour des projets individuels.

Console Google Cloud

Pour activer l'API Resource Settings, procédez comme suit :

Accéder à API et services

  1. Sélectionnez le projet à utiliser pour accéder à l'API.
  2. Cliquez sur le bouton Activer des API et des services.
  3. Recherchez "Paramètres des ressources".
  4. Dans les résultats de recherche, cliquez sur "API Resource Settings".
  5. Si "API activée" s'affiche, cela signifie que l'API est déjà activée. Sinon, cliquez sur le bouton Activer.

gcloud

Pour activer l'API Resource Settings, exécutez la commande gcloud services enable :

gcloud services enable resourcesettings.googleapis.com

Autorisations requises

Les autorisations dont vous avez besoin dépendent de l'action que vous devez effectuer.

Pour obtenir ces autorisations, demandez à votre administrateur d'attribuer le rôle suggéré au niveau approprié de la hiérarchie des ressources.

Afficher les paramètres des ressources

Pour afficher les paramètres disponibles pour une ressource, ainsi que les valeurs de paramètre locales et effectives d'une ressource, vous devez disposer du rôle Lecteur des paramètres de ressources (roles/resourcesettings.viewer) ou d'un autre rôle comprenant les autorisations suivantes :

  • resourcesettings.settings.get
  • resourcesettings.settings.list

Administrer les paramètres des ressources

Pour créer, mettre à jour et supprimer des valeurs de paramètres de ressources sur une ressource, vous devez disposer du rôle Administrateur des paramètres de ressources (roles/resourcesettings.admin) ou d'un autre rôle comprenant les autorisations suivantes :

  • resourcesettings.settings.get
  • resourcesettings.settings.list
  • resourcesettings.settings.update

Répertorier les paramètres disponibles

Vous pouvez obtenir la liste de tous les paramètres de ressources disponibles pour une ressource donnée. Cette liste affiche tous les paramètres de ressource pouvant être appliqués à la ressource. Les paramètres de ressource en version bêta ne sont disponibles que pour les utilisateurs qui ont été explicitement autorisés à les utiliser.

gcloud

Pour obtenir la liste de tous les paramètres disponibles pour une ressource, exécutez la commande gcloud resource-settings list suivante:

gcloud resource-settings list --RESOURCE_ID

RESOURCE_ID correspond à l'ID du dossier, du projet ou de l'organisation dont vous souhaitez connaître les paramètres de ressources disponibles. Par exemple : --project=7890123456

API

Pour obtenir la liste de tous les paramètres disponibles pour une ressource, utilisez l'une des méthodes settings.list suivantes. Utilisez la méthode correspondant au type de ressource pour lequel vous souhaitez répertorier les paramètres :

curl -X GET -H "Content-Type: application/json" -H \
  "Authorization: Bearer $ACCESS_TOKEN" \
  https://resourcesettings.googleapis.com/v1/RESOURCE_ID/settings

Remplacez les éléments suivants :

  • ACCESS_TOKEN : votre jeton d'accès OAuth 2.0.

  • RESOURCE_ID : ID du dossier, du projet ou de l'organisation pour lequel vous souhaitez rechercher les paramètres de ressources disponibles. Par exemple : projects/7890123456

Exemple de réponse :

Une réponse à une requête "list" sur folders/4567890123 ressemble à ce qui suit :

{
  "settings" : [
    {
      "name": "folders/4567890123/settings/net-preferredDnsServers",
      "metadata":  {
        "displayName": "Preferred DNS Servers",
        "description": "The DNS servers to be used by VMs associated with this resource.",
        "read_only": false,
        "data_type" : "STRING_SET",
        "default_value" : {
          "string_set_value" : {
            "values" : [ "8.8.8.8" ],
          }
        }
      }
    },
    {
      "name": "folders/4567890123/settings/text-defaultTextColor",
      "metadata":  {
        "displayName": "Default Text Color",
        "description": "The default text color for this resource.",
        "read_only": false,
        "data_type" : "STRING",
        "default_value" : {
          "string_value" : "black"
        }
      }
    },
    ...
  ]
}

Le champ name est le nom court du paramètre de ressource, qui doit être utilisé dans les requêtes API et de la gcloud CLI associées à ce paramètre.

Modifier une valeur de paramètre local

Vous pouvez modifier la valeur locale d'un paramètre de ressource donné. Si vous définissez une valeur de paramètre local, elle remplace tout paramètre de valeur effective hérité. Si vous ne définissez pas la valeur du paramètre local, toute valeur de paramètre local appliquée à une ressource d'ancêtre est héritée, ce qui en fait la valeur effective.

gcloud

Pour modifier la valeur locale d'un paramètre de ressource, exécutez la commande gcloud resource-settings set-value suivante:

gcloud resource-settings set-value --value-file=FILE_PATH

Remplacez FILE_PATH par le chemin d'accès à un fichier YAML ou JSON contenant le paramètre de ressource.

Exemple de fichier JSON :

{
  "localValue" : {
    "stringSetValue": {
      "values": [
        "8.8.8.8",
        "8.8.4.4",
      ]
    }
  },
  "name": "RESOURCE_ID/settings/SETTING_NAME"
}

Remplacez les éléments suivants :

  • RESOURCE_ID : ID du dossier, du projet ou de l'organisation pour lequel vous souhaitez mettre à jour le paramètre de ressource locale. Par exemple : projects/7890123456

  • SETTING_NAME : nom court du paramètre de ressource que vous souhaitez mettre à jour.

Pour annuler la définition d'une valeur de paramètre local sur une ressource, exécutez la commande gcloud resource-settings unset-value:

gcloud resource-settings unset-value SETTING_NAME \
  --RESOURCE_ID

Remplacez les éléments suivants :

  • SETTING_NAME : nom court du paramètre de ressource pour lequel vous souhaitez désactiver la valeur locale.

  • RESOURCE_ID : ID du dossier, du projet ou de l'organisation pour lequel vous souhaitez rechercher les paramètres de ressources disponibles. Par exemple : projects/7890123456

API

Pour modifier la valeur du paramètre local d'un paramètre de ressource sur une ressource, utilisez la méthode settings.patch. Utilisez la méthode correspondant au type de ressource pour lequel vous souhaitez mettre à jour les paramètres :

curl -X PATCH -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" -d \
  '{
    "localValue": {
      "stringSetValue": {
        "values": [ "8.8.8.8", "8.8.4.4" ]
      }
    }
  }
  ' https://resourcesettings.googleapis.com/v1/RESOURCE_ID/settings/net-preferredDnsServers

Remplacez les éléments suivants :

  • ACCESS_TOKEN : votre jeton d'accès OAuth 2.0.

  • RESOURCE_ID : ID du dossier, du projet ou de l'organisation pour lequel vous souhaitez rechercher les paramètres de ressources disponibles. Par exemple : projects/7890123456

Si vous effectuez cette requête sans valeur locale incluse dans le fichier JSON, vous désactivez la valeur des paramètres locaux, et la ressource hérite du paramètre de valeur parent ou utilise la valeur par défaut gérée par Google.

Une fois votre requête envoyée, vous obtenez une réponse incluant la valeur locale créée pour ce paramètre et un champ etag que vous devez inclure dans les requêtes de mise à jour ultérieures.

{
  "name": "folders/4567890123/settings/net-preferredDnsServers",
  "localValue": {
    "stringSetValue": {
      "values": [ "8.8.8.8", "8.8.4.4" ]
    }
  }
  "etag": "O2VWGxZU01VnAfRU4Mu97w==",
}

Afficher le paramètre de valeur locale ou effective

Vous pouvez afficher la valeur locale ou effective d'un paramètre de ressource pour une ressource donnée.

gcloud

Pour afficher la valeur locale d'un paramètre de ressource pour une ressource donnée, exécutez la commande gcloud resource-settings describe comme suit:

gcloud resource-settings describe SETTING_NAME \
  --RESOURCE_ID

Remplacez les éléments suivants :

  • SETTING_NAME : nom court du paramètre de ressource pour lequel vous souhaitez rechercher la valeur locale ou effective.

  • RESOURCE_ID : ID du dossier, du projet ou de l'organisation pour lequel vous souhaitez rechercher les paramètres de ressources disponibles. Par exemple : --project=7890123456

Si vous ajoutez l'option --effective, vous obtenez la valeur effective telle qu'elle est évaluée pour cette ressource.

API

Pour afficher la valeur locale ou effective d'un paramètre de ressource pour une ressource donnée, utilisez la méthode settings.get. Utilisez la méthode correspondant au type de ressource pour lequel vous souhaitez répertorier les paramètres :

curl -X GET -H "Content-Type: application/json" -H \
  "Authorization: Bearer $ACCESS_TOKEN" \
  https://resourcesettings.googleapis.com/v1/RESOURCE_ID \
  /settings/SETTING_NAME?view=VIEW_PARAMETER

Remplacez les éléments suivants :

  • ACCESS_TOKEN : votre jeton d'accès OAuth 2.0.

  • RESOURCE_ID : ID du dossier, du projet ou de l'organisation pour lequel vous souhaitez rechercher les paramètres de ressources disponibles. Par exemple : projects/7890123456

  • SETTING_NAME : nom court du paramètre de ressource pour lequel vous souhaitez afficher les valeurs.

  • VIEW_PARAMETER : SETTING_VIEW_LOCAL_VALUE pour renvoyer la valeur du paramètre local ou SETTING_VIEW_EFFECTIVE_VALUE pour renvoyer la valeur effective de cette ressource.

Exemple de réponse :

Une réponse à une requête "get" sur folders/4567890123 ressemble à ceci :

{
  "name": "folders/4567890123/settings/net-preferredDnsServers",
  "value": {
    "stringSetValue": {
      "values": [ "8.8.8.8", "8.8.4.4" ]
    }
  }
  "etag": "O2VWGxZU01VnAfRU4Mu97w=="
}

Héritage

Le paramètre de ressource qui prend effet sur une ressource donnée est évalué en fonction de l'héritage. Vous pouvez remplacer la valeur héritée d'une ressource en définissant une valeur locale, ce qui affecte également les valeurs de paramètre héritées par les enfants de cette ressource. Pour plus d'informations sur l'héritage des paramètres de ressources, consultez la section Valeurs de paramètre effectives.

Récupérer les valeurs effectives

Vous pouvez récupérer la valeur effective d'un paramètre sur une ressource donnée à l'aide de l'API ou de gcloud CLI. Pour obtenir des instructions détaillées, consultez la section Afficher le paramètre de valeur locale ou effective. Prenons l'exemple suivant, avec les valeurs définies pour le paramètre de ressource des serveurs DNS préférés d'une organisation, d'un dossier de cette organisation et d'un sous-dossier de ce dossier :

Les valeurs effectives de chacune de ces ressources sont évaluées comme suit :

  • organizations/111 n'a pas de valeur locale et n'a pas de ressource parente à hériter. Il utilise donc la valeur par défaut gérée par Google, 8.8.8.8.

    • Si vous utilisez la méthode describe pour obtenir la valeur effective d'une ressource et qu'elle utilise la valeur par défaut gérée par Google, ces informations sont incluses dans la réponse. Exemple :
    {
      "name": "organizations/111/settings/net-preferredDnsServers",
      "effectiveValue": {
        "stringSetValue": {
          "values": [ "8.8.8.8" ] # Google-managed default
        }
      }
    }
    
  • folders/222 a un paramètre de valeur locale de 8.8.4.4 et n'hérite donc pas de sa ressource parente.

    • Si vous utilisez la méthode describe pour obtenir la valeur effective d'une ressource, et qu'il s'agit d'une valeur définie localement, ces informations sont incluses dans la réponse. Exemple :
    {
      "name": "folders/222/settings/net-preferredDnsServers",
      "effectiveValue": {
        "stringSetValue": {
          "values": [ "8.8.4.4" ] # set on folders/222
        }
      }
    }
    
  • folders/333 n'a pas de valeur locale, contrairement à sa ressource parente. Il hérite de la valeur de paramètre locale de folders/222, et renvoie donc 8.8.4.4.

    • Si vous utilisez la méthode describe pour obtenir la valeur effective d'une ressource et qu'elle hérite de cette valeur d'une ressource parente, ces informations sont incluses dans la réponse. Exemple :
    {
      "name": "folders/333/settings/net-preferredDnsServers",
      "effectiveValue": {
        "stringSetValue": {
          "values": [ "8.8.4.4" ] # inherited from folders/222
        }
      }
    }
    

Remplacer une valeur héritée

Si vous modifiez la valeur du paramètre local folders/333 pour le paramètre "Serveurs DNS préférés", la valeur effective est modifiée. Par exemple, vous utilisez la méthode patch pour mettre à jour la valeur du paramètre local de folders/333 avec 192.168.1.1. Pour obtenir des instructions détaillées, consultez la section Modifier une valeur de paramètre local.

Si vous utilisez la méthode describe sur la ressource folders/333 mise à jour, vous constatez que la valeur effective est désormais 192.168.1.1 :

{
  "name": "folders/333/settings/net-preferredDnsServers",
  "effectiveValue": {
    "stringSetValue": {
      "values": [ "192.168.1.1" ] # set on folders/333
    }
  }
}

Rétablir une valeur héritée

Pour rétablir ce comportement de sorte qu'une ressource hérite de la valeur locale d'un parent, utilisez la méthode d'API patch sans valeur locale définie dans la requête ou exécutez la commande unset-value de la gcloud CLI. Pour obtenir des instructions détaillées, consultez la section Modifier une valeur de paramètre local.

Par exemple, si vous annulez la définition de la valeur locale sur folders/333, celle-ci hérite à nouveau de la valeur effective de la ressource parente la plus proche, folders/222. Si vous utilisez la méthode describe sur la ressource folders/333 mise à jour, vous constatez que la valeur effective est désormais 8.8.4.4 :

{
  "name": "folders/333/settings/net-preferredDnsServers",
  "effectiveValue": {
    "stringSetValue": {
      "values": [ "8.8.4.4" ] # inherited from folders/222
    }
  }
}