Comprendre les contraintes

Une contrainte est un type de restriction appliqué à un service GCP ou à une liste de services GCP. On peut la considérer comme un modèle définissant les comportements à contrôler. Ce modèle est ensuite appliqué à un nœud de hiérarchie des ressources en tant que règle d'administration, qui met en œuvre les règles définies dans la contrainte. Le service GCP mappé sur cette contrainte et associé à ce nœud de hiérarchie de ressources applique alors les restrictions configurées dans la règle d'administration.

Une contrainte est assortie d'un type, qui détermine les valeurs de la règle d'administration pouvant être saisies et utilisées afin de vérifier son application. Le service GCP responsable de l'application de la contrainte évalue le type et les valeurs qui lui sont associés pour déterminer la restriction.

La règle d'administration définie pour le nœud de hiérarchie de ressources actuel prend effet lors de l'évaluation de la hiérarchie. Si inheritFromParent est défini sur TRUE, la fusion de l'héritage prend effet.

Attributs de contrainte

Chaque contrainte est définie par les attributs suivants :

  • Nom : nom unique de la contrainte
    • Par exemple, constraints/compute.disableSerialPortAccess
  • Nom d'affichage : nom convivial de la contrainte
  • Description : détails sur les mesures d'application mises en place et par quels services GCP
  • Comportement par défaut : comportement en l'absence de configuration définie par l'utilisateur dans la règle.


Types de contraintes

Contrainte de liste

Une contrainte de liste autorise ou refuse une liste de valeurs définie dans la règle d'administration. Cette liste de valeurs est exprimée sous forme de chaîne de sous-arborescence hiérarchique. La chaîne de sous-arborescence spécifie le type de ressource auquel elle s'applique. Par exemple, une liste d'ID de projet sous la forme projects/PROJECT_ID pour constraints/compute.trustedImageProjects.

Le tableau suivant décrit quelques-unes des configurations courantes de contraintes pour l'application de la règle :

Règle Configuration de la contrainte
Autoriser un ensemble spécifique de valeurs Définissez le champ des valeurs autorisées (ListPolicy.allowed_values) sur une liste de chaînes.
Définissez ListPolicy.all_values sur ALL_VALUES_UNSPECIFIED.
Refuser un ensemble spécifique de valeurs Définissez le champ des valeurs refusées (ListPolicy.denied_values) sur une liste de chaînes.
Définissez ListPolicy.all_values sur ALL_VALUES_UNSPECIFIED.
Refuser une valeur et toutes ses valeurs enfants Définissez le champ des valeurs refusées (ListPolicy.denied_values) sur une chaîne de sous-arborescence, telle que organizations/1234.
Définissez ListPolicy.all_values sur ALL_VALUES_UNSPECIFIED.
Autoriser toutes les valeurs valides Définissez ListPolicy.all_values sur ALLOW.
Ne définissez pas ListPolicy.allowed_values ni ListPolicy.denied_values.
Refuser toutes les valeurs Définissez ListPolicy.all_values sur DENY.
Ne définissez pas ListPolicy.allowed_values ni ListPolicy.denied_values.

Les valeurs peuvent également recevoir un préfixe sous la forme "préfixe:valeur", ce qui confère à la valeur un sens supplémentaire, par exemple :

  • is: - applique une comparaison par rapport à la valeur exacte. Ce comportement est le même que celui-ci applicable en l'absence de préfixe ; il est requis lorsque la valeur inclut les deux points.
  • under: - applique une comparaison à une valeur et à toutes ses valeurs enfants. Si une ressource est autorisée ou refusée via ce préfixe, ses ressources enfants le seront également. La valeur fournie doit être une chaîne de sous-arborescence hiérarchique, comme dans les exemples suivants :
    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
    • projects/PROJECT_ID

Certaines contraintes ne sont pas compatibles avec l'utilisation de chaînes de sous-arborescences hiérarchiques. Pour en savoir plus sur les contraintes compatibles avec l'utilisation de valeurs de sous-arborescence hiérarchique préfixées, consultez la page Contraintes de règle d'administration.

L'ajout de préfixes aux valeurs de sous-arborescence hiérarchique est une fonctionnalité bêta. Cette dernière peut faire l'objet de modifications susceptibles d'affecter la rétrocompatibilité avec les versions antérieures. De plus, elle n'est sujette à aucun contrat de niveau de service ni aucun règlement d'obsolescence. Pour plus d'informations sur l'utilisation de valeurs préfixées dans les contraintes, consultez la section Configurer l'application de sous-arborescence hiérarchique.

Si aucune liste de valeurs n'est spécifiée, la valeur par défaut qui prend effet, en fonction de la contrainte spécifique, peut être :

  • ALLOW - Toute valeur valide est autorisée.
  • DENY - Aucune valeur n'est autorisée.

Contrainte booléenne

Une contrainte booléenne peut être en application ou non. La règle est appliquée en définissant Policy.enforced sur True.

Par exemple, constraints/compute.disableSerialPortAccess a deux états possibles :

  • TRUE - La contrainte disableSerialPortAccess est appliquée et l'accès au port série n'est pas autorisé.
  • FALSE - La contrainte disableSerialPortAccess n'est ni appliquée ni vérifiée, l'accès au port série est donc autorisé.

Si aucune règle n'est définie ou si la règle est définie sur RestoreDefault, l'accès au port série est autorisé, car le comportement par défaut de la contrainte est d'autoriser.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation relative à Resource Manager