Utiliser des contraintes

Ce guide explique comment créer une règle d'administration avec une contrainte particulière. Les contraintes utilisées dans les exemples de cette page ne correspondent pas à des contraintes réelles, mais à des exemples généralisés à des fins pédagogiques.

Pour plus d'informations sur les contraintes et les problèmes qu'elles résolvent, consultez la liste de toutes les contraintes du service de règles d'administration.

Avant de commencer

Ajouter un administrateur de règle d'administration

Pour ajouter un utilisateur en tant qu'administrateur des règles d'administration, vous devez disposer du rôle Administrateur de l'organisation. Vous pouvez uniquement attribuer ce rôle au niveau de l'entreprise. Vous devez disposer du rôle Administrateur des règles de l'organisation pour définir ou modifier des règles d'administration.

Console

Pour ajouter un administrateur des règles d'administration :

  1. Connectez-vous à Google Cloud Console en tant que super-administrateur Google Workspace ou Cloud Identity, puis accédez à la page IAM et administration :

    Ouvrir la page "IAM et administration"

  2. Sélectionnez l'organisation que vous souhaitez modifier :

    1. Cliquez sur la liste déroulante des projets en haut de la page.

    2. Dans la boîte de dialogue Sélectionnez une organisation, cliquez sur la liste déroulante de l'organisation, puis sélectionnez l'organisation pour laquelle vous souhaitez ajouter un administrateur des règles d'administration.

    3. Dans la liste qui s'affiche, cliquez sur l'organisation souhaitée pour ouvrir sa page Autorisations IAM.

  3. Cliquez sur Ajouter, puis saisissez l'adresse e-mail des utilisateurs que vous souhaitez définir comme administrateurs des règles d'administration.

  4. Dans la liste déroulante Sélectionner un rôle, sélectionnez Règle d'administration > Administrateur de règle d'administration.

  5. Cliquez sur Enregistrer. Une boîte de dialogue s'affiche pour confirmer l'ajout ou la mise à jour du nouveau rôle du compte principal.

gcloud

Vous pouvez utiliser des fichiers JSON ou YAML avec les commandes gcloud. Cet exemple implique un fichier JSON.

Pour ajouter un administrateur de règle d'administration à votre organisation :

  1. Obtenez la stratégie IAM que vous souhaitez modifier et écrivez-la dans un fichier JSON :
      gcloud organizations get-iam-policy ORGANIZATION_ID \
         --format json > JSON_FILE
      
  2. Le fichier JSON affiche un contenu identique au texte ci-dessous : Notez que le champ de version est en lecture seule, vous n'avez donc pas besoin de fournir cette information.
  3.    {
           "bindings": [
           {
               "members": [
                 "user:email1@gmail.com"
               ],
               "role": "roles/owner"
           },
           {
               "members": [
                 "serviceAccount:our-project-123@appspot.gserviceaccount.com",
                 "serviceAccount:123456789012-compute@developer.gserviceaccount.com"
               ],
               "role": "roles/editor"
           }
           ],
           "etag": "BwUjMhCsNvY=",
           "version": 1
       }
       
    JSON_FILE est le chemin d'accès au fichier JSON contenant votre stratégie IAM. Par exemple, "iam.json".
  4. Utilisez un éditeur de texte pour ajouter un objet au tableau bindings qui définit les membres du groupe et le rôle de ces membres. Par exemple, pour accorder le rôle roles/orgpolicy.policyAdmin à l'utilisateur email2@gmail.com, modifiez l'exemple ci-dessus comme suit:
  5.    {
         "bindings": [
         {
           "members": [
             "user:email1@gmail.com"
           ],
         "role": "roles/owner"
         },
         {
           "members": [
             "serviceAccount:our-project-123@appspot.gserviceaccount.com",
             "serviceAccount:123456789012-compute@developer.gserviceaccount.com"
           ],
           "role": "roles/editor"
         },
         {
           "members": [
             "user:email2@gmail.com"
           ],
           "role": "roles/orgpolicy.policyAdmin"
         }
         ],
         "etag": "BwUjMhCsNvY="
       }
       
  6. Mettez à jour la règle d'administration en exécutant la commande suivante :
  7.    gcloud organizations set-iam-policy ORGANIZATION_ID iam.json
       
  8. La commande génère la règle mise à jour :
       bindings:
         - members:
           - user:email1@gmail.com
             role: roles/owner
         - members:
           - serviceAccount:our-project-123@appspot.gserviceaccount.com
           - serviceAccount:123456789012-compute@developer.gserviceaccount.com
             role: roles/editor
         - members:
           - user:email2@gmail.com
             role: roles/orgpolicy.policyAdmin
         etag: BwUjMhXbSPU=
         version: 1
       

Utiliser des contraintes de listes avec une règle d'administration

Configurer l'application sur la ressource Organisation

Vous pouvez définir une règle d'administration sur votre ressource Organisation utilisant une contrainte de liste pour refuser l'accès à un service particulier. Le processus suivant explique comment définir une règle d'administration à l'aide de l'outil de ligne de commande gcloud. Pour obtenir des instructions sur l'affichage et la définition des règles d'administration à l'aide de Cloud Console, consultez la page Créer et gérer des règles.

API v2

  1. Obtenez la règle actuelle sur la ressource Organisation à l'aide de la commande describe. Cette commande renvoie la stratégie directement appliquée à cette ressource:

    gcloud org-policies describe \
      LIST_CONSTRAINT --organization=ORGANIZATION_ID
    

    Où :

    • ORGANIZATION_ID est un identifiant unique pour la ressource d'organisation. L'ID d'organisation est au format décimal et ne peut pas comporter de zéros non significatifs.

    • LIST_CONSTRAINT est la contrainte de liste pour le service que vous souhaitez appliquer.

    Vous pouvez également appliquer la règle d'administration à un dossier ou à un projet avec les options --folder ou --project, ainsi que l'ID de dossier et l'ID de projet, respectivement.

    La réponse renvoie la règle d'administration actuelle, le cas échéant. Exemple :

    name: projects/841166443394/policies/gcp.resourceLocations
    spec:
      etag: BwW5P5cEOGs=
      inheritFromParent: true
      rules:
      - condition:
          expression: resource.matchTagId("tagKeys/1111", "tagValues/2222")
        values:
          allowedValues:
          - in:us-east1-locations
      - condition:
          expression: resource.matchTag("123/env", "prod")
        values:
          allowedValues:
          - in:us-west1-locations
      - values:
          deniedValues:
          - in:asia-south1-locations
      updateTime: '2021-01-19T12:00:51.095Z'
    

    Si aucune règle n'est définie, une erreur NOT_FOUND est renvoyée:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Définissez la règle sur l'organisation à l'aide de la commande set-policy. Cette opération écrasera toute stratégie actuellement associée à la ressource.

    1. Créez un fichier temporaire /tmp/policy.yaml pour stocker la règle :

       name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
       spec:
           rules:
             - values:
               deniedValues:
                 - VALUE_A
       

    2. Exécutez la commande set-policy :

       gcloud org-policies set-policy /tmp/policy.yaml
       

  3. Affichez la règle actuellement en vigueur en utilisant describe --effective. Cela renvoie la règle d'administration telle qu'elle est évaluée à ce stade dans la hiérarchie des ressources. L'héritage est inclus.

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - values:
            deniedValues:
            - VALUE_A
    

    Étant donné que cette règle d'administration a été définie au niveau de l'organisation, toutes les ressources enfants autorisant l'héritage en hériteront.

API v1

  1. Obtenez la règle actuelle pour la ressource Organisation en utilisant la commande describe :

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --organization ORGANIZATION_ID
    

    Où :

    • ORGANIZATION_ID est un identifiant unique pour la ressource d'organisation. L'ID d'organisation est au format décimal et ne peut pas comporter de zéros non significatifs.

    • LIST_CONSTRAINT est la contrainte de liste pour le service que vous souhaitez appliquer.

    Vous pouvez également appliquer la règle d'administration à un dossier ou à un projet avec les options --folder ou --project, ainsi que l'ID de dossier et l'ID de projet, respectivement.

    Comme aucune règle n'est définie, une règle incomplète est affichée, comme dans l'exemple suivant :

    constraint: "constraints/LIST_CONSTRAINT"
    etag: BwVJi0OOESU=
    
  2. Utilisez la commande deny pour ajouter la valeur refusée pour le service auquel vous souhaitez limiter l'accès.

    gcloud resource-manager org-policies deny \
      LIST_CONSTRAINT VALUE_A \
      --organization ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    constraint: constraints/LIST_CONSTRAINT
    etag: BwVJi0OOESU=
    listPolicy:
      deniedValues:
        - VALUE_A
    updateTime: CURRENT_TIME
    
  3. Affichez la règle actuellement en vigueur à l'aide de la commande describe --effective.

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      deniedValues:
        - VALUE_A
    

    Étant donné que cette règle d'administration a été définie au niveau de l'organisation, toutes les ressources enfants autorisant l'héritage en hériteront.

Configurer l'application sur une sous-arborescence hiérarchique

Les contraintes de listes prennent des valeurs explicitement définies pour déterminer les ressources qui doivent être autorisées ou refusées. Certaines contraintes peuvent également accepter des valeurs qui utilisent le préfixe under:, qui spécifie une sous-arborescence ayant cette ressource pour racine. L'utilisation du préfixe under: sur une valeur autorisée ou refusée force la règle d'administration à agir sur cette ressource et sur tous ses enfants. Pour en savoir plus sur les contraintes autorisant l'utilisation du préfixe under:, consultez la page Contraintes en matière de règles d'administration.

On appelle "chaîne de sous-arborescence hiérarchique" une valeur qui utilise le préfixe under:. Une chaîne de sous-arborescence hiérarchique spécifie le type de ressource à laquelle elle s'applique. Par exemple, l'utilisation d'une chaîne de sous-arborescence projects/PROJECT_ID lors de la définition de la contrainte constraints/compute.storageResourceUseRestrictions autorise ou refuse l'utilisation du stockage Compute Engine pour PROJECT_ID et tous ses enfants.

L'ajout de préfixes aux valeurs de sous-arborescence hiérarchique est une fonctionnalité bêta qui 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.

API v2

  1. Obtenez la règle actuelle pour la ressource Organisation en utilisant la commande describe :

    gcloud org-policies describe \
      LIST_CONSTRAINT --organization=ORGANIZATION_ID
    

    Où :

    • ORGANIZATION_ID est un identifiant unique pour la ressource d'organisation.

    • LIST_CONSTRAINT est la contrainte de liste pour le service que vous souhaitez appliquer.

    Vous pouvez également appliquer la règle d'administration à un dossier ou à un projet avec les options --folder ou --project, ainsi que l'ID de dossier et l'ID de projet, respectivement.

    Si aucune règle n'est définie, une erreur NOT_FOUND est renvoyée:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Définissez la règle sur le projet à l'aide de la commande set-policy. Le préfixe under: définit la contrainte pour refuser la ressource nommée et toutes ses ressources enfants.

    1. Créez un fichier temporaire /tmp/policy.yaml pour stocker la règle :

       name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
       spec:
           rules:
             - values:
                 deniedValues:
                   - under:folders/VALUE_A
       

    2. Exécutez la commande set-policy :

       gcloud org-policies set-policy /tmp/policy.yaml
       

    Où :

    • under: est un préfixe qui signifie que ce qui suit est une chaîne de sous-arborescence.

    • folders/VALUE_A est l'ID du dossier de la ressource racine que vous souhaitez refuser. Cette ressource et tous ses enfants dans la hiérarchie des ressources seront refusés.

    Vous pouvez également appliquer le préfixe under: aux organisations et aux projets, comme dans les exemples suivants :

    • under:organizations/VALUE_X

    • under:projects/VALUE_Y

  3. Affichez la règle actuellement en vigueur à l'aide de la commande describe --effective.

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - values:
            deniedValues:
            - under:folders/VALUE_A
    

    La stratégie évalue maintenant le dossier VALUE_A et toutes ses ressources enfants.

API v1

  1. Obtenez la règle actuelle pour la ressource Organisation en utilisant la commande describe :

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --organization ORGANIZATION_ID
    

    Où :

    • ORGANIZATION_ID est un identifiant unique pour la ressource d'organisation.

    • LIST_CONSTRAINT est la contrainte de liste pour le service que vous souhaitez appliquer.

    Vous pouvez également appliquer la règle d'administration à un dossier ou à un projet avec les options --folder ou --project, ainsi que l'ID de dossier et l'ID de projet, respectivement.

    Comme aucune règle n'est définie, une règle incomplète est affichée, comme dans l'exemple suivant :

    constraint: "constraints/LIST_CONSTRAINT"
    etag: BwVJi0OOESU=
    
  2. Utilisez la commande deny pour ajouter la valeur refusée pour le service auquel vous souhaitez limiter l'accès. Le préfixe under: définit la contrainte de sorte qu'elle refuse la ressource nommée et toutes ses ressources enfants.

    gcloud resource-manager org-policies deny \
      LIST_CONSTRAINT under:folders/VALUE_A \
      --organization ORGANIZATION_ID
    

    Où :

    • under: est un préfixe qui signifie que ce qui suit est une chaîne de sous-arborescence.

    • folders/VALUE_A est l'ID de dossier de la ressource racine que vous souhaitez refuser. Cette ressource et tous ses enfants dans la hiérarchie des ressources seront refusés.

    • VALUE_B et VALUE_C sont des projets qui existent dans la hiérarchie et dont VALUE_A est le parent.

    Le résultat de la commande de refus sera le suivant :

    constraint: constraints/LIST_CONSTRAINT
    etag: BwVJi0OOESU=
    listPolicy:
      deniedValues:
        - under:folders/VALUE_A
    updateTime: CURRENT_TIME
    

    Vous pouvez également appliquer le préfixe under: aux organisations et aux projets, comme dans les exemples suivants :

    • under:organizations/VALUE_X

    • under:projects/VALUE_Y

  3. Affichez la règle actuellement en vigueur à l'aide de la commande describe --effective.

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      deniedValues:
        - under:folders/VALUE_A
    

    La règle permet maintenant de refuser le dossier VALUE_A et toutes ses ressources enfants, ici VALUE_B et VALUE_C.

Fusionner la règle d'organisation sur un projet

Vous pouvez définir une règle d'administration personnalisée sur une ressource, qui fusionnera avec toute règle héritée de sa ressource parente. Cette règle fusionnée sera ensuite évaluée pour créer une nouvelle règle en vigueur basée sur les règles d'héritage.

API v2

  1. Obtenez la règle actuelle pour la ressource en utilisant la commande describe :

    gcloud org-policies describe \
      LIST_CONSTRAINT --project=PROJECT_ID
    

    Où :

    • PROJECT_ID est l'identifiant unique de votre projet.

    • LIST_CONSTRAINT est la contrainte de liste pour le service que vous souhaitez appliquer.

    Si aucune règle n'est définie, une erreur NOT_FOUND est renvoyée:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Affichez la règle actuellement en vigueur à l'aide de la commande describe --effective :

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
       --project=PROJECT_ID
    

    Le résultat de la commande comprend une valeur refusée héritée de la ressource Organisation :

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - values:
            deniedValues:
              - VALUE_A
    
  3. Définissez la règle sur le projet à l'aide de la commande set-policy.

    1. Créez un fichier temporaire /tmp/policy.yaml pour stocker la règle :

       name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
       spec:
           inheritFromParent: true
           rules:
             - values:
                 deniedValues:
                   - VALUE_B
                   - VALUE_C
       

    2. Exécutez la commande set-policy :

       gcloud org-policies set-policy /tmp/policy.yaml
       

  4. Utilisez à nouveau la commande describe --effective pour afficher la règle mise à jour :

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Le résultat de la commande inclura le résultat effectif de la fusion de la règle à partir de la ressource et du parent :

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - values:
            deniedValues:
              - VALUE_A
              - VALUE_B
              - VALUE_C
    

API v1

  1. Obtenez la règle actuelle pour la ressource en utilisant la commande describe :

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --project PROJECT_ID
    

    Où :

    • PROJECT_ID est l'identifiant unique de votre projet.

    • LIST_CONSTRAINT est la contrainte de liste pour le service que vous souhaitez appliquer.

    Comme aucune règle n'est définie, une règle incomplète est affichée, comme dans l'exemple suivant :

    constraint: "constraints/LIST_CONSTRAINT"
    etag: BwVJi0OOESU=
    
  2. Affichez la règle actuellement en vigueur à l'aide de la commande describe --effective :

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
       --project PROJECT_ID
    

    Le résultat de la commande comprend une valeur refusée héritée de la ressource Organisation :

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      deniedValues:
        - VALUE_A
    
  3. Définissez la règle sur le projet à l'aide de la commande set-policy.

    1. Créez un fichier temporaire /tmp/policy.yaml pour stocker la règle :

       constraint: constraints/LIST_CONSTRAINT
       listPolicy:
         deniedValues:
           - VALUE_B
           - VALUE_C
         inheritFromParent: true
       

    2. Exécutez la commande set-policy :

       gcloud resource-manager org-policies set-policy 
      --project PROJECT_ID /tmp/policy.yaml

    3. Le résultat de la commande sera le suivant :

       constraint: constraints/LIST_CONSTRAINT
       etag: BwVLO2timxY=
       listPolicy:
         deniedValues:
           - VALUE_B
           - VALUE_C
         inheritFromParent: true
       

  4. Utilisez à nouveau la commande describe --effective pour afficher la règle mise à jour :

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --project PROJECT_ID
    

    Le résultat de la commande inclura le résultat effectif de la fusion de la règle à partir de la ressource et du parent :

    constraint: constraints/LIST_CONSTRAINT
      listPolicy:
        deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    

Restaurer le comportement par défaut de la contrainte

Vous pouvez utiliser la commande reset pour réinitialiser la stratégie de sorte qu'elle utilise le comportement par défaut de la contrainte. Pour obtenir la liste de toutes les contraintes disponibles et de leurs valeurs par défaut, consultez la page Contraintes en matière de règles d'administration.L'exemple suivant suppose que le comportement par défaut des contraintes consiste à autoriser toutes les valeurs.

API v2

  1. Obtenez la règle en vigueur sur le projet pour afficher la règle fusionnée actuelle :

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    PROJECT_ID est l'identifiant unique de votre projet. Le résultat de la commande sera le suivant :

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - values:
            deniedValues:
              - VALUE_A
              - VALUE_B
              - VALUE_C
    
  2. Réinitialisez la règle d'administration à l'aide de la commande reset.

    gcloud org-policies reset LIST_CONSTRAINT \
        --project=PROJECT_ID
    
  3. Obtenez la règle en vigueur pour valider le comportement par défaut :

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Le résultat de la commande autorise toutes les valeurs :

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - allowAll: true
    

API v1

  1. Obtenez la règle en vigueur sur le projet pour afficher la règle fusionnée actuelle :

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --project PROJECT_ID
    

    PROJECT_ID est l'identifiant unique de votre projet. Le résultat de la commande sera le suivant :

    constraint: constraints/LIST_CONSTRAINT
      listPolicy:
        deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    
  2. Définissez la règle sur le projet à l'aide de la commande set-policy.

    1. Créez un fichier temporaire /tmp/restore-policy.yaml pour stocker la règle :

       restoreDefault: {}
       constraint: constraints/LIST_CONSTRAINT
       

    2. Exécutez la commande set-policy :

       gcloud resource-manager org-policies set-policy 
      --project PROJECT_ID /tmp/restore-policy.yaml

    3. Le résultat de la commande sera le suivant :

       constraint: constraints/LIST_CONSTRAINT
       etag: BwVJi9D3VLY=
       restoreDefault: {}
       

  3. Obtenez la règle en vigueur pour valider le comportement par défaut :

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --project PROJECT_ID
    

    Le résultat de la commande autorise toutes les valeurs :

    Constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      allValues: ALLOW
    

Supprimer une règle d'administration

Vous pouvez supprimer une règle d'administration d'une ressource. Une ressource sans ensemble de règles d'administration héritera de toutes les règles de sa ressource parente. Si vous supprimez la règle d'administration sur la ressource d'organisation, la règle en vigueur sera le comportement par défaut de la contrainte.

Les étapes suivantes décrivent comment supprimer une règle d'administration sur une organisation.

API v2

  1. Supprimez la règle sur la ressource Organisation à l'aide de la commande delete :

    gcloud org-policies delete \
      LIST_CONSTRAINT --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID est l'identifiant unique de la ressource d'organisation. Le résultat de la commande sera le suivant :

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT].
    {}
    
  2. Obtenez la règle en vigueur sur l'organisation pour valider qu'elle n'est pas appliquée :

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - allowAll: true
    

Les étapes suivantes décrivent comment supprimer une règle d'administration sur un projet :

  1. Supprimez la règle sur un projet à l'aide de la commande delete :

    gcloud org-policies delete \
      LIST_CONSTRAINT --project=PROJECT_ID
    

    PROJECT_ID est l'identifiant unique de votre projet. Le résultat de la commande sera le suivant :

    Deleted policy
    [projects/PROJECT_ID/policies/LIST_CONSTRAINT].
    {}
    
  2. Obtenez la règle en vigueur sur le projet pour valider qu'elle n'est pas appliquée :

    gcloud org-policies describe \
      --effective \
      LIST_CONSTRAINT --project=PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
        - allowAll: true
    

API v1

  1. Supprimez la règle sur la ressource Organisation à l'aide de la commande delete :

    gcloud resource-manager org-policies delete \
      LIST_CONSTRAINT --organization ORGANIZATION_ID
    

    ORGANIZATION_ID est l'identifiant unique de la ressource d'organisation. Le résultat de la commande sera le suivant :

    Deleted [<Empty>].
    
  2. Obtenez la règle en vigueur sur l'organisation pour valider qu'elle n'est pas appliquée :

    gcloud resource-manager org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      allValues: ALLOW
    

Les étapes suivantes décrivent comment supprimer une règle d'administration sur un projet :

  1. Supprimez la règle sur un projet à l'aide de la commande delete :

    gcloud resource-manager org-policies delete \
      LIST_CONSTRAINT --project PROJECT_ID
    

    PROJECT_ID est l'identifiant unique de votre projet. Le résultat de la commande sera le suivant :

    Deleted [<Empty>].
    
  2. Obtenez la règle en vigueur sur le projet pour valider qu'elle n'est pas appliquée :

    gcloud resource-manager org-policies describe \
      --effective \
      LIST_CONSTRAINT --project PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    constraint: constraints/LIST_CONSTRAINT
    listPolicy:
      allValues: ALLOW
    

Utiliser des contraintes booléennes dans la règle d'administration

Configurer l'application sur la ressource Organisation

Vous pouvez définir une règle d'administration sur votre ressource d'organisation pour appliquer une contrainte booléenne. Le processus suivant explique comment définir une règle d'administration à l'aide de l'outil de ligne de commande gcloud. Pour obtenir des instructions sur l'affichage et la définition des règles d'administration à l'aide de Cloud Console, consultez la page Créer et gérer des règles.

API v2

  1. Obtenez la règle actuelle pour la ressource Organisation à l'aide de la commande describe :

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID est l'identifiant unique de la ressource d'organisation. Vous pouvez également appliquer la règle d'administration à un dossier ou à un projet avec les options --folder ou --project, ainsi que l'ID de dossier et l'ID de projet, respectivement.

    Si aucune règle n'est définie, une erreur NOT_FOUND est renvoyée:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Définissez la règle sur le projet à l'aide de la commande set-policy.

    1. Créez un fichier temporaire /tmp/policy.yaml pour stocker la règle :

       name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT
       spec:
         rules:
           - enforce: true
       

    2. Exécutez la commande set-policy :

       gcloud org-policies set-policy /tmp/policy.yaml
       

  3. Affichez la règle actuellement en vigueur à l'aide de la commande describe --effective :

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
        - enforce: true
    

API v1

  1. Obtenez la règle actuelle pour la ressource Organisation à l'aide de la commande describe :

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --organization ORGANIZATION_ID
    

    ORGANIZATION_ID est l'identifiant unique de la ressource d'organisation. Vous pouvez également appliquer la règle d'administration à un dossier ou à un projet avec les options --folder ou --project, ainsi qu'avec l'ID de dossier et l'ID de projet, respectivement.

    Comme aucune règle n'est définie, une règle incomplète est affichée, comme dans l'exemple suivant :

    booleanPolicy: {}
    constraint: "constraints/BOOLEAN_CONSTRAINT"
    
  2. Définissez la règle à appliquer à l'organisation à l'aide de la commande enable-enforce :

    gcloud resource-manager org-policies enable-enforce \
      BOOLEAN_CONSTRAINT --organization ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    booleanPolicy:
      enforced: true
    constraint: constraints/BOOLEAN_CONSTRAINT
    etag: BwVJitxdiwY=
    
  3. Affichez la règle actuellement en vigueur à l'aide de la commande describe --effective :

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    booleanPolicy:
      enforced: true
    constraint: constraints/BOOLEAN_CONSTRAINT
    

Remplacer la règle d'administration pour un projet

Pour remplacer la règle d'administration d'un projet, définissez une règle qui désactive l'application de la contrainte booléenne à toutes les ressources de la hiérarchie située en dessous du projet.

API v2

  1. Obtenez la règle en vigueur sur la ressource pour montrer qu'elle est vide.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --project=PROJECT_ID
    

    PROJECT_ID est l'identifiant unique de votre projet. Le résultat de la commande sera le suivant :

    Si aucune règle n'est définie, une erreur NOT_FOUND est renvoyée:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Obtenez la règle en vigueur sur le projet, qui confirme que la contrainte est appliquée à ce projet.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    name: projects/PROJECT_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
        - enforce: true
    
  3. Définissez la règle sur le projet à l'aide de la commande set-policy.

    1. Créez un fichier temporaire /tmp/policy.yaml pour stocker la règle :

       name: projects/PROJECT_ID/policies/BOOLEAN_CONSTRAINT
       spec:
         rules:
           - enforce: false
       

    2. Exécutez la commande set-policy :

       gcloud org-policies set-policy /tmp/policy.yaml
       

  4. Obtenez la règle en vigueur pour montrer qu'elle n'est plus appliquée au projet.

    gcloud org-policies describe \
      --effective \
      BOOLEAN_CONSTRAINT --project=PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
        - enforce: false
    

API v1

  1. Obtenez la règle en vigueur sur la ressource pour montrer qu'elle est vide.

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --project PROJECT_ID
    

    PROJECT_ID est l'identifiant unique de votre projet. Le résultat de la commande sera le suivant :

    booleanPolicy: {}
    constraint: "constraints/BOOLEAN_CONSTRAINT"
    
  2. Obtenez la règle en vigueur sur le projet, qui confirme que la contrainte est appliquée à ce projet.

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    booleanPolicy:
      enforced: true
    constraint: constraints/BOOLEAN_CONSTRAINT
    
  3. Définissez la règle sur le projet de manière à ne pas appliquer la contrainte, à l'aide de la commande disable-enforce :

    gcloud resource-manager org-policies disable-enforce \
      BOOLEAN_CONSTRAINT --project PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    booleanPolicy: {}
    constraint: constraints/BOOLEAN_CONSTRAINT
    etag: BwVJivdnXvM=
    
  4. Obtenez la règle en vigueur pour montrer qu'elle n'est plus appliquée au projet.

    gcloud resource-manager org-policies describe \
      --effective \
      BOOLEAN_CONSTRAINT --project PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    booleanPolicy: {}
    constraint: constraints/BOOLEAN_CONSTRAINT
    

Supprimer une règle d'administration

Vous pouvez supprimer une règle d'administration d'une ressource. Une ressource sans ensemble de règles d'administration héritera de toutes les règles de sa ressource parente. Si vous supprimez la règle d'administration sur la ressource d'organisation, la règle en vigueur sera le comportement par défaut des contraintes.

Les étapes suivantes décrivent comment supprimer une règle d'administration sur une organisation et un projet.

API v2

  1. Supprimez la règle de la ressource Organisation à l'aide de la commande delete :

    gcloud org-policies delete \
      BOOLEAN_CONSTRAINT --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID est un identifiant unique de la ressource d'organisation. Le résultat de la commande sera le suivant :

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT].
    {}
    
  2. Obtenez la règle en vigueur sur l'organisation pour valider qu'elle n'est pas appliquée :

    gcloud org-policies describe \
      --effective \
      BOOLEAN_CONSTRAINT --organization=ORGANIZATION_ID
    

    Si aucune règle n'est définie, une erreur NOT_FOUND est renvoyée:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  3. Supprimez la règle d'administration du projet à l'aide de la commande delete :

    gcloud org-policies delete \
      BOOLEAN_CONSTRAINT --project=PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT].
    {}
    
  4. Obtenez la règle en vigueur sur le projet pour valider qu'elle n'est pas appliquée :

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    PROJECT_ID est l'identifiant unique de votre projet. Le résultat de la commande sera le suivant :

    Si aucune règle n'est définie, une erreur NOT_FOUND est renvoyée:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

API v1

  1. Supprimez la règle de la ressource Organisation à l'aide de la commande delete :

    gcloud resource-manager org-policies delete \
      BOOLEAN_CONSTRAINT --organization ORGANIZATION_ID
    

    ORGANIZATION_ID est un identifiant unique de la ressource d'organisation. Le résultat de la commande sera le suivant :

    Deleted [<Empty>].
    
  2. Obtenez la règle en vigueur sur l'organisation pour valider qu'elle n'est pas appliquée :

    gcloud resource-manager org-policies describe \
      --effective \
      BOOLEAN_CONSTRAINT --organization ORGANIZATION_ID
    

    Le résultat de la commande sera le suivant :

    booleanPolicy: {}
    constraint: constraints/BOOLEAN_CONSTRAINT
    
  3. Supprimez la règle d'administration du projet à l'aide de la commande delete :

    gcloud resource-manager org-policies delete \
      BOOLEAN_CONSTRAINT --project PROJECT_ID
    

    Le résultat de la commande sera le suivant :

    Deleted [<Empty>].
    
  4. Obtenez la règle en vigueur sur le projet pour valider qu'elle n'est pas appliquée :

    gcloud resource-manager org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project PROJECT_ID
    

    PROJECT_ID est l'identifiant unique de votre projet. Le résultat de la commande sera le suivant :

    booleanPolicy: {}
    constraint: constraints/BOOLEAN_CONSTRAINT