創建服務用戶以管理該項目下的terraform並將其授予roles/owner
。爲這個terraform用戶創建了關鍵字。GCP上的Terraform未能創建pubsub主題,聲明權限被拒絕
Terraform代碼很簡單:
resource "google_pubsub_topic" "my_topic" {
name = "my_topic"
project = "${var.project_id}"
}
只創建一個發佈 - 訂閱話題。
terraform plan
的作品,但terraform申請給我:
google_pubsub_topic.my_topic:googleapi:錯誤403:用戶無權執行此操作時,禁止
我都甚至試圖給該服務。帳戶roles/pubsub.admin
不確定我知道發生了什麼,因爲我的服務帳戶擁有與其關聯的所有者角色,但它無法創建pubsub主題。
有人可以幫我解決這個問題嗎?
在此先感謝。
編輯(擴展我的評論有關什麼工作): 我已經使用gcloud創建服務帳戶。
gcloud iam service-accounts create terraform \
--display-name "Terraform admin account"
gcloud projects add-iam-policy-binding myproject-182220 \
--member serviceAccount:[email protected] \
--role roles/owner
gcloud iam service-accounts keys create terraform-admin.json \
--iam-account [email protected]
繼續我的調試,我使用控制檯/ GUI創建了一個新的服務帳戶 - > API &服務 - >憑證 - >創建憑據 - >服務帳戶鍵 - >新的服務帳戶(擁有所有者角色)。有了這個新的服務密鑰json文件,我能夠毫無問題地運行我的terraform代碼。
現在我的困惑是,爲什麼這個工作,但不是當我用gcloud創建一個服務帳戶,並賦予它相同的角色?
你可以運行'gcloud'創建這個主題嗎?我想你會得到同樣的錯誤。仔細檢查你是否獲得了正確的許可。 – BMW
我沒有問題與我的用戶帳戶運行gcloud並創建主題。我不確定我如何使用gcloud和服務帳戶憑證。我顯然可以在Python或其他東西中使用服務帳戶來創建pubsub,看看我是否得到相同的錯誤。我的用戶帳戶在項目上也具有「所有者」角色,與服務帳戶相同 – Amit
我嘗試使用擁有者角色創建具有相同服務帳戶的其他資源,但仍然拒絕了權限。我不確定我需要做些什麼來創建一個服務帳戶,我可以使用這個帳戶來創建terraform資源。 – Amit