Contrôle des accès aux API Cloud Billing

Google Cloud propose Identity and Access Management (IAM), qui vous permet d'accorder l'accès à des ressources Google Cloud spécifiques, mais pas à d'autres. IAM vous permet d'adopter le principe de sécurité du moindre privilège afin de n'accorder que l'accès nécessaire à vos ressources.

Grâce à IAM, vous pouvez contrôler qui (utilisateurs) a accès (rôles) à quelles ressources en définissant des stratégies IAM. Les stratégies d'autorisation permettent d'attribuer un ou plusieurs rôles spécifiques à un utilisateur afin de lui accorder les autorisations associées à ces rôles.

Cette page décrit les rôles Cloud IAM disponibles pour les API Cloud Billing. Par exemple, vous pouvez attribuer des rôles tels que Gestionnaire des coûts du compte de facturation ou Lecteur de compte de facturation sur un compte de facturation Cloud. Pour une description détaillée d'IAM et de ses fonctionnalités, consultez la documentation IAM. En particulier, consultez les pages Gérer l'accès aux projets, aux dossiers et aux organisations et Gérer l'accès aux autres ressources.

Autorisations et rôles

Pour qu'un utilisateur puisse consulter les informations d'un compte de facturation Cloud dans la console Google Cloud ou pour qu'une méthode de l'API Cloud Billing renvoie les informations d'un compte de facturation Cloud, l'utilisateur ou l'appelant doit disposer des autorisations nécessaires.

Autorisations requises pour l'API Cloud Billing Catalog

Aucune autorisation n'est requise pour utiliser l'API Cloud Billing Catalog (liste de services et de SKU). Toutes les données renvoyées par cette API sont publiques.

Autorisations requises pour l'API Cloud Billing Budget

Le tableau suivant présente les autorisations nécessaires pour appeler chaque méthode de l'API Cloud Billing Budget. Les rôles IAM Billing standards qui octroient automatiquement ces autorisations sont aussi inclus.

Méthode API Autorisation requise Rôle IAM qui accorde des autorisations
GetBudget Pour obtenir les détails d'un budget, l'appelant doit disposer de l'autorisation billing.budgets.get sur le compte de facturation Cloud du budget.

Pour les budgets sur un seul projet, au lieu des autorisations du compte de facturation, l'appelant peut disposer des autorisations suivantes sur le projet : resourcemanager.projects.get et billing.resourcebudgets.read.

Administrateur de compte de facturation, Gestionnaire des coûts du compte de facturation ou Lecteur de compte de facturation sur le compte de facturation Cloud associé au budget.

Pour les budgets appliqués à un seul projet, propriétaire, éditeur ou lecteur sur le projet.

ListBudgets Pour afficher la liste des budgets appliqués à un compte de facturation Cloud, l'appelant doit disposer de l'autorisation billing.budgets.list sur le compte de facturation Cloud.

Pour les budgets sur un seul projet, au lieu des autorisations du compte de facturation, l'appelant peut disposer des autorisations suivantes sur le projet : resourcemanager.projects.get et billing.resourcebudgets.read.

Administrateur de compte de facturation, Gestionnaire des coûts du compte de facturation ou Lecteur de compte de facturation sur le compte de facturation Cloud associé au budget.

Pour les budgets appliqués à un seul projet, propriétaire, éditeur ou lecteur sur le projet.

CreateBudget Pour créer un budget, l'appelant doit disposer de l'autorisation billing.budgets.create sur le compte de facturation Cloud du budget.

Pour les budgets sur un seul projet, au lieu des autorisations sur le compte de facturation, l'appelant peut disposer des autorisations suivantes sur le projet : resourcemanager.projects.get, billing.resourcebudgets.read et billing.resourcebudgets.write.

Administrateur de compte de facturation ou Gestionnaire des coûts du compte de facturation sur le compte de facturation Cloud associé au budget.

Pour les budgets appliqués à un seul projet, propriétaire ou éditeur sur le projet.

UpdateBudget Pour mettre à jour un budget existant, l'appelant doit disposer de l'autorisation billing.budgets.update sur le compte de facturation Cloud du budget.

Pour les budgets sur un seul projet, au lieu des autorisations sur le compte de facturation, l'appelant peut disposer des autorisations suivantes sur le projet : resourcemanager.projects.get, billing.resourcebudgets.read et billing.resourcebudgets.write.

Administrateur de compte de facturation ou Gestionnaire des coûts du compte de facturation sur le compte de facturation Cloud associé au budget.

Pour les budgets appliqués à un seul projet, propriétaire ou éditeur sur le projet.

DeleteBudget Pour supprimer un budget existant, l'appelant doit disposer de l'autorisation billing.budgets.delete sur le compte de facturation Cloud du budget.

Pour les budgets sur un seul projet, au lieu des autorisations sur le compte de facturation, l'appelant peut disposer des autorisations suivantes sur le projet : resourcemanager.projects.get, billing.resourcebudgets.read et billing.resourcebudgets.write.

Administrateur de compte de facturation ou Gestionnaire des coûts du compte de facturation sur le compte de facturation Cloud associé au budget.

Pour les budgets appliqués à un seul projet, propriétaire ou éditeur sur le projet.

Autorisations requises pour l'API Cloud Billing Account

Le tableau suivant répertorie les autorisations requises pour appeler chaque méthode de l'API Cloud Billing Account, ainsi que les rôles IAM pour Cloud Billing qui incluent ces autorisations.

Méthode API Autorisations requises Rôles IAM incluant ces autorisations
billingAccounts.create Méthode utilisée pour créer des sous-comptes Cloud Billing. L'appelant doit disposer de l'autorisation billing.accounts.update sur le compte de facturation Cloud parent du sous-compte. Administrateur de compte de facturation
billingAccounts.get billing.accounts.get sur un compte de facturation Cloud. Administrateur de compte de facturation, Gestionnaire des coûts du compte de facturation, Lecteur de compte de facturation ou Utilisateur de compte de facturation
billingAccounts.list None. Cette méthode renvoie tous les comptes pour lesquels l'appelant bénéficie d'une autorisation d'accès. Administrateur de compte de facturation, Gestionnaire des coûts du compte de facturation, Lecteur de compte de facturation, ou Utilisateur de compte de facturation sur les comptes de facturation Cloud, ou Gestionnaire de la facturation du projet sur les projets.
billingAccounts.getIamPolicy billing.accounts.getIamPolicy sur un compte de facturation Cloud. Administrateur de compte de facturation, Gestionnaire des coûts du compte de facturation, Lecteur de compte de facturation ou Utilisateur de compte de facturation
billingAccounts.setIamPolicy billing.accounts.setIamPolicy sur un compte de facturation Cloud. Administrateur de compte de facturation
billingAccounts.testIamPermissions None. Cette méthode permet de déterminer les autorisations dont dispose un appelant sur un compte de facturation Cloud. Non disponible
billingAccounts.patch billing.accounts.update sur un compte de facturation Cloud. Administrateur de compte de facturation
billingAccounts.projects.list billing.resourceAssociations.list sur un compte de facturation Cloud. Administrateur de compte de facturation, Gestionnaire des coûts du compte de facturation ou Lecteur de compte de facturation
projects.getBillingInfo resourcemanager.projects.get sur le projet.
Pour plus d'informations, consultez la page Contrôle des accès aux projets.
Propriétaire de projet, éditeur de projet ou lecteur de projet
projects.updateBillingInfo billing.resourceAssociations.create sur le compte de facturation Cloud et resourcemanager.projects.createBillingAssignment sur le projet. Administrateur de compte de facturation ou Utilisateur de compte de facturation ET Gestionnaire de la facturation du projet

Rôles

Vous n'accordez pas directement des autorisations aux utilisateurs, mais vous leur attribuez des rôles auxquels sont associées une ou plusieurs autorisations.

Vous pouvez attribuer un ou plusieurs rôles sur la même ressource.

Le tableau suivant répertorie les rôles IAM que vous pouvez attribuer pour accéder aux API Cloud Billing, la description de chaque rôle et les autorisations associées à chacun d'entre eux. Certains de ces rôles incluent également des autorisations pour d'autres services Google Cloud.

Role Permissions

(roles/billing.admin)

Provides access to see and manage all aspects of billing accounts.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.close

billing.accounts.get

billing.accounts.getCarbonInformation

billing.accounts.getIamPolicy

billing.accounts.getPaymentInfo

billing.accounts.getPricing

billing.accounts.getSpendingInformation

billing.accounts.getUsageExportSpec

billing.accounts.list

billing.accounts.move

billing.accounts.redeemPromotion

billing.accounts.removeFromOrganization

billing.accounts.reopen

billing.accounts.setIamPolicy

billing.accounts.update

billing.accounts.updatePaymentInfo

billing.accounts.updateUsageExportSpec

billing.billingAccountPrice.get

billing.billingAccountPrices.list

billing.billingAccountServices.*

  • billing.billingAccountServices.get
  • billing.billingAccountServices.list

billing.billingAccountSkuGroupSkus.*

  • billing.billingAccountSkuGroupSkus.get
  • billing.billingAccountSkuGroupSkus.list

billing.billingAccountSkuGroups.*

  • billing.billingAccountSkuGroups.get
  • billing.billingAccountSkuGroups.list

billing.billingAccountSkus.*

  • billing.billingAccountSkus.get
  • billing.billingAccountSkus.list

billing.budgets.*

  • billing.budgets.create
  • billing.budgets.delete
  • billing.budgets.get
  • billing.budgets.list
  • billing.budgets.update

billing.credits.list

billing.finOpsBenchmarkInformation.get

billing.finOpsHealthInformation.get

billing.resourceAssociations.*

  • billing.resourceAssociations.create
  • billing.resourceAssociations.delete
  • billing.resourceAssociations.list

billing.subscriptions.*

  • billing.subscriptions.create
  • billing.subscriptions.get
  • billing.subscriptions.list
  • billing.subscriptions.update

cloudasset.assets.searchAllResources

cloudnotifications.activities.list

cloudsupport.properties.get

cloudsupport.techCases.*

  • cloudsupport.techCases.create
  • cloudsupport.techCases.escalate
  • cloudsupport.techCases.get
  • cloudsupport.techCases.list
  • cloudsupport.techCases.update

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

compute.commitments.*

  • compute.commitments.create
  • compute.commitments.get
  • compute.commitments.list
  • compute.commitments.update
  • compute.commitments.updateReservations

consumerprocurement.accounts.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

consumerprocurement.orderAttributions.*

  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update

consumerprocurement.orders.*

  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

dataprocessing.datasources.get

dataprocessing.datasources.list

dataprocessing.groupcontrols.get

dataprocessing.groupcontrols.list

logging.logEntries.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.privateLogEntries.list

recommender.cloudsqlIdleInstanceRecommendations.get

recommender.cloudsqlIdleInstanceRecommendations.list

recommender.cloudsqlOverprovisionedInstanceRecommendations.get

recommender.cloudsqlOverprovisionedInstanceRecommendations.list

recommender.commitmentUtilizationInsights.*

  • recommender.commitmentUtilizationInsights.get
  • recommender.commitmentUtilizationInsights.list
  • recommender.commitmentUtilizationInsights.update

recommender.computeAddressIdleResourceRecommendations.get

recommender.computeAddressIdleResourceRecommendations.list

recommender.computeDiskIdleResourceRecommendations.get

recommender.computeDiskIdleResourceRecommendations.list

recommender.computeImageIdleResourceRecommendations.get

recommender.computeImageIdleResourceRecommendations.list

recommender.computeInstanceGroupManagerMachineTypeRecommendations.get

recommender.computeInstanceGroupManagerMachineTypeRecommendations.list

recommender.computeInstanceIdleResourceRecommendations.get

recommender.computeInstanceIdleResourceRecommendations.list

recommender.computeInstanceMachineTypeRecommendations.get

recommender.computeInstanceMachineTypeRecommendations.list

recommender.costInsights.*

  • recommender.costInsights.get
  • recommender.costInsights.list
  • recommender.costInsights.update

recommender.costRecommendations.*

  • recommender.costRecommendations.listAll
  • recommender.costRecommendations.summarizeAll

recommender.resourcemanagerProjectUtilizationRecommendations.get

recommender.resourcemanagerProjectUtilizationRecommendations.list

recommender.spendBasedCommitmentInsights.*

  • recommender.spendBasedCommitmentInsights.get
  • recommender.spendBasedCommitmentInsights.list
  • recommender.spendBasedCommitmentInsights.update

recommender.spendBasedCommitmentRecommendations.*

  • recommender.spendBasedCommitmentRecommendations.get
  • recommender.spendBasedCommitmentRecommendations.list
  • recommender.spendBasedCommitmentRecommendations.update

recommender.spendBasedCommitmentRecommenderConfig.*

  • recommender.spendBasedCommitmentRecommenderConfig.get
  • recommender.spendBasedCommitmentRecommenderConfig.update

recommender.usageCommitmentRecommendations.*

  • recommender.usageCommitmentRecommendations.get
  • recommender.usageCommitmentRecommendations.list
  • recommender.usageCommitmentRecommendations.update

resourcemanager.projects.createBillingAssignment

resourcemanager.projects.deleteBillingAssignment

resourcemanager.projects.get

resourcemanager.projects.list

(roles/billing.costsManager)

Manage budgets for a billing account, and view, analyze, and export cost information of a billing account.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.getSpendingInformation

billing.accounts.getUsageExportSpec

billing.accounts.list

billing.accounts.updateUsageExportSpec

billing.budgets.*

  • billing.budgets.create
  • billing.budgets.delete
  • billing.budgets.get
  • billing.budgets.list
  • billing.budgets.update

billing.resourceAssociations.list

recommender.costInsights.*

  • recommender.costInsights.get
  • recommender.costInsights.list
  • recommender.costInsights.update

(roles/billing.creator)

Provides access to create billing accounts.

Lowest-level resources where you can grant this role:

  • Organization

billing.accounts.create

resourcemanager.organizations.get

(roles/billing.projectManager)

When granted in conjunction with the Billing Account User role, provides access to assign a project's billing account or disable its billing.

Lowest-level resources where you can grant this role:

  • Project

resourcemanager.projects.createBillingAssignment

resourcemanager.projects.deleteBillingAssignment

(roles/billing.user)

When granted in conjunction with the Project Owner role or Project Billing Manager role, provides access to associate projects with billing accounts.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

(roles/billing.viewer)

View billing account cost and pricing information, transactions, and billing and commitment recommendations.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getCarbonInformation

billing.accounts.getIamPolicy

billing.accounts.getPaymentInfo

billing.accounts.getPricing

billing.accounts.getSpendingInformation

billing.accounts.getUsageExportSpec

billing.accounts.list

billing.billingAccountPrice.get

billing.billingAccountPrices.list

billing.billingAccountServices.*

  • billing.billingAccountServices.get
  • billing.billingAccountServices.list

billing.billingAccountSkuGroupSkus.*

  • billing.billingAccountSkuGroupSkus.get
  • billing.billingAccountSkuGroupSkus.list

billing.billingAccountSkuGroups.*

  • billing.billingAccountSkuGroups.get
  • billing.billingAccountSkuGroups.list

billing.billingAccountSkus.*

  • billing.billingAccountSkus.get
  • billing.billingAccountSkus.list

billing.budgets.get

billing.budgets.list

billing.credits.list

billing.finOpsBenchmarkInformation.get

billing.finOpsHealthInformation.get

billing.resourceAssociations.list

billing.subscriptions.get

billing.subscriptions.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

dataprocessing.datasources.get

dataprocessing.datasources.list

dataprocessing.groupcontrols.get

dataprocessing.groupcontrols.list

recommender.commitmentUtilizationInsights.get

recommender.commitmentUtilizationInsights.list

recommender.costInsights.get

recommender.costInsights.list

recommender.costRecommendations.*

  • recommender.costRecommendations.listAll
  • recommender.costRecommendations.summarizeAll

recommender.spendBasedCommitmentInsights.get

recommender.spendBasedCommitmentInsights.list

recommender.spendBasedCommitmentRecommendations.get

recommender.spendBasedCommitmentRecommendations.list

recommender.spendBasedCommitmentRecommenderConfig.get

recommender.usageCommitmentRecommendations.get

recommender.usageCommitmentRecommendations.list

Notez que les rôles roles/billing.admin, roles/billing.costsManager, roles/billing.viewer et roles/billing.projectManager incluent également des autorisations pour d'autres services Google Cloud.