簡體   English   中英

如何允許 GCP 身份修改特定的服務帳戶

[英]How to allow a GCP Identity to modify specific service accounts

我有一個 Terraform 用來管理我的雲資源的服務帳戶,我們稱之為resource-manager-sa 我需要為其提供足夠的訪問權限來創建/刪除/編輯其他服務帳戶,但不能更改其自身或項目中不應觸及的其他 SAs。

我嘗試在那里添加條件,但似乎“服務帳戶”不是您可以在條件中使用的資源類型之一(?)。 這是我用於綁定該角色的 HCL 片段(我使用 Terraform 的事實與此無關):

resource "google_project_iam_member" "service-account" {
  project = var.project
  role    = "roles/iam.serviceAccountAdmin"
  member  = "serviceAccount:${google_service_account.resource-manager-sa.email}"

  condition {
    title      = "Can manage Blah Blah SA"
    expression = "resource.name.extract('/serviceAccounts/{name}').startsWith('blah-blah@')"
  }
}

當我刪除條件時,一切正常,但resource-manager-sa權限遠遠超過它需要的權限。 它甚至可以修改自己以提升自己的權限。 添加條件后,繁榮,它無法訪問任何服務帳戶:

錯誤:讀取或編輯服務帳戶"projects/***/serviceAccounts/blah-blah@***.iam.gserviceaccount.com"時出錯:googleapi:錯誤403:執行此操作需要權限iam.serviceAccounts.get在服務帳戶projects/***/serviceAccounts/blah-blah@***.iam.gserviceaccount.com ., 禁止

我覺得我在這里做了一些根本錯誤的事情,但我找不到一個很好的示例配置來完成我在這里想要實現的目標。

服務帳戶也是一種資源。 因此,您可以在服務賬戶級別而不是在項目級別為身份分配 IAM 權限。 這意味着您可以創建一個沒有權限/角色的服務帳戶,並將該服務帳戶權限授予另一個服務帳戶。

使用 Terraform 查看google_service_account_iam_member資源。 這將為您提供您所詢問的粒度,並且不允許特權升級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM