您可以建立自訂權限原則,實現精微調權限管理。
背景資訊
許可權指在特定條件下 ,允許(Allow)或拒絕(Deny)對指定資源執行的相關操作。許可權的載體是授權策略。自訂許可權,即在自訂授權策略時定義某些許可權。
建立自訂權限原則方式,請參見建立方式。本文介紹通過指令碼編輯模式建立自訂權限原則的操作步驟。
操作步驟
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在權限原則頁面,單擊建立權限原則。
在建立權限原則頁面,單擊指令碼編輯頁簽。
輸入權限原則內容,然後單擊繼續編輯基本資料。
關於權限原則文法結構的詳情,請參見權限原則文法和結構。
權限原則中包含參數如下:
Action:表示要授權的操作。IoT操作都以
iot:
開頭。定義方式和樣本,請參見本文檔中Action定義。Effect : 表示授與類型,取值:Allow(允許)、Deny(拒絕)。
Resource :表示要授權的資源。
如果為RAM使用者授予訪問您的所有物聯網平台資源的許可權,取值為
*
。Condition :表示鑒權條件。IoT不支援Condition定義。
關於權限原則元素的詳情,請參見權限原則基本元素。
輸入權限原則名稱和備忘。
檢查並最佳化權限原則內容。
基礎權限原則最佳化
系統會對您添加的權限原則語句自動進行基礎最佳化。基礎權限原則最佳化會完成以下任務:
刪除不必要的條件。
刪除不必要的數組。
可選:進階權限原則最佳化
您可以將滑鼠懸浮在可選:進階策略最佳化上,單擊執行,對權限原則內容進行進階最佳化。進階權限原則最佳化功能會完成以下任務:
拆分不相容操作的資源或條件。
收縮資源到更小範圍。
去重或合并語句。
單擊確定。
Action 定義
Action是API的名稱。在建立IoT授權策略時,每個Action首碼均為iot:
,多個Action以英文逗號(,)分隔,支援使用星號(*)萬用字元。IoT API名稱定義,請參見IoT授權映射表。
下面介紹一些典型的Action定義樣本。
定義單個API。
"Action": "iot:CreateProduct"
定義多個API。
"Action": [ "iot:UpdateProduct", "iot:QueryProduct" ]
定義所有隻讀API,包含規則引擎資料流轉目標產品的許可權。
{ "Version": "1", "Statement": [ { "Action": [ "iot:Query*", "iot:List*", "iot:Get*", "iot:BatchGet*", "iot:Check*" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "rds:DescribeDBInstances", "rds:DescribeDatabases", "rds:DescribeAccounts", "rds:DescribeDBInstanceNetInfo" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:ListRoles", "Resource": "*", "Effect": "Allow" }, { "Action": [ "mns:ListTopic", "mns:GetTopicRef" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ots:ListInstance", "ots:GetInstance", "ots:ListTable", "ots:DescribeTable" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "fc:ListServices", "fc:GetService", "fc:GetFunction", "fc:ListFunctions" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "log:ListShards", "log:ListLogStores", "log:ListProject" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "cms:QueryMetricList" ], "Resource": "*", "Effect": "Allow" } ] }
定義所有讀寫API,包含規則引擎資料流轉目標產品的許可權。
{ "Version": "1", "Statement": [ { "Action": "iot:*", "Resource": "*", "Effect": "Allow" }, { "Action": [ "rds:DescribeDBInstances", "rds:DescribeDatabases", "rds:DescribeAccounts", "rds:DescribeDBInstanceNetInfo", "rds:ModifySecurityIps" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:ListRoles", "Resource": "*", "Effect": "Allow" }, { "Action": [ "mns:ListTopic", "mns:GetTopicRef" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ots:ListInstance", "ots:ListTable", "ots:DescribeTable", "ots:GetInstance" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "fc:ListServices", "fc:GetService", "fc:GetFunction", "fc:ListFunctions" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "log:ListShards", "log:ListLogStores", "log:ListProject" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "iot.aliyuncs.com" } } }, { "Action": [ "cms:QueryMetricList" ], "Resource": "*", "Effect": "Allow" } ] }
授權策略建立成功後,將此許可權授予RAM使用者,獲得授權的RAM使用者就可以進行許可權中定義的操作。建立RAM使用者和授權操作,請參見RAM使用者訪問。