Function Compute支援將相同作用的函數資源通過標籤Tag歸類,便於搜尋和資源彙總。您還可以通過標籤功能將函數進行分組,可以實現不同角色對不同分組的函數擁有不同的操作許可權。本文介紹標籤功能的使用說明、使用限制以及如何在Function Compute控制台操作標籤等。
使用說明
標籤與函數資源之間是多對多的關係。
每個標籤都由一對索引值對組成。
標籤可以是授權的一個條件,為一個確定範圍內的資源做精細粒度授權。
函數下的資源,版本、別名、函數和觸發器均繼承函數的標籤。
只要API的調用上填寫了函數,都支援標籤鑒權。
不同版本的函數都是相同的標籤,即標籤修改影響的標籤鑒權針對的是所有版本和別名的函數。
使用限制
標籤鍵(Key)的最大長度為64個Unicode字元,區分大小寫。
標籤值(Value)的最大長度為128個Unicode字元,區分大小寫。
每個資源的標籤數不得超過20個。
標籤鍵(Key)支援ASCII、數字、中文字元和特殊字元
-\.!@#$%?/^&*)(+={}[\\]",'<>~·`:;|_
。不支援中文標點符號,不支援以aliyun
或acs:
開頭,不允許包含http://
和https://
,不允許為空白字串。標籤值(Value)支援ASCII、數字、中文字元和特殊字元
-\.!@#$%?/^&*)(+={}[\\]",'<>~·`:;|_
。不支援中文標點符號,不允許包含http://
和https://
,允許為空白字串。各地區間的標籤資訊不互連。例如,在華東1(杭州)地區建立的標籤在華東2(上海)地區不可見。
建立標籤
登入Function Compute控制台,在左側導覽列,單擊函數。
在頂部功能表列,選擇地區,然後在函數頁面,單擊目標函數。
在函數詳情頁面,將滑鼠移至函數名稱後的表徵圖,然後在氣泡中單擊綁定。
在編輯標籤對話方塊中,填寫標籤鍵和標籤值,單擊確認,然後單擊關閉。
添加成功後,將滑鼠再次移至函數名稱後的表徵圖,您可以看到剛才添加的標籤。您還可以根據需要,參考控制台介面提示,更新或刪除標籤。
如果您操作的函數是在Function Compute2.0控制台建立的函數(名稱中含有$符號),標籤會綁定到2.0的服務,而不是綁定到函數,詳情請參見管理標籤。
使用標籤對函數分組授權
假設您在Function Compute中建立了10個函數,需要將5個函數授權給dev團隊,另外5個函數授權給ops團隊。您希望每個團隊只能查看被授權的函數,不能查看未被授權的函數。此時,您可以通過標籤功能將各團隊進行分組,然後給不同分組的團隊授予不同的許可權。
您需要給其中5個函數添加一對標籤,標籤鍵是team,標籤值是dev;另外5個函數添加另一對標籤,標籤鍵是team,標籤值是ops。
將5個授權給dev團隊的函數打上team:dev標籤,5個授權給ops團隊的函數打上team:ops標籤。具體操作,請參見建立標籤。
建立兩個RAM使用者。具體操作,請參見建立RAM使用者。
建立dev和ops兩個使用者組。具體操作,請參見建立RAM使用者組。
將已建立的兩個RAM使用者分別添加到使用者組dev和ops下。具體操作,請參見為RAM使用者組添加RAM使用者。
為兩個使用者組dev和ops授予不同的許可權。
權限原則分為系統權限原則和自訂權限原則,根據實際情境選擇合適的權限原則。
為使用者組授予系統權限原則。
具體操作,請參見為RAM使用者組授權。
為使用者組授予自訂權限原則。
假設給dev團隊建立的自訂策略名稱稱為policyForDevTeam,策略樣本如下。
{ "Statement": [ { "Action": "fc:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "fc:tag/team": "dev" } } }, { "Action": "fc:ListFunctions", "Effect": "Allow", "Resource": "*" }, { "Action": "fc:ListTagResources", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
假設給ops團隊建立的自訂策略名稱稱為policyForOpsTeam,策略樣本如下。
{ "Statement": [ { "Action": "fc:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "fc:tag/team": "ops" } } }, { "Action": "fc:ListFunctions", "Effect": "Allow", "Resource": "*" }, { "Action": "fc:ListTagResources", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
分別為使用者組dev和ops授予自訂權限原則policyForDevTeam和policyForOpsTeam。具體操作,請參見為RAM使用者組授權。
完成授權後,分別使用處於dev使用者組和處於ops使用者組的RAM使用者登入Function Compute控制台,具體操作請參見RAM使用者登入阿里雲控制台。您可以看到,處於dev使用者組的RAM使用者只能操作標籤為team:dev的函數,處於ops使用者組的RAM使用者只能操作標籤為team:ops的函數。