閱讀61 返回首頁    go 阿裏雲 go 技術社區[雲棲]


入門篇:函數計算中角色和訪問策略的講解

阿裏雲函數計算是近期推出的一個無服務器的全托管的產品,使用者隻需編寫核心代碼並設置運行的條件,即可在函數計算以彈性、安全地運行。函數計算能自行維護服務器資源,網絡資源,以及消息分發和負載均衡等功能。

因為使用者需要把代碼部署在函數計算上運行,能調用函數的方式有很多,可以通過APIGateway、Fcli、控製台以及OSS等各種事件源來觸發函數執行,與此同時,函數計算作為執行單元需要授權交叉訪問其他產品,眾多的調用和模煳的安全界定,讓大家在使用函數計算對角色的授權會感到困惑,其實簡單來說,就是函數計算能在什麼情況下訪問哪些資源或者操作,以及那些來源能Invoke函數計算的執行,簡單按照使用方向來分如下兩層角色授權:

1、函數計算可以被授權訪問其他產品的操作權限?

2、那些事件源可以被授權來Invoke函數計算的執行?

這個是兩個層麵的授權,函數計算通過兩層授權來解決上麵兩個問題,第一個問題是Service的角色授權,第二個是Trigger角色的授權,其中:

Service層的角色授權:是解決函數計算可以申請訪問那些產品,在函數計算裏,執行策略是賦予函數計算本身,角色設置在service這層,service下的函數都繼承該角色的執行策略。

功能圖解:

6179f47e1955c9665466078fbf300410d3cca5b1

授權給函數計算訪問其他雲產品的流程

1a4f4f45aa0d7a98b042ddced67493ae2c14fbbd

解釋:在service上的角色的策略主要是授權給Service能去訪問(read、delete、write等)其他雲產品的權限,例如產品OSS、OTS、SLS等,注意的是,為了防止訪問策略超出邊界,

在函數計算控製台上,關於Service層的權限,僅僅列出ReadOnly的權限,控製台如下圖:

e17a95f5fd1f11f113042f5625b8bd376f3c2d22

如果想申請更多權限,可以在訪問控製中對該角色進行授權,詳見訪問控製的角色管理,下圖是使用RAM(訪問控製)設置其他權限的圖示:

58bb5a6eb0191d4b92f6f6cbc4583ab63790b269

是解決授權給某個產品的事件源可以invoke函數計算來執行代碼, 授權的粒度是到產品,例如授權給OSSOSS的多個事件源(Putdeletecopy等都可以invoke函數運行)

框圖圖解:

107b31b896c3e783a4982c0755b49861a52e4067

授權事件源來觸發函數計算流程:

5f2e0ed03716baf980faab9e999516ba2e9715b3

解釋:當用戶建立一個trigger的時候,需要配置事件內容,在配置事件源的時候,需要配置一個角色,當事件源被觸發的時候,使用該角色來執行函數,角色的授權是事件源產品本身,跟產品的事件無關。

在控製台上操作界麵如下(新版界麵會不一樣):

38c65971c22e6ebf38e47a7d69e6c635413fbfcb

綜合上麵兩部分角色授權來看,簡單的說,在函數計算中,服務層的角色授權是賦予函數去訪問其他雲產品的權限,在觸發器的角色授權是授權給事件源可以調用函數計算做運算。

最後更新:2017-08-13 22:47:27

  上一篇:go  Android API兼容性栗子
  下一篇:go  基於DataHub采集數據的營銷報告分析