[英]Update billing account on google cloud project programmatically?
[英]Link a GCP project to a billing account using a service account
我正在嘗試使用 GCP 的 API 創建一個新項目並將其鏈接到計費帳戶。
我有一個用於向 GCP 進行身份驗證的服務帳戶,該服務帳戶是project1
的一部分。
此服務帳號在組織級別具有以下權限:
我還嘗試提供此服務帳戶Organization Administrator
,這沒有幫助,因為它不是權限問題。
使用 API 我創建了一個新項目 - project 2
,並且我能夠為project 2
啟用雲計費 API 和部署管理器 API 。
出於某種原因,當我嘗試遵循有關如何為 GCP 項目啟用計費的API 參考時,請求失敗並顯示 403(權限被拒絕)。
這是我正在嘗試提出的示例請求:
curl --location --request PUT 'https://cloudbilling.googleapis.com/v1/projects/project2/billingInfo' --header 'Authorization: Bearer ya29.blablabla' --header 'Content-Type: application/json' --data-raw '{"billingAccountName": "billingAccounts/1234-9248-4321"}'
此請求失敗的原因是由於某種原因它試圖將project1
(服務帳戶所在的位置)鏈接到此計費帳戶而不是project2
。
這是我得到的回復:
{ "error": { "code": 403, "message": "Cloud Billing API 之前沒有在項目 project1_number 中使用或被禁用。通過訪問https://console.developers.google.com/apis啟用它/api/cloudbilling.googleapis.com/overview?project=project1_number然后重試。如果您最近啟用了此 API,請等待幾分鍾讓該操作傳播到我們的系統並重試。", "status": "PERMISSION_DENIED", " details": [ { "@type": "type.googleapis.com/google.rpc.Help", "links": [ { "description": "Google 開發者控制台 API 激活", "url": "https:// /console.developers.google.com/apis/api/cloudbilling.googleapis.com/overview?project=project1_number" } ] }, { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "原因”:“SERVICE_DISABLED”、“域”:“googleapis.com”、“元數據”:{“服務”:“cloudbilling.googleapis.com”、“消費者”:“projects/project1_number”} } ] } }
如果我嘗試為project1
啟用計費 API ,我開始收到 400 個“意外令牌”消息。
有沒有辦法(使用 API)使用駐留在project1
上的服務帳戶將project2
鏈接到我的結算帳戶?
你有兩個問題:
要啟用計費 API,您必須使用具有角色Service Usage Admin aka roles/ serviceusage.serviceUsageAdmin 的身份
使用 Google Cloud Console GUI 或使用 CLI 示例:
gcloud services enable cloudbilling.googleapis.com
有沒有辦法(使用 API)使用駐留在 project1 上的服務帳戶將 project2 鏈接到我的結算帳戶?
使用 API,否。使用 GUI,是。 要允許服務帳戶訪問計費帳戶,您必須在計費帳戶 GUI 中完成此任務。 對於個人 Google Cloud 帳戶,您不能添加其他成員(限制為一個身份)。
提示:如果您希望能夠訪問計費數據,您將無法訪問。 相反,啟用 Google Cloud Billing 導出到 BigQuery,然后執行查詢以檢索結算數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.