Zugriffssteuerung für die Cloud Billing Budget API

Google Cloud bietet mit Identity and Access Management (IAM) die Möglichkeit, bestimmten Google Cloud-Ressourcen detaillierte Zugriffsrechte zuzuweisen und unerwünschten Zugriff auf andere Ressourcen zu verhindern. 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 Richtlinien steuern, wer (Nutzer) welchen Zugriff (Rollen) auf welche Ressourcen hat. Durch sie werden einem Nutzer bestimmte Rollen zugewiesen, mit denen wiederum gewisse Berechtigungen verknüpft sind.

Auf dieser Seite werden die Rollen von Identity and Access Management für die Cloud Billing APIs erläutert. Beispielsweise können Sie mit IAM Rollen wie Administrator, Nutzer und Projektadministrator für ein Cloud-Rechnungskonto zuweisen. Eine detaillierte Beschreibung zu IAM und seinen Features finden Sie im Entwicklerhandbuch zu Identity and Access Management. Lesen Sie dazu insbesondere das Kapitel Zugriff für Projektmitglieder gewähren, ändern und aufheben.

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. In der folgenden Tabelle sind die IAM-Berechtigungen und -Rollen aufgeführt, die für die Verwendung der Cloud Billing Budget API erforderlich sind.

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.

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 standardmäßigen IAM-Abrechnungsrollen, die Sie für den Zugriff auf die Cloud Billing APIs zuweisen können, eine Beschreibung der jeweiligen Rolle und die damit verbundenen Berechtigungen.

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

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