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 ti consente di adottare il principio di sicurezza del privilegio minimo, in modo da concedere solo l'accesso necessario alle tue 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, assegnandogli determinate autorizzazioni.

Questa pagina illustra i ruoli di Identity and Access Management disponibili per le API Cloud Billing. Ad esempio, puoi utilizzare IAM per concedere ruoli come Amministratore, Utente e Project Manager 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 le informazioni dell'account di fatturazione Cloud, l'utente o l'autore della chiamata deve disporre delle autorizzazioni necessarie. La tabella seguente elenca i ruoli e le autorizzazioni 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 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 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 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.

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.

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 riportata di seguito elenca i ruoli di fatturazione IAM standard che puoi concedere per accedere alle API Cloud Billing, la descrizione della funzione 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 anche le autorizzazioni per altri servizi Google Cloud.