2

語境IAM和RBAC衝突(GKE)

訪問谷歌雲(GKE)kubernetes集羣是通過谷歌雲IAM功能來管理的;

  1. 管理員邀請新用戶(使用他們的Google帳戶/登錄名)併爲其分配角色。

    下面的示例角色是「容器引擎查看器」,它將允許用戶訪問kubernetes集羣並運行所有「查看」操作。

  2. 用戶可以使用gcloud auth login本地機器,然後gcloud container clusters get-credentials對來驗證谷歌IAM並有gcloud工具把它們寫出來kubernetes配置文件,準備使用集羣。

  3. 用戶可以使用kubectl來訪問羣集。用上面的例子,讀取工作...寫入/更改不要;都好!

的問題

的GKE的IAM角色kubernetes集羣是非常簡單的, 「管理,讀/寫,讀」。

對於通過kubernetes簇更細粒度的控制,Kubernetes RBAC 應使用內羣集,讓我用戶限制到單個名稱空間,單個API端點,單個動作等

但是,沒有爲用戶指定IAM角色;用戶無法對羣集進行身份驗證(RBAC是授權,而不是身份驗證)。

然而,最低權限我可以設置的IAM角色是「容器引擎查看器」,因此無論我使用Kubernetes RBAC實施的限制如何,我的所有用戶仍然具有完全的讀取權限。

問題

有沒有人找到了一種方法,以確保在GKE的所有權限由RBAC來了,基本上抵消從IAM權限?

回答

1

奇怪的是如何寫出這個問題讓你更快回復?

Theres在Google Cloud的IAM中新增了一項「Alpha」功能,上次我沒有嘗試解決此問題;

在IAM>角色下,您現在可以使用您自己的權限子集創建自定義IAM角色。

我創建了一個最小角色,允許gcloud container clusters get-credentials工作,但沒有別的,允許在kubernetes集羣內的權限由RBAC完全管理。

初始測試看起來不錯。

下面是IAM角色截圖(需要權限)。

Minimal IAM role with GKE cluster access

New IAM roles alpha functionality