您可以通過標籤功能將函數進行分組,實現不同RAM使用者對不同分組的函數的操作許可權。例如阿里雲主帳號在Function Compute中建立了10個函數,需要將5個函數授權給dev團隊,另外5個函數授權給ops團隊。每個團隊只能管理被授權的函數,不能管理未被授權的函數。此時可以通過標籤功能將10個函數進行分組,然後為不同團隊(RAM使用者或使用者組)授予不同的許可權。
前提條件
已在Function Compute控制台建立10個函數,並為其中5個函數添加一對標籤,標籤鍵team,標籤值dev,為另外5個函數添加標籤鍵team,標籤值ops。關於函數標籤的配置說明,請參見標籤管理。
操作步驟
如果您操作的函數是在Function Compute2.0控制台建立的函數(名稱中含有$符號),標籤會綁定到2.0的服務,而不是綁定到函數,詳情請參見管理標籤。
為遵循最小授權原則,請不要為RAM使用者授予權限原則
AliyunFCFullAccess或AliyunFCReadOnlyAccess等權限等級過高的策略,否則將不能使用本文介紹的通過函數標籤分組管理函數。
在阿里雲主帳號下建立兩個RAM使用者。具體操作,請參見建立RAM使用者。
建立dev和ops兩個使用者組。具體操作,請參見建立建立RAM使用者組。
將已建立的兩個RAM使用者分別添加到使用者組dev和ops下。具體操作,請參見為RAM使用者組添加RAM使用者。
為兩個使用者組dev和ops授予不同權限原則。
權限原則分為系統權限原則和自訂權限原則,根據實際情境選擇合適的權限原則。本文以為使用者組授予自訂權限原則為例進行介紹。
假設給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使用者組授權。
分別使用兩個RAM使用者登入Function Compute控制台驗證結果。關於使用RAM使用者登入控制台的操作步驟,請參見RAM使用者登入阿里雲控制台。
您可以看到從屬於使用者組dev的RAM使用者僅擁有添加了標籤
team:dev的函數的操作許可權,從屬於使用者組ops的RAM使用者僅擁有添加了標籤team:ops的函數的操作許可權。