[英]How to create the GCP workload identity IAM bindings in Terraform?
GCP 允許 Kubernetes 服務賬戶通過在兩個服務賬戶之間添加 IAM 策略綁定來模擬 IAM 服務賬戶。 此綁定允許 Kubernetes 服務賬戶充當 IAM 服務賬戶。
gcloud iam service-accounts add-iam-policy-binding GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE/KSA_NAME]"
我們想通過 Terraform 資源創建相同的內容,我們嘗試過這種方式,請參閱: 文章
resource "google_service_account_iam_binding" "service-account-iam" {
service_account_id = "GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com"
role = "roles/iam.workloadIdentityUser"
members = [
"serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE/KSA_NAME]",
]
}
但我們收到以下錯誤:
錯誤:“service_account_id”(“XXX@XXX.iam.gserviceaccount.com”)不匹配正則表達式“projects/(?:(?:[-a-z0-9]{1,63}\.) (? :az?):)?(?:[0-9]{1,19}|(?:a-z0-9?)|-)/serviceAccounts/((?:(?:[-a-z0- 9]{1,63}\.) (?:az?):)?(?:[0-9]{1,19}|(?:a-z0-9?))@[az]+. gserviceaccount.com$|[0-9]{1,20}-compute@developer.gserviceaccount.com|az@[-a-z0-9\.]{1,63}\.iam\.gserviceaccount\.com $)"
這里有什么問題?
service_account_id
是要應用策略的服務帳戶的完全限定名稱。
projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.