Gérer la création de réservations partagées

Par défaut, les projets ne peuvent pas créer ni modifier de réservations partagées. Ce document explique comment autoriser ou interdire à des projets de votre organisation Google Cloud de créer et de modifier des réservations partagées. Les réservations partagées vous aident à maximiser l'utilisation de la capacité réservée dans les projets et à gérer une seule réservation au lieu de plusieurs.

Pour en savoir plus sur les bonnes pratiques concernant la création et l'utilisation de réservations partagées, consultez Bonnes pratiques pour les réservations partagées.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet 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 en sélectionnant l'une des options suivantes :

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    2. Set a default region and zone.

Rôles requis

Pour obtenir les autorisations nécessaires pour autoriser ou interdire aux projets de créer des réservations partagées, 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.

Ce rôle prédéfini contient les autorisations requises pour autoriser ou interdire aux projets de créer des réservations partagées. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour autoriser ou interdire la création de réservations partagées pour des projets :

  • Pour modifier les règles d'administration : orgpolicy.policy.set sur l'organisation
  • Pour afficher les règles d'administration : orgpolicy.policy.get sur l'organisation

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

Autoriser ou restreindre la création de réservations partagées pour des projets

Pour autoriser ou interdire à un projet de créer des réservations partagées, modifiez la liste d'autorisation dans la contrainte de règle d'administration des projets propriétaires de réservations partagées (compute.sharedReservationsOwnerProjects).

Les sections suivantes expliquent comment afficher ou modifier la contrainte de règle des réservations partagées dans votre projet ou votre organisation.

Afficher la contrainte de règle d'administration des réservations partagées

Pour vérifier si la contrainte de projets propriétaires de réservations partagées (compute.sharedReservationsOwnerProjects) est activée pour votre projet ou votre organisation, sélectionnez l'une des options suivantes :

Console

  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, sélectionnez le projet ou l'organisation pour lesquels vous souhaitez afficher les règles d'administration#39;administration.

  3. Dans le champ Filtre, saisissez constraints/compute.sharedReservationsOwnerProjects.

  4. Dans la colonne Nom, cliquez sur Projets propriétaires des réservations partagées. La page Détails de la règle s'affiche.

  5. Dans la section Règle en vigueur, vérifiez si votre projet ou votre organisation sont autorisés à créer et modifier des réservations partagées.

gcloud

Pour afficher les projets que la contrainte compute.sharedReservationsOwnerProjects autorise à créer et modifier des réservations partagées :

  1. Pour télécharger la règle de votre organisation sous la forme d'un fichier nommé policy.yaml, utilisez la commande gcloud resource-manager org-policies describe :

    gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
        --organization=ORGANIZATION_ID > policy.yaml
    

    Remplacez ORGANIZATION_ID par l'ID de votre organisation.

  2. Ouvrez le fichier policy.yaml dans un éditeur de texte de votre choix.

  3. Affichez la contrainte compute.sharedReservationsOwnerProjects. Les projets pouvant créer et modifier des réservations partagées sont listés dans le champ allowedValues, comme indiqué dans l'exemple suivant :

    ...
    constraint: constraints/compute.sharedReservationsOwnerProjects
    listPolicy:
      allowedValues:
      - projects/EXAMPLE_PROJECT_NUMBER1
      - projects/EXAMPLE_PROJECT_NUMBER2
      - projects/EXAMPLE_PROJECT_NUMBER3
      ...
    ...
    
  4. Facultatif : Pour supprimer le fichier policy.yaml, procédez comme suit :

    • Si vous utilisez un terminal Linux ou macOS, exécutez la commande suivante :

      rm policy.yaml
      
    • Si vous utilisez un terminal Windows, exécutez la commande suivante :

      del policy.yaml
      

Modifier la contrainte de règle d'administration des réservations partagées

Pour modifier les projets de votre organisation qui peuvent créer et modifier des réservations partagées, sélectionnez l'une des options suivantes :

Console

  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 projet, sélectionnez l'organisation pour laquelle vous souhaitez modifier les règles d'administration.

  3. Dans le champ Filtre, saisissez constraints/compute.sharedReservationsOwnerProjects.

  4. Dans la colonne Nom, cliquez sur Projets propriétaires des réservations partagées. La page Détails de la règle s'affiche.

  5. Cliquez sur Gérer la règle. La page Détails de la règle s'affiche.

  6. Sélectionnez Remplacer la règle parente. Ensuite, dans la section Application des règles, sélectionnez la façon dont vous souhaitez appliquer la règle :

    • Fusionner avec le parent : cette option combine la règle au niveau du projet avec la règle au niveau de l'organisation. Les projets autorisés à l'un ou l'autre niveau peuvent créer des réservations partagées.

    • Remplacer : cette option remplace toutes les règles héritées des niveaux supérieurs. Seuls les projets explicitement autorisés à ce niveau peuvent créer des réservations partagées.

  7. Cliquez sur Ajouter une règle.

  8. Dans la liste Valeurs de règles, sélectionnez Personnalisé.

  9. Dans la liste Type de règles, sélectionnez l'une des options suivantes :

    • Pour autoriser un ou plusieurs projets à créer ou modifier des réservations partagées, sélectionnez Autoriser.

    • Pour empêcher un ou plusieurs projets de créer ou de modifier des réservations partagées, sélectionnez Refuser.

  10. Dans le champ Valeur personnalisée, saisissez le numéro du projet auquel vous souhaitez appliquer cette règle. Pour chaque projet supplémentaire auquel vous souhaitez appliquer la règle, cliquez sur Ajouter une valeur, puis répétez cette étape.

  11. Pour appliquer ces modifications, cliquez sur Définir la règle. La page Règles d'administration s'affiche.

gcloud

Pour modifier les projets que la contrainte compute.sharedReservationsOwnerProjects autorise à créer et modifier des réservations partagées, utilisez l'une des méthodes suivantes :

  • Pour autoriser un seul projet à créer et modifier des réservations partagées, utilisez la commande gcloud resource-manager org-policies allow. Vous pouvez répéter cette commande pour chaque projet auquel vous souhaitez accorder cette autorisation.

    gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \
        --organization=ORGANIZATION_ID
    

    Remplacez les éléments suivants :

  • Pour accorder ou révoquer les autorisations de création et de modification des réservations partagées pour plusieurs projets, remplacez la contrainte de règle d'administration. Pour cela, procédez comme suit :

    1. Pour télécharger la règle de votre organisation sous la forme d'un fichier nommé policy.yaml, utilisez la commande gcloud resource-manager org-policies describe :

      gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
          --organization=ORGANIZATION_ID > policy.yaml
      
    2. Ouvrez le fichier policy.yaml dans un éditeur de texte de votre choix.

    3. Modifiez le champ allowedValues pour lister tous les projets pouvant créer et modifier des réservations partagées.

      • Pour chaque projet auquel vous souhaitez accorder l'autorisation, ajoutez le numéro du projet sur une nouvelle ligne dans le champ allowedValues.

      • Pour chaque projet pour lequel vous souhaitez révoquer l'autorisation de créer et de modifier des réservations partagées, supprimez le numéro de projet du champ allowedValues.

      Le fichier policy.yaml ressemble à l'exemple suivant :

      ...
      constraint: constraints/compute.sharedReservationsOwnerProjects
      listPolicy:
        allowedValues:
        - projects/EXAMPLE_PROJECT_NUMBER1
        - projects/EXAMPLE_PROJECT_NUMBER2
        - projects/EXAMPLE_PROJECT_NUMBER3
        ...
      ...
      
    4. Enregistrez le fichier policy.yaml et fermez l'éditeur.

    5. Pour mettre à jour la règle de votre organisation, utilisez la commande gcloud resource-manager org-policies set-policy :

      gcloud resource-manager org-policies set-policy \
          --organization=ORGANIZATION_ID policy.yaml
      
    6. Facultatif : Pour supprimer le fichier policy.yaml, procédez comme suit :

      • Si vous utilisez un terminal Linux ou macOS, exécutez la commande suivante :

        rm policy.yaml
        
      • Si vous utilisez un terminal Windows, exécutez la commande suivante :

        del policy.yaml
        

Un délai maximal de 15 minutes peut être nécessaire pour que les modifications soient prises en compte.

Étapes suivantes