2017-02-16 86 views
0

當試圖在AWS上設置Kube集羣時,我們希望能夠將IAM Roles與某些容器相關聯,因此可以使用許多工具之一進行調查,這些工具可以讓您執行此操作作爲kube2iam。所有工具似乎都以相同的方式工作,方法是根據部署中的註釋代理假定的角色。這是否允許通過更改註釋來允許容器從任何其他容器承擔角色,從而實現角色升級?如何在使用kube2iam時避免角色升級

從kube2iam自述:

的問題是,在一個多租戶容器基礎的世界,多個集裝箱將共享底層節點。鑑於容器將共享相同的底層節點,通過IAM角色提供對AWS資源的訪問意味着需要創建一個IAM角色,該角色是所有IAM角色的聯合。從安全角度來看這是不可接受的。

從我的理解中可以看出,如果引入惡意吊艙,問題仍然存在。目前人們如何解決這個問題/這是我應該擔心的事情嗎?

+0

如果您不給予Kubernetes API的訪問權限,那麼他們如何更改註釋? –

+0

@PixelElephant你是對的,但我更關心控制部署管道的過程,違反了最小權限原則。例如,將2個服務部署到集羣「hello world」和「個人信息服務」,作爲有權訪問將「hello world」服務部署到集羣的人員,我應該無法承擔「個人信息服務」但我可以通過改變註釋。 – amaffei

+0

你不再談論惡意吊艙,而是惡意的人。 kube2iam無法幫助你。你可以以某種方式在部署管道中構建一個系統,檢查部署是否存在'iam.amazonaws.com/role'並驗證它。但我知道沒有開箱即用的解決方案。 –

回答

1

您可以按名稱空間限制使用的角色。

apiVersion: v1 
kind: Namespace 
metadata: 
    annotations: 
    iam.amazonaws.com/allowed-roles: | 
     ["role-arn"] 
    name: default 

隨着k8s RBAC的啓用,您的部署應該沒有權限更新名稱空間註釋。

相關問題