入門篇:函數計算中角色和訪問策略的講解
阿裏雲函數計算是近期推出的一個無服務器的全托管的產品,使用者隻需編寫核心代碼並設置運行的條件,即可在函數計算以彈性、安全地運行。函數計算能自行維護服務器資源,網絡資源,以及消息分發和負載均衡等功能。
因為使用者需要把代碼部署在函數計算上運行,能調用函數的方式有很多,可以通過APIGateway、Fcli、控製台以及OSS等各種事件源來觸發函數執行,與此同時,函數計算作為執行單元需要授權交叉訪問其他產品,眾多的調用和模煳的安全界定,讓大家在使用函數計算對角色的授權會感到困惑,其實簡單來說,就是函數計算能在什麼情況下訪問哪些資源或者操作,以及那些來源能Invoke函數計算的執行,簡單按照使用方向來分如下兩層角色授權:
1、函數計算可以被授權訪問其他產品的操作權限?
2、那些事件源可以被授權來Invoke函數計算的執行?
這個是兩個層麵的授權,函數計算通過兩層授權來解決上麵兩個問題,第一個問題是Service的角色授權,第二個是Trigger角色的授權,其中:
Service層的角色授權:是解決函數計算可以申請訪問那些產品,在函數計算裏,執行策略是賦予函數計算本身,角色設置在service這層,service下的函數都繼承該角色的執行策略。
功能圖解:
授權給函數計算訪問其他雲產品的流程:
解釋:在service上的角色的策略主要是授權給Service能去訪問(read、delete、write等)其他雲產品的權限,例如產品OSS、OTS、SLS等,注意的是,為了防止訪問策略超出邊界,
在函數計算控製台上,關於Service層的權限,僅僅列出ReadOnly的權限,控製台如下圖:
如果想申請更多權限,可以在訪問控製中對該角色進行授權,詳見訪問控製的角色管理,下圖是使用RAM(訪問控製)設置其他權限的圖示:
是解決授權給某個產品的事件源可以invoke函數計算來執行代碼, 授權的粒度是到產品,例如授權給OSS,OSS的多個事件源(Put,delete,copy等都可以invoke函數運行)
框圖圖解:
授權事件源來觸發函數計算流程:
解釋:當用戶建立一個trigger的時候,需要配置事件內容,在配置事件源的時候,需要配置一個角色,當事件源被觸發的時候,使用該角色來執行函數,角色的授權是事件源產品本身,跟產品的事件無關。
在控製台上操作界麵如下(新版界麵會不一樣):
綜合上麵兩部分角色授權來看,簡單的說,在函數計算中,服務層的角色授權是賦予函數去訪問其他雲產品的權限,在觸發器的角色授權是授權給事件源可以調用函數計算做運算。
最後更新:2017-08-13 22:47:27