2016-07-22 63 views
3

我有一些容器將運行在用戶代碼中。爲了加強安全性,我想阻止他們通過服務帳戶機制訪問kubernetes api,但不想在全球範圍內關閉它。該文件說您可以切換服務帳戶名稱,但只能切換到另一個有效的名稱。是否有我錯過的替代品?你可以限制帳戶有0個權限嗎?你可以用另外一個空的空間超過音量嗎?任何其他想法?容器禁用服務帳戶

回答

3

最簡單的方法是將一個emptyDir安裝在serviceAccount密鑰已裝載的位置上。喜歡的東西:

containers: 
- name: running-user-code 
    image: something-i-dont-trust 
    volumeMounts: 
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount 
    name: no-api-access-please 
    readOnly: true 
volumes: 
- name: no-api-access-please 
    emptyDir: {} 

有潛在的解決方案Kubernetes Issue #16779更多的討論(而這也正是我偷了emptyDir例子)。

2

服務帳戶只對API進行身份驗證,它們本身不具有執行任何讀取或寫入API操作的權限。

如果你想保護您的集羣,比AlwaysAllow(可提供任何身份驗證的API用戶完整的讀/寫訪問)等的授權模式下運行,並有選擇地將權限授予特定的服務帳戶或命名空間