Cloud Billing 存取權控管與權限

本文說明 Cloud Billing 帳戶的角色和存取權。

您可以在 Google Cloud 設定 Cloud Billing 帳戶,並指定特定 Google Cloud 資源和 Google Maps Platform API 的費用由誰支付。Cloud 帳單帳戶會連結到 Google 付款資料Google 付款資料包含收費的付款方式。

視您想提供的存取權類型而定,Cloud Billing 和 Google 付款的存取權會在兩個不同的系統中設定。

  • Cloud Billing 可讓您為資源設定Identity and Access Management (IAM) 政策,藉此控制哪些使用者能夠管理特定資源,以及查看特定資源的費用。
  • Google 付款中心,您可以將使用者新增至您管理的任何 Google 付款商家資料,並視需要授予不同層級的存取權。您也可以設定使用者接收帳單和付款電子郵件的偏好設定。
Cloud Billing 權限 Google 付款設定和權限
Cloud Billing 帳戶的存取權是透過 IAM 角色管理。您可以設定帳單帳戶權限,允許使用者執行下列操作:
  • 開啟、關閉及修改 Cloud Billing 帳戶。
  • 查看報表和費用資料。
  • 查看文件 (例如月結單和對帳單)。
  • 分析及購買承諾使用折扣 (CUD)。
  • 啟用及管理帳單資料匯出功能。
  • 設定預算和快訊。
  • 管理各專案的帳單。
  • 管理帳單的使用者權限。
  • 聯絡帳單支援團隊。
Google 付款資料的存取權限是在 Google 付款設定中管理。您可以設定 Google 付款權限,允許使用者執行下列操作:
  • 新增、編輯及移除付款方式。
  • 更新付款資料,包括郵寄地址。
  • 管理付款使用者,包括聯絡資訊、電子郵件接收設定和使用者權限。

如要從 Google Cloud 控制台的「帳單」頁面管理付款相關工作,使用者也必須在 Cloud Billing 帳戶中具備「帳單帳戶檢視者」角色。

Cloud Billing 存取權

如要授予或限制 Cloud Billing 的存取權限,您可以在機構層級、Cloud Billing 帳戶層級或專案層級設定 IAM 政策。 Google Cloud 資源會沿用父項節點的 IAM 政策,這代表您只要在機構層級設定政策,就能讓機構中的所有 Cloud Billing 帳戶、專案及資源套用該政策。

您可以控制不同使用者或角色在不同層級的檢視權限,方法是在 Cloud Billing 帳戶或專案層級設定存取權限。

如要授予使用者某個 Cloud Billing 帳戶中「所有」專案費用的檢視權限,只要讓該使用者有權限檢視該 Cloud Billing 帳戶的費用即可 (billing.accounts.getSpendingInformation)。如要授予使用者「特定」專案費用的檢視權限,只要讓該使用者有權限檢視該專案的費用即可 (billing.resourceCosts.get)。

IAM 中的 Cloud Billing 角色總覽

您並非直接為使用者授予權限,而是指派「角色」給他們,每個角色可能具備一或多項權限。

您可以將一或多個角色授予同一位使用者,或授予同一項資源。

以下預先定義的 Cloud Billing IAM 角色,可讓您利用存取權控管功能強制實行責任劃分:

角色 目的 層級 用途
帳單帳戶建立者
(roles/billing.creator)
建立新的自助式 (線上) 帳單帳戶。 機構 首次設定帳單時,可以利用這個角色來進行;如要允許建立額外的帳單帳戶,也可以利用這個角色來進行。
使用者必須擁有這個角色,才能利用自己的公司身分識別,搭配信用卡來註冊 Google Cloud 。
提示:請盡量減少擁有這個角色的使用者數量,以協助您避免機構中沒有記錄的雲端支出金額激增。
帳單帳戶管理員
(roles/billing.admin)
管理帳單帳戶 (但並非建立帳單帳戶)。 機構或帳單帳戶。 這是帳單帳戶的擁有者角色。請使用這個角色來管理付款方式、設定帳單匯出功能、查看費用資訊、連結專案和取消專案的連結,以及管理帳單帳戶中的其他使用者角色。根據預設,建立 Cloud Billing 帳戶的人就是該帳戶的帳單帳戶管理員。
帳單帳戶費用管理員
(roles/billing.costsManager)
管理預算,並查看及匯出帳單帳戶的費用資訊 (但不包括價格資訊)。 機構或帳單帳戶。 建立、編輯及刪除預算,查看帳單帳戶費用資訊和交易,以及管理帳單費用資料匯出至 BigQuery 的作業。無法匯出價格資料,或在「價格」頁面中查看自訂價格。無法連結或取消連結專案,也無法管理帳單帳戶的屬性。
帳單帳戶檢視者
(roles/billing.viewer)
檢視帳單帳戶的費用資訊與交易。 機構或帳單帳戶。 「帳單帳戶檢視者」角色通常都是指派給財務團隊。此角色會授予支出資訊存取權,但不會授予連結/取消連結專案或管理帳單帳戶屬性的權限。
專案帳單費用管理員
(roles/billing.projectCostsManager)
查看專案的帳單帳戶費用資訊。 機構或帳單帳戶。 如果同時授予專案的費用檢視權限,專案帳單費用管理員就能存取帳單資訊,但範圍僅限於使用者可以存取費用資料的專案。專案範圍內的帳單資訊包括報表、FinOps 中心、預算和快訊,以及異常狀況。
帳單帳戶使用者
(roles/billing.user)
將專案與帳單帳戶連結。 機構或帳單帳戶。 這個角色的權限相當有限,因此您可以將其指派給多位使用者。如果同時授予這兩個角色,使用者就能建立與獲派「帳單帳戶使用者」角色的帳單帳戶連結的新專案。或者,如果與「專案帳單管理員」角色一併授予,這兩個角色可讓使用者連結和取消連結獲派「帳單帳戶使用者」角色的帳單帳戶中的專案。
專案帳單管理員
(roles/billing.projectManager)
將專案與帳單帳戶連結,以及取消專案與帳單帳戶的連結。 機構、資料夾或專案。 如果同時授予「帳單帳戶使用者」角色,「專案帳單管理員」角色可讓使用者將專案連結至帳單帳戶,但不會授予任何資源權限。專案擁有者可利用這個角色,讓其他使用者來管理專案的計費功能,但不會讓該使用者擁有資源的存取權限。

下表列出預先定義的 IAM 帳單角色詳細資料,包括每個角色內含的權限。

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

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

billing.accounts.getSpendingInformationScoped

billing.costRecommendations.listScoped

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

機構、專案、Cloud Billing 帳戶和 Google 付款資料之間的 IAM 關係

有兩種類型的關係控制著機構、Cloud Billing 帳戶和專案之間的互動,那就是擁有權及付款連結。

  • 擁有權是指 IAM 權限繼承。
  • 付款連結會定義專案費用由哪個 Cloud Billing 帳戶支付。

下圖顯示範例機構的擁有權與付款連結之間的關係。

說明專案與 Cloud Billing 帳戶和 Google 付款資料的關係。其中一側顯示您的 Google Cloud層級資源 (Cloud Billing 帳戶和相關聯的專案),另一側則以垂直虛線分隔,顯示您的 Google 層級資源 (Google 付款資料)。專案費用會由 Cloud Billing 帳戶支付,該帳戶已連結至 Google 付款資料。

在圖中,機構有專案 1、2 和 3 的擁有權,這代表該機構是這三項專案的 IAM 權限父項。

Cloud Billing 帳戶已連結至專案 1、2 和 3,這代表該三項專案所產生的費用會透過此帳單帳戶支付。Cloud Billing 帳戶也可以支付其他機構的專案費用,但會沿用上層機構的 IAM 權限。

Cloud Billing 帳戶也會連結到 Google 付款資料,其中會儲存姓名、地址和付款方式等資訊。瞭解如何管理 Google 付款資料使用者權限

雖然您將 Cloud Billing 帳戶連結到專案,但就 IAM 的層面來說,Cloud Billing 帳戶並非專案的父項,因此專案不會繼承其連結之 Cloud Billing 帳戶的權限。

在這個範例中,獲得機構的 IAM 帳單角色的所有使用者,也都擁有 Cloud Billing 帳戶或專案的這些角色。

Cloud Billing 存取權控管範例

請依照下列範例,將不同的 IAM 角色合併使用,來滿足各種情境的需求。

情境:偏好集中控管的小型至中型企業。
使用者類型 帳單 IAM 角色 帳單活動
執行長 帳單帳戶管理員 管理付款方式。
檢視及核准月結單。
技術長 帳單帳戶管理員
專案建立者
設定預算快訊。
查看支出。
建立新的可計費專案。
開發團隊
情境:偏好委派授權的小型至中型企業。
使用者類型 帳單 IAM 角色 帳單活動
執行長 帳單帳戶管理員 管理付款方式。
委派授權。
財務長 帳單帳戶管理員 設定預算快訊。
查看支出。
應付帳款 帳單帳戶檢視者 檢視及核准月結單。
開發團隊 帳單帳戶使用者
專案建立者
建立新的可計費專案。
情境:將財務規劃和採購機能分開
使用者類型 帳單 IAM 角色 帳單活動
採購或中央 IT 人員 帳單帳戶管理員 管理付款方式。
設定預算快訊。
將支出金額傳達給開發團隊。
財務規劃 帳單帳戶檢視者 檢視帳單報表。
處理匯出作業。
與經驗長溝通。
應付帳款 帳單帳戶檢視者 核准月結單。
開發團隊 帳單帳戶使用者
專案建立者
建立新的可計費專案。
情境:開發代理商
使用者類型 帳單 IAM 角色 帳單活動
執行長 帳單帳戶管理員 管理付款方式。
委派授權。
財務長 帳單帳戶管理員 設定預算快訊。
查看支出。
核准月結單。
專案負責人 帳單帳戶使用者
專案建立者
建立新的可計費專案。
專案開發團隊 在現有專案的範圍內進行開發作業。
客戶 專案帳單管理員 當專案完成時,取得專案款項的擁有權。

如何更新 Cloud Billing 權限

如要瞭解如何查看、新增或移除 Cloud Billing 權限,請按照「管理 Cloud Billing 帳戶的存取權

歡迎試用

如果您未曾使用過 Google Cloud,歡迎建立帳戶來評估我們的產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。

免費試用