Controllo degli accessi per le API Cloud Billing

Google Cloud offre Identity and Access Management (IAM), che ti consente di concedere l'accesso a risorse Google Cloud specifiche, ma non ad altre. IAM ti consente di adottare il principio di sicurezza del privilegio minimo, in modo da concedere solo il livello di accesso necessario per le tue risorse.

IAM ti consente di controllare chi (utenti) ha quale accesso (ruoli) a quali risorse impostando i criteri di autorizzazione IAM. I criteri di autorizzazione assegnano ruoli specifici a un utente, che ottiene le autorizzazioni per quei ruoli.

Questa pagina illustra i ruoli IAM disponibili per le API Cloud Billing. Ad esempio, puoi utilizzare IAM per concedere ruoli come Gestore costi account di fatturazione o Visualizzatore account di fatturazione in un account di fatturazione Cloud. Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta la documentazione di IAM. In particolare, consulta Gestire l'accesso a progetti, cartelle e organizzazioni e Gestire l'accesso ad altre risorse.

Autorizzazioni e ruoli

Affinché un utente possa visualizzare i dettagli dell'account di fatturazione Cloud nella console Google Cloud o affinché un metodo dell'API Cloud Billing restituisca le informazioni dell'account di fatturazione Cloud, l'utente o l'autore dell'invocazione deve disporre delle autorizzazioni necessarie.

Autorizzazioni richieste per l'API Cloud Billing Catalog

Non sono necessarie autorizzazioni per utilizzare l'API Catalog di fatturazione Cloud (elenco dei servizi e elenco degli SKU). Tutti i dati restituiti da questa API sono pubblici.

Autorizzazioni richieste per l'API Cloud Billing Budget

La tabella seguente illustra le autorizzazioni necessarie per chiamare ciascun metodo dell'API Cloud Billing Budget. Sono inclusi anche i ruoli IAM Billing standard che concedono automaticamente queste autorizzazioni.

Metodo API Autorizzazione richiesta Ruolo IAM che concede le autorizzazioni
GetBudget Per ottenere i dettagli di un budget, l'utente che chiama deve disporre dell'autorizzazione billing.budgets.get per l'account di fatturazione Cloud del budget.

Per i budget di un singolo progetto, anziché le autorizzazioni dell'account di fatturazione, il chiamante può disporre delle seguenti autorizzazioni per il progetto: resourcemanager.projects.get e billing.resourcebudgets.read.

Amministratore account di fatturazione, Gestore costi account di fatturazione o Visualizzatore account di fatturazione per l'account di fatturazione Cloud del budget.

Per i budget di singoli progetti, Proprietario progetto, Editor progetto o visualizzatore progetto del progetto.

ListBudgets Per restituire un elenco di budget applicati a un account di fatturazione Cloud, l'utente chiamante deve disporre dell'autorizzazione billing.budgets.list per l'account di fatturazione Cloud.

Per i budget di un singolo progetto, anziché le autorizzazioni dell'account di fatturazione, il chiamante può disporre delle seguenti autorizzazioni per il progetto: resourcemanager.projects.get e billing.resourcebudgets.read.

Amministratore account di fatturazione, Gestore costi account di fatturazione o Visualizzatore account di fatturazione per l'account di fatturazione Cloud del budget.

Per i budget di singoli progetti, Proprietario progetto, Editor progetto o Visualizzatore progetto nel progetto.

CreateBudget Per creare un nuovo budget, il chiamante deve disporre dell'autorizzazione billing.budgets.create per l'account di fatturazione Cloud del budget.

Per i budget di singoli progetti, anziché le autorizzazioni dell'account di fatturazione, il chiamante può disporre delle seguenti autorizzazioni per il progetto: resourcemanager.projects.get, billing.resourcebudgets.read e billing.resourcebudgets.write.

Amministratore account di fatturazione o Gestore costi account di fatturazione per l'account di fatturazione Cloud del budget.

Per i budget di singoli progetti, Proprietario progetto o editor del progetto.

UpdateBudget Per aggiornare un budget esistente, l'utente che chiama deve disporre dell'autorizzazione billing.budgets.update per l'account di fatturazione Cloud del budget.

Per i budget di singoli progetti, anziché le autorizzazioni dell'account di fatturazione, il chiamante può disporre delle seguenti autorizzazioni per il progetto: resourcemanager.projects.get, billing.resourcebudgets.read e billing.resourcebudgets.write.

Amministratore account di fatturazione o Gestore costi account di fatturazione per l'account di fatturazione Cloud del budget.

Per i budget di singoli progetti, Proprietario progetto o editor del progetto.

DeleteBudget Per eliminare un budget esistente, l'utente che chiama deve disporre dell'autorizzazione billing.budgets.delete per l'account di fatturazione Cloud del budget.

Per i budget di un singolo progetto, anziché le autorizzazioni dell'account di fatturazione, il chiamante può disporre delle seguenti autorizzazioni per il progetto: resourcemanager.projects.get, billing.resourcebudgets.read e billing.resourcebudgets.write.

Amministratore account di fatturazione o Gestore costi account di fatturazione per l'account di fatturazione Cloud del budget.

Per i budget di singoli progetti, Proprietario progetto o editor del progetto.

Autorizzazioni richieste per l'API Account di fatturazione Cloud

La tabella seguente elenca le autorizzazioni necessarie per chiamare ogni metodo dell'API Account di fatturazione Cloud, nonché i ruoli IAM per la fatturazione Cloud che includono queste autorizzazioni.

Metodo API Autorizzazioni obbligatorie Ruoli IAM che includono l'autorizzazione
billingAccounts.create Il metodo viene utilizzato per creare nuovi subaccount di fatturazione Cloud. L'utente che chiama deve averebilling.accounts.update nell'account di fatturazione Cloud principale del subaccount. Amministratore account di fatturazione
billingAccounts.get billing.accounts.get in un account di fatturazione Cloud. Amministratore account di fatturazione, Gestore costi account di fatturazione, Visualizzatore account di fatturazione o Utente account di fatturazione
billingAccounts.list Nessuno. Questo metodo restituisce tutti gli account a cui l'utente chiamante ha accesso. Amministratore account di fatturazione, Gestore costi account di fatturazione, Visualizzatore account di fatturazione o Utente account di fatturazione per gli account di fatturazione Cloud oppure Gestore fatturazione progetto per i progetti.
billingAccounts.getIamPolicy billing.accounts.getIamPolicy in un account di fatturazione Cloud. Amministratore account di fatturazione, Gestore costi account di fatturazione, Visualizzatore account di fatturazione o Utente account di fatturazione
billingAccounts.setIamPolicy billing.accounts.setIamPolicy in un account di fatturazione Cloud. Amministratore account di fatturazione
billingAccounts.testIamPermissions Nessuno. Questo metodo viene utilizzato per determinare le autorizzazioni di un chiamante su un account di fatturazione Cloud. n/a
billingAccounts.patch billing.accounts.update in un account di fatturazione Cloud. Amministratore account di fatturazione
billingAccounts.projects.list billing.resourceAssociations.list in un account di fatturazione Cloud. Amministratore account di fatturazione, Gestore costi account di fatturazione o Visualizzatore account di fatturazione
projects.getBillingInfo resourcemanager.projects.get nel progetto.
Per ulteriori informazioni, consulta Controllo dell'accesso per i progetti.
Proprietario progetto, Editor progetto o Visualizzatore progetto
projects.updateBillingInfo billing.resourceAssociations.create nell'account di fatturazione Cloud E resourcemanager.projects.createBillingAssignment nel progetto. Amministratore account di fatturazione o utente account di fatturazione E Gestore fatturazione progetto

Ruoli

Non concedi direttamente le autorizzazioni agli utenti, ma concedi loro ruoli che includono una o più autorizzazioni.

Puoi concedere uno o più ruoli sulla stessa risorsa.

La tabella seguente elenca i ruoli IAM che puoi concedere per accedere alle API Cloud Billing, la descrizione della funzione del ruolo e le autorizzazioni incluse nel ruolo. Alcuni di questi ruoli includono anche le autorizzazioni per altri servizi 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.anomalies.*

  • billing.anomalies.get
  • billing.anomalies.list
  • billing.anomalies.submitFeedback

billing.anomaliesConfigs.*

  • billing.anomaliesConfigs.get
  • billing.anomaliesConfigs.update

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.licensePools.*

  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update

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.anomalies.get

billing.anomalies.list

billing.anomaliesConfigs.*

  • billing.anomaliesConfigs.get
  • billing.anomaliesConfigs.update

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.anomalies.get

billing.anomalies.list

billing.anomaliesConfigs.get

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

Tieni presente che i ruoli roles/billing.admin, roles/billing.costsManager, roles/billing.viewer e roles/billing.projectManager includono anche le autorizzazioni per altri servizi Google Cloud.