kubernetes受權設置算法
在kubernetes中受權 和 認證是各自獨立的部分。認證部分參見 kubernetes認證。
受權操做適用於全部面向於kubernetes api的http請求。json
受權 將會針對每個請求,根據訪問策略來檢查對比請求中的屬性信息(好比 用戶,資源,namespace等)。一個API請求必須知足指定的策略才能繼續執行。segmentfault
有以下幾種策略方式:api
AlwaysDeny 阻止全部請求(一般用在測試環境);AlwaysAllow容許全部請求,若是不想用受權機制能夠這麼設置;ABAC容許用戶自定義的受權策略,ABAC的全寫爲:Attribute-Based Access Control(面向屬性的受權控制)。測試
在受權設置中,能夠用到的屬性設置有4個:spa
設置參數爲: --authorization_policy_file=SOME_FILENAME,這樣便開啓ABAC模式。
在指定的文件中,一行爲一個json對象,這個json對象包含幾個map格式,這些map對象有以下:對象
若是屬性沒有設置,那麼默認值爲0 或 false 或 空string。token
一個請求中設置的屬性決定了這個請求所能擁有的特性(好繞~)資源
當收到一個請求,就獲取了這個請求應該擁有的相應特性,若是某些屬性沒有設置,那麼會默認設置爲這個屬性類型對應的空值,如0,false,空string 等。get
若是在受權文件中某個屬性被重複定義了,那麼只要有一個知足受權條件,那麼這個請求就被認爲是被受權的。
若是在受權條件中將user設置爲空,那麼不會對任何用戶作限制; 若是在受權條件中獎namespace設置爲空,那麼不對任何namespace作限制。