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 specifiche di Google Cloud, ma non ad altre. IAM consente di adottare il principio di sicurezza del privilegio minimo, in modo da concedere solo l'accesso necessario alle risorse.

IAM consente di controllare chi (utenti) ha quale tipo di accesso (ruoli) a quali risorse impostando i criteri di autorizzazione IAM. Consenti ai criteri di concedere ruoli specifici a un utente, concedendogli così le autorizzazioni per tali 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 i dati dell'account di fatturazione Cloud, l'utente o il chiamante deve disporre delle autorizzazioni necessarie.

Autorizzazioni richieste per l'API Cloud Billing Catalog

Non sono necessarie autorizzazioni per utilizzare l'API Cloud Billing Catalog (elenco dei servizi e elenco di 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 di fatturazione IAM standard che concedono automaticamente queste autorizzazioni.

Metodo API Autorizzazione richiesta Ruolo IAM che concede autorizzazioni
GetBudget Per ottenere i dettagli di un budget, il chiamante 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 nell'account di fatturazione Cloud del budget.

Per budget di un singolo progetto, Proprietario progetto, Editor progetto o Visualizzatore progetto del progetto.

ListBudgets Per restituire un elenco dei budget applicati a un account di fatturazione Cloud, il 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 nell'account di fatturazione Cloud del budget.

Per budget di un singolo progetto, Proprietario progetto, Editor progetto o Visualizzatore progetto del 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 budget di un singolo progetto, Proprietario progetto o editor del progetto.

UpdateBudget Per aggiornare un budget esistente, il chiamante 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 budget di un singolo progetto, Proprietario progetto o editor del progetto.

DeleteBudget Per eliminare un budget esistente, il chiamante deve disporre dell'autorizzazione billing.budgets.delete 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 budget di un singolo progetto, Proprietario progetto o editor del progetto.

Autorizzazioni richieste per l'API Cloud Billing Account

La tabella seguente elenca le autorizzazioni richieste per chiamare ogni metodo dell'API Cloud Billing Account, nonché i ruoli IAM per Fatturazione Cloud che includono queste autorizzazioni.

Metodo API Autorizzazioni obbligatorie Ruoli IAM che includono autorizzazione
billingAccounts.create Questo metodo viene utilizzato per creare nuovi subaccount di fatturazione Cloud. Il chiamante deve avere billing.accounts.update nell'account di fatturazione Cloud padre del subaccount. Amministratore account di fatturazione
billingAccounts.get billing.accounts.get su 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 il chiamante è autorizzato ad accedere. Amministratore account di fatturazione, Gestore costi account di fatturazione, Visualizzatore account di fatturazione o Utente account di fatturazione per gli account di fatturazione Cloud o Gestore fatturazione progetto per i progetti.
billingAccounts.getIamPolicy billing.accounts.getIamPolicy su 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 su un account di fatturazione Cloud. Amministratore account di fatturazione
billingAccounts.testIamPermissions Nessuno. Questo metodo viene utilizzato per determinare le autorizzazioni di un chiamante per un account di fatturazione Cloud. n/d
billingAccounts.patch billing.accounts.update su un account di fatturazione Cloud. Amministratore account di fatturazione
billingAccounts.projects.list billing.resourceAssociations.list su un account di fatturazione Cloud. Amministratore account di fatturazione, Gestore costi account di fatturazione o Visualizzatore account di fatturazione
projects.getBillingInfo resourcemanager.projects.get sul progetto.
Per maggiori informazioni, consulta Controllo dell'accesso per i progetti.
Proprietario progetto, Editor del 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 agli utenti le autorizzazioni, ma concedi loro dei ruoli con una o più autorizzazioni raggruppate al loro interno.

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 delle attività del ruolo e le autorizzazioni incluse in questo ruolo. Alcuni di questi ruoli includono anche 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.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

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