2016-01-28 58 views
3

我想設置多個帳戶只能訪問所有權名稱空間,我們嘗試使用授權模式ABAC,但我們在使用kubectl時得到「錯誤:無法從服務器讀取版本:服務器不允許訪問請求的資源「,這似乎是一個錯誤。他們以另一種方式來做到這一點?用戶訪問使用kubectl

回答

3

在嘗試訪問您的資源之前,kubectl首先向服務器的/version/api端點發出請求以確認兼容性並協商API版本。在ABAC中,/version/api端點被視爲「非資源路徑」,但這些也需要授權。您可以添加一條規則,你ABAC文件允許用戶將所有nonResourcePaths只讀訪問如下:

{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"*", "nonResourcePath": "*", "readonly": true}} 

從那裏,你可以把它更爲嚴格,如果你需要。

+0

https://github.com/kubernetes/kubernetes/blob/master/pkg/auth/authorizer/abac/example_policy_file.jsonl上的示例ABAC文件可能對您有所幫助。 –

+0

當我喜歡這個用戶可以得到所有的命名空間,服務......。我的配置:{「apiVersion」:「abac.authorization.kubernetes.io/v1」,「kind」:「Policy」,「spec」:{「user」:「testuser」,「namespace」:「testuser」資源「:」pods「,」apiGroup「:」*「,」只讀「:true}} –