Controllo degli accessi per le API Cloud Billing

Google Cloud offre Identity and Access Management (IAM), che ti consente di concedere l'accesso a determinate risorse Google Cloud , ma non ad altre. Con IAM puoi adottare il principio di sicurezza del privilegio minimo e quindi concedere solo l'accesso necessario alle tue risorse.

IAM ti consente di controllare chi (utenti) ha quale accesso (ruoli) a quali risorse impostando le policy di autorizzazione IAM. Le policy di autorizzazione concedono ruoli specifici a un utente, fornendogli tutte le autorizzazioni di questi ruoli.

Questa pagina spiega 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 su un account di fatturazione Cloud. Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta la documentazione di IAM. In particolare, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni e Gestisci l'accesso ad altre risorse.

Autorizzazioni e ruoli

Affinché un utente possa visualizzare i dettagli dell'account di fatturazione Cloud nella consoleGoogle Cloud o affinché un metodo dell'API Cloud Billing restituisca le informazioni sull'account di fatturazione Cloud, l'utente o il chiamante deve disporre delle autorizzazioni necessarie.

Autorizzazioni richieste per l'API Cloud Billing Catalog

Non sono richieste autorizzazioni per utilizzare l'API Cloud Billing Catalog (elenco dei servizi ed elenco degli SKU). Tutti i dati restituiti da questa API sono pubblici.

Autorizzazioni richieste per l'API Cloud Billing Budget

La tabella seguente descrive 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 obbligatoria Ruolo IAM che concede le 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 per l'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 un singolo progetto, Proprietario progetto, Project Editor o Project Visualizzatore del progetto.

ListBudgets Per restituire un elenco di 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 per l'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 un singolo progetto, Proprietario progetto, Project Editor o Project Visualizzatore del progetto.

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

Per i budget di un singolo progetto, anziché le autorizzazioni dell'account di fatturazione, il chiamante può avere le seguenti autorizzazioni sul 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 un singolo progetto, Proprietario progetto o Project Editor sul progetto.

UpdateBudget Per aggiornare un budget esistente, il chiamante deve disporre dell'autorizzazione billing.budgets.update sull'account di fatturazione Cloud del budget.

Per i budget di un singolo progetto, anziché le autorizzazioni dell'account di fatturazione, il chiamante può avere le seguenti autorizzazioni sul 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 un singolo progetto, Proprietario progetto o Project Editor sul 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 un singolo progetto, anziché le autorizzazioni dell'account di fatturazione, il chiamante può avere le seguenti autorizzazioni sul 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 un singolo progetto, Proprietario progetto o Project Editor sul progetto.

Autorizzazioni richieste per l'API dell'account di fatturazione Cloud

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

Metodo API Autorizzazioni obbligatorie Ruoli IAM che includono l'autorizzazione
billingAccounts.create Questo metodo viene utilizzato per creare nuovi subaccount di fatturazione Cloud. Il chiamante deve disporre di billing.accounts.update nell'account di fatturazione Cloud principale del subaccount. Billing Account Administrator
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 ha l'autorizzazione di 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 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. Billing Account Administrator
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 su un account di fatturazione Cloud. Billing Account Administrator
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 saperne di più, consulta Controllo dell'accesso per i progetti.
Proprietario progetto, Project Editor, Project Viewer o Project Browser
projects.updateBillingInfo billing.resourceAssociations.create sull'account di fatturazione Cloud E resourcemanager.projects.createBillingAssignment sul progetto. Amministratore account di fatturazione o Utente account di fatturazione E Gestore fatturazione progetto

Ruoli

Non concedi direttamente le autorizzazioni agli utenti, ma assegni loro dei ruoli, che raggruppano 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 di ciò che fa il ruolo e le autorizzazioni raggruppate all'interno di quel 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.configureSpendCap
  • 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

chroniclesm.contracts.*

  • chroniclesm.contracts.get
  • chroniclesm.contracts.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.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

discoveryengine.billingAccountLicenseConfigs.*

  • discoveryengine.billingAccountLicenseConfigs.distribute
  • discoveryengine.billingAccountLicenseConfigs.get
  • discoveryengine.billingAccountLicenseConfigs.list
  • discoveryengine.billingAccountLicenseConfigs.retract

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

chroniclesm.contracts.get

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

discoveryengine.billingAccountLicenseConfigs.get

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

(roles/billing.carbonViewer)

billing.accounts.get

billing.accounts.getCarbonInformation

billing.accounts.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.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.linkAdmin)

Authorized to manage billing account hierarchy

billing.accounts.create

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

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

(roles/billing.projectCostsManager)

When granted in conjunction with cost view permissions on projects, provides access to billing information scoped to the projects to which the user has cost access.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.getSpendingInformationScoped

billing.costRecommendations.listScoped

(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

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 .