Définir le champ d'application des règles d'administration avec des tags

Les tags permettent d'autoriser ou de refuser des règles de manière conditionnelle selon qu'une ressource possède un tag spécifique ou non. Vous pouvez utiliser des tags et l'application conditionnelle des règles d'administration pour fournir un contrôle centralisé des ressources de votre hiérarchie.

Avant de commencer

Pour en savoir plus sur les tags et leur fonctionnement, consultez la page Présentation des tags.

Pour obtenir des instructions détaillées sur l'utilisation des tags, consultez la page Créer et gérer des tags.

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer des règles d'administration, demandez à votre administrateur de vous accorder le rôle IAM Administrateur des règles d'administration (roles/orgpolicy.policyAdmin) dans l'organisation. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Vous pouvez déléguer l'administration des règles d'administration d'administration en ajoutant des conditions IAM à la liaison de rôle "Administrateur des règles d'administration". Pour contrôler les ressources sur lesquelles un compte principal peut gérer les règles d'administration, vous pouvez rendre l'association de rôle conditionnelle à un tag spécifique. Pour en savoir plus, consultez Créer des règles d'administration.

Compatibilité des contraintes avec les balises

Vous pouvez appliquer des règles d'administration de manière conditionnelle avec n'importe quel type de contrainte en utilisant des tags associés aux ressources d'organisation, de dossier et de projet. Les tags associés directement aux ressources de service compatibles, telles que les instances Compute Engine, peuvent être utilisés dans les conditions des contraintes gérées ou personnalisées. Pour en savoir plus, consultez Services compatibles avec les tags.

Les anciennes contraintes gérées suivantes acceptent les conditions impliquant des tags associés aux ressources de service :

  • constraints/sql.restrictNoncompliantDiagnosticDataAccess
  • constraints/gcp.restrictCmekCryptoKeyProjects
  • constraints/sql.restrictAuthorizedNetworks
  • constraints/gcp.resourceLocations
  • constraints/gcp.restrictNonCmekServices
  • constraints/sql.restrictNoncompliantResourceCreation
  • constraints/sql.restrictPublicIp

Les anciennes contraintes gérées qui ne figurent pas dans cette liste ne sont pas compatibles avec les conditions impliquant des tags associés aux ressources de service.

Définir une règle d'administration avec des tags

Pour utiliser des tags afin de déterminer où une règle d'administration doit prendre effet, vous devez spécifier une condition dans le fichier YAML de règle d'administration. Vous pouvez définir la condition pour qu'elle corresponde à une paire clé/valeur de tag spécifique, ce qui nécessite la définition d'une valeur de tag spécifique pour que la règle d'administration soit appliquée.

Vous pouvez également définir la condition pour qu'elle corresponde à une clé de tag. Cela vous permet d'activer ou de désactiver l'application de la contrainte à toutes les ressources associées à cette clé de tag, quelle que soit la valeur de tag associée.

La plupart des règles d'administration sont évaluées et appliquées lorsqu'une ressource est créée ou mise à jour. Les tags obligatoires peuvent être utilisés pour régir les ressources à mesure qu'elles sont créées.

Exemple de règle de liste

L'exemple suivant montre comment définir une règle d'administration qui applique l'ancienne contrainte gérée gcp.resourceLocations. Cette règle d'administration utilise des valeurs conditionnelles et inconditionnelles définies dans le même fichier de règle.

Console

Pour définir la règle d'administration, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Règles d'administration.

    Accéder à la page Règles d'administration

  2. Dans le sélecteur de projets, choisissez le projet pour lequel vous souhaitez définir la règle d'administration.

  3. Sur la page Règles d'administration, sélectionnez une contrainte dans la liste. La page Détails de la règle associée à cette contrainte s'affiche.

  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 stratégie, sélectionnez Ignorer la règle parente.

  6. Sous Application des règles, sélectionnez une option d'application :

    • Pour fusionner et évaluer vos règles d'administration ensemble, sélectionnez Fusionner avec le parent. Pour en savoir plus sur l'héritage et la hiérarchie des ressources, consultez Évaluation hiérarchique.

    • Pour remplacer les règles héritées d'une ressource parente, sélectionnez Remplacer.

  7. Cliquez sur Add rule (Ajouter une règle).

  8. Sous Valeurs de règlement, indiquez si cette règle d'administration doit autoriser toutes les valeurs, refuser toutes les valeurs ou spécifier un ensemble personnalisé de valeurs.

  9. Pour rendre la règle d'administration conditionnelle sur un tag, cliquez sur Ajouter une condition.

    1. Dans le champ Titre, saisissez un nom pour la condition.

    2. Dans le champ Description, saisissez une description pour votre condition. La description fournit du contexte sur les tags requis ainsi que sur leur impact sur les ressources.

    3. Vous pouvez utiliser le Créateur de conditions pour créer une condition nécessitant un tag particulier pour que la contrainte soit prise en compte.

      1. Dans la zone Type de condition, sélectionnez Tag.

      2. Sélectionnez l'opérateur correspondant à votre condition.

        • Pour mettre en correspondance un tag entier, utilisez l'opérateur has value avec le nom d'espace de noms du tag, ou l'opérateur has value ID avec les ID de clé et de valeur du tag.

        • Pour ne mettre en correspondance que la clé de tag, utilisez l'opérateur has key avec le nom d'espace de noms de la clé de tag, ou l'opérateur has key ID avec l'ID de la clé de tag.

      3. Vous pouvez créer plusieurs conditions en cliquant sur Ajouter. Si vous ajoutez une autre condition, vous pouvez définir la logique conditionnelle pour qu'elle exige que toutes les conditions soient satisfaites en activant Et. Vous pouvez définir la logique conditionnelle pour exiger qu'au moins une des conditions soit satisfaite en activant Or.

      4. Vous pouvez supprimer une expression en cliquant sur le grand X à droite des champs de condition.

      5. Lorsque vous avez terminé de modifier vos conditions, cliquez sur Enregistrer.

    4. L'éditeur de conditions peut être utilisé pour créer une expression conditionnelle par programmation. Il affiche également un rendu automatisé de votre ensemble de conditions actuel.

      L'expression conditionnelle doit inclure entre 1 et 10 sous-expressions, jointes par les opérateurs || ou &&. Chaque sous-expression doit être l'une des fonctions suivantes :

      • "resource.matchTag('KEY_NAME', 'VALUE_SHORT_NAME')"

        Remplacez les éléments suivants :

        • KEY_NAME par le nom avec espace de noms de la clé de tag. Exemple :123456789012/env

        • VALUE_SHORT_NAME par le nom abrégé de la valeur du tag. Exemple :prod

        Par exemple : resource.matchTag('123456789012/environment, 'prod')

      • "resource.matchTagId('KEY_ID', 'VALUE_ID')"