Controllo dell'accesso per l'API Cloud Billing Budget

Google Cloud offre Identity and Access Management (IAM), che consente di concedere un accesso più granulare a risorse Google Cloud specifiche e impedisce l'accesso indesiderato ad altre risorse. IAM consente di adottare il principio di sicurezza del privilegio minimo, in modo da concedere solo l'accesso necessario alle risorse.

IAM ti consente di controllare chi (utenti) dispone di un certo tipo di accesso (ruoli) a determinate risorse attraverso l'impostazione dei criteri IAM. I criteri IAM concedono ruoli specifici a un utente concedendo all'utente determinate autorizzazioni.

Questa pagina illustra i ruoli Identity and Access Management disponibili per le API Cloud Billing. Ad esempio, puoi utilizzare IAM per concedere ruoli come Amministratore, Utente e Gestore progetti per un account di fatturazione Cloud. Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta la guida per gli sviluppatori di Identity and Access Management. In particolare, consulta la sezione Concessione, modifica e revoca dell'accesso.

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. La tabella seguente elenca le autorizzazioni e i ruoli IAM necessari per utilizzare l'API Cloud Billing Budget.

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.

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 di fatturazione IAM standard che puoi concedere per accedere alle API di fatturazione Cloud, la descrizione delle attività del ruolo e le autorizzazioni incluse nel ruolo.

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