Zugriffssteuerung für Cloud Billing APIs

Google Cloud bietet Identitäts- und Zugriffsverwaltung (IAM), mit dem Sie den Zugriff auf bestimmte Google Cloud-Ressourcen gewähren können. Durch IAM haben Sie die Möglichkeit, das Prinzip der geringsten Berechtigung anzuwenden und somit nur den notwendigen Zugriff auf Ihre Ressourcen zu gewähren.

Mit IAM können Sie durch Festlegung von Zulassungsrichtlinien steuern, wer (Nutzer) welchen Zugriff (Rollen) auf welche Ressourcen hat. Zulassungsrichtlinien weisen einem Nutzer bestimmte Rollen zu, die dem Nutzer die Rechte dieser Rollen gewähren.

Auf dieser Seite werden die IAM-Rollen beschrieben, die für die Cloud Billing APIs verfügbar sind. Beispielsweise können Sie mit IAM einem Cloud-Rechnungskonto Rollen wie Billing Account Costs Manager oder Billing Account Viewer zuweisen. Eine ausführliche Beschreibung von IAM und den entsprechenden Funktionen finden Sie in der IAM-Dokumentation. Lesen Sie insbesondere den Abschnitt Zugriff auf Projekte, Ordner und Organisationen verwalten und Zugriff auf andere Ressourcen verwalten.

Berechtigungen und Rollen

Damit ein Nutzer die Details zu Cloud-Rechnungskonten in der Google Cloud Console aufrufen oder eine Cloud Billing API-Methode Informationen zu Cloud-Rechnungskonten zurückgeben kann, muss der Nutzer oder Aufrufer die erforderlichen Berechtigungen haben.

Erforderliche Berechtigungen für die Cloud Billing Catalog API

Für die Verwendung der Cloud Billing Catalog API (Liste der Dienste und der Artikelnummern) sind keine Berechtigungen erforderlich. Alle von dieser API zurückgegebenen Daten sind öffentlich.

Erforderliche Berechtigungen für die Cloud Billing Budget API

In der folgenden Tabelle wird erläutert, welche Berechtigungen zum Aufrufen der einzelnen Cloud Billing Budget API-Methoden erforderlich sind. Außerdem werden die standardmäßigen IAM-Abrechnungsrollen aufgelistet, die diese Berechtigungen automatisch gewähren.

API-Methode Erforderliche Berechtigung IAM-Rolle, die Berechtigungen gewährt
GetBudget Zum Aufrufen der Details zu einem Budget benötigt der Aufrufer die Berechtigung billing.budgets.get für das Cloud-Rechnungskonto des Budgets.

Bei Einzelprojektbudgets kann der Aufrufer anstelle von Rechnungskontoberechtigungen die folgenden Berechtigungen für das Projekt haben: resourcemanager.projects.get und billing.resourcebudgets.read.

Billing Account Administrator, Billing Account Costs Manager oder Billing Account Viewer sind entsprechende Rollen für das Cloud-Rechnungskonto des Budgets.

Für Budgets für ein einzelnes Projekt sind die Rollen Project Owner, Project Editor oder Project Viewer für das Projekt verfügbar.

ListBudgets Der Aufrufer muss die Berechtigung billing.budgets.list für das Cloud-Rechnungskonto haben, um eine Liste der für ein Cloud-Rechnungskonto verwendeten Budgets zurückzugeben.

Bei Einzelprojektbudgets kann der Aufrufer anstelle von Rechnungskontoberechtigungen die folgenden Berechtigungen für das Projekt haben: resourcemanager.projects.get und billing.resourcebudgets.read.

Billing Account Administrator, Billing Account Costs Manager oder Billing Account Viewer sind entsprechende Rollen für das Cloud-Rechnungskonto des Budgets.

Für Budgets für ein einzelnes Projekt sind die Rollen Project Owner, Project Editor oder Project Viewer für das Projekt verfügbar.

CreateBudget Zum Erstellen eines neuen Budgets benötigt der Aufrufer die Berechtigung billing.budgets.create für das Cloud-Rechnungskonto des Budgets.

Bei Einzelprojektbudgets kann der Aufrufer anstelle von Rechnungskontoberechtigungen die folgenden Berechtigungen für das Projekt haben: resourcemanager.projects.get, billing.resourcebudgets.read und billing.resourcebudgets.write.

Billing Account Administrator und Billing Account Costs Manager sind entsprechende Rollen für das Cloud-Rechnungskonto des Budgets.

Für Budgets für ein einzelnes Projekt sind die Rollen Project Owner oder Project Editor verfügbar.

UpdateBudget Zum Aktualisieren eines vorhandenen Budgets benötigt der Aufrufer die Berechtigung billing.budgets.update für das Cloud-Rechnungskonto des Budgets.

Bei Einzelprojektbudgets kann der Aufrufer anstelle von Rechnungskontoberechtigungen die folgenden Berechtigungen für das Projekt haben: resourcemanager.projects.get, billing.resourcebudgets.read und billing.resourcebudgets.write.

Billing Account Administrator und Billing Account Costs Manager sind entsprechende Rollen für das Cloud-Rechnungskonto des Budgets.

Für Budgets für ein einzelnes Projekt sind die Rollen Project Owner oder Project Editor verfügbar.

DeleteBudget Zum Löschen eines vorhandenen Budgets benötigt der Aufrufer die Berechtigung billing.budgets.delete für das Cloud-Rechnungskonto des Budgets.

Bei Einzelprojektbudgets kann der Aufrufer anstelle von Rechnungskontoberechtigungen die folgenden Berechtigungen für das Projekt haben: resourcemanager.projects.get, billing.resourcebudgets.read und billing.resourcebudgets.write.

Billing Account Administrator und Billing Account Costs Manager sind entsprechende Rollen für das Cloud-Rechnungskonto des Budgets.

Für Budgets für ein einzelnes Projekt sind die Rollen Project Owner oder Project Editor verfügbar.

Erforderliche Berechtigungen für die Cloud Billing Account API

In der folgenden Tabelle sind die erforderlichen Berechtigungen zum Aufrufen der einzelnen Cloud Billing Account API-Methoden sowie die IAM-Rollen für Cloud Billing aufgeführt, die diese Berechtigungen enthalten.

API-Methode Erforderliche Berechtigungen IAM-Rollen mit Berechtigungen
billingAccounts.create Methode wird zum Erstellen neuer Cloud-Rechnungsunterkonten verwendet. Der Aufrufer muss billing.accounts.update im übergeordneten Cloud-Rechnungskonto des Unterkontos haben. Rechnungskontoadministrator
billingAccounts.get billing.accounts.get für ein Cloud-Rechnungskonto. Rechnungskontoadministrator, Rechnungskonto-Kostenverwalter, Rechnungskontobetrachter oder Rechnungskontonutzer
billingAccounts.list Keine. Diese Methode gibt alle Konten zurück, auf die der Aufrufer zugreifen darf. Rechnungskontoadministrator, Rechnungskonto-Kostenverwalter, Rechnungskontobetrachter oder Rechnungskontonutzer der Cloud-Rechnungskonten oder Projektabrechnung-Administrator für die Projekte.
billingAccounts.getIamPolicy billing.accounts.getIamPolicy für ein Cloud-Rechnungskonto. Rechnungskontoadministrator, Rechnungskonto-Kostenverwalter, Rechnungskontobetrachter oder Rechnungskontonutzer
billingAccounts.setIamPolicy billing.accounts.setIamPolicy für ein Cloud-Rechnungskonto. Rechnungskontoadministrator
billingAccounts.testIamPermissions Keine. Diese Methode wird verwendet, um die Berechtigungen eines Aufrufers für ein Cloud-Rechnungskonto zu ermitteln.
billingAccounts.patch billing.accounts.update für ein Cloud-Rechnungskonto. Rechnungskontoadministrator
billingAccounts.projects.list billing.resourceAssociations.list für ein Cloud-Rechnungskonto. Rechnungskontoadministrator, Kostenverwalter des Rechnungskontos oder Rechnungskontobetrachter
projects.getBillingInfo resourcemanager.projects.get für das Projekt.
Weitere Informationen finden Sie unter Zugriffssteuerung für Projekte.
Projektinhaber, Projektbearbeiter oder Projektbetrachter
projects.updateBillingInfo billing.resourceAssociations.create für das Cloud-Rechnungskonto UND resourcemanager.projects.createBillingAssignment für das Projekt. Rechnungskontoadministrator oder Rechnungskontonutzer UND Projektabrechnung-Administrator.

Rollen

Sie erteilen den Nutzern die Berechtigungen nicht direkt, sondern Sie weisen ihnen Rollen zu, die eine oder mehrere Berechtigungen enthalten.

Sie können für dieselbe Ressource eine oder mehrere Rollen zuweisen.

Die folgende Tabelle enthält die IAM-Rollen, die Sie für den Zugriff auf die Cloud Billing APIs zuweisen können, eine Beschreibung der jeweiligen Rolle und die damit verbundenen Berechtigungen. Einige dieser Rollen enthalten auch Berechtigungen für andere Google Cloud-Dienste.

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

Die Rollen roles/billing.admin, roles/billing.costsManager, roles/billing.viewer und roles/billing.projectManager enthalten auch Berechtigungen für andere Google Cloud-Dienste.