您可以建立自訂權限原則,實現精微調權限管理。
建立方式
RAM提供所見即所得 (WYSIWYG)的可視化編輯介面,您只需選擇效果、雲端服務、操作、資源和條件,就可以產生自訂權限原則。同時,提供的智能校正功能,協助您提高權限原則的正確性和有效性。該方式操作簡單,易於上手。
RAM提供JSON指令碼編輯介面,您需要按照權限原則文法和結構編寫自訂權限原則。該方式使用靈活,適用於對權限原則文法比較熟悉的使用者。
匯入原則範本:基於長期的業務實踐,RAM提供了常見情境的權限原則模板。例如:系統管理員、財務人員、網路系統管理員等。您只需要匯入合適的權限原則模板,然後基於模板進行簡單修改,就能一鍵輕鬆建立自訂策略。
匯入系統策略:您可以通過匯入一個系統原則範本,然後基於正常化的系統原則範本修改適合實際業務的內容,更加方便快捷地建立自訂權限原則。
通過可視化編輯模式建立自訂權限原則
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇。
在权限策略頁面,單擊创建权限策略。
在创建权限策略頁面,單擊可視化編輯頁簽。
可視化編輯器顯示策略語句表單,包含以下欄位:Effect(必填,可選 Allow 或 Deny,預設為 Allow)、Service(必填)、Action(必填)、Resource(必填)和 Condition(非必填)。需先選擇服務後才能配置 Action、Resource 和 Condition。頁面底部可通過 Add Statement 添加更多策略語句。
配置權限原則。
關於權限原則基本元素的詳情,請參見權限原則基本元素。
在效果地區,選擇允许或拒绝。
在服務地區,選擇雲端服務。
說明支援可視化編輯模式的雲端服務以控制台介面顯示為準。
在操作地區,選擇全部操作或指定操作。
系統會根據您上一步選擇的雲端服務,自動篩選出可以配置的操作。如果您選擇了指定操作,您需要繼續選擇具體的操作。
在资源地區,選擇全部資源或指定资源。
系統會根據您上一步選擇的操作,自動篩選出可以配置的資源類型。如果您選擇了指定资源,您需要繼續單擊添加資源,配置具體的資源ARN。您可以使用匹配全部功能,快速選擇對應配置項的全部資源。
說明為了權限原則的正常生效,對操作關聯的必要資源ARN標識了必要,強烈建議您配置該資源ARN。
在條件地區,單擊添加條件,配置條件。
條件包括阿里雲通用條件和服務級條件,系統會根據您前面配置的雲端服務和操作,自動篩選出可以配置的條件列表。您只需要選擇對應條件鍵配置具體內容。
單擊添加語句,重複上述步驟,配置多條權限原則語句。
單擊頁面上方的優化策略,然後單擊執行,對權限原則內容進行進階最佳化。
進階權限原則最佳化功能會完成以下任務:
拆分不相容操作的資源或條件。
收縮資源到更小範圍。
去重或合并語句。
在创建权限策略頁面,單擊确定。
在创建权限策略對話方塊,輸入策略名稱稱和备注,然後單擊确定。
通過指令碼編輯模式建立自訂權限原則
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇。
在权限策略頁面,單擊创建权限策略。
在创建权限策略頁面,單擊腳本編輯頁簽。
頁面顯示 JSON 編輯器,預設原則範本包含
Version(值為"1")和Statement數組,其中每條語句包括Effect(預設"Allow")、Action(待填寫)、Resource(待填寫)和Condition欄位。請根據實際需求在Action和Resource中填入對應的操作和資源。輸入權限原則內容。
關於權限原則文法結構的詳情,請參見權限原則文法和結構。
單擊頁面上方的優化策略,然後單擊執行,對權限原則內容進行進階最佳化。
進階權限原則最佳化功能會完成以下任務:
拆分不相容操作的資源或條件。
收縮資源到更小範圍。
去重或合并語句。
在创建权限策略頁面,單擊确定。
在创建权限策略對話方塊,輸入策略名稱稱和备注,然後單擊确定。
常見自訂權限原則配置樣本
以下樣本展示了通過指令碼編輯模式配置自訂權限原則時的常見情境及對應的策略 JSON,協助您快速完成策略編寫。
情境一:授權 RAM 使用者管理操作(帳號級)
RAM 使用者管理類 API(如 ram:CreateUser、ram:CreateAccessKey、ram:ListUsers 等)屬於帳號級操作,Resource 必須設定為 "*",且添加許可權時授權範圍必須選擇整個雲帳號,不能限定在資源群組內。
策略樣本:允許建立 RAM 使用者和 AccessKey。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateUser",
"ram:CreateAccessKey",
"ram:ListUsers"
],
"Resource": ["*"]
}
]
}
如果將此策略的授權範圍設定為指定資源群組,策略將不會生效。RAM 使用者管理類操作僅支援授權範圍為整個雲帳號。
情境三:僅允許 RAM 使用者修改自身密碼
如果只需要 RAM 使用者修改自己的登入密碼,授予 ram:ChangePassword 許可權即可,不建議授予 AliyunRAMFullAccess(RAM 完整存取),避免許可權過大帶來安全風險。
策略樣本:僅允許修改自身密碼。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:ChangePassword"
],
"Resource": ["*"]
}
]
}
情境四:授權唯讀訪問指定資源(以 ECS 執行個體為例)
當需要限制 RAM 使用者僅可查看指定 ECS 執行個體時,需在 Resource 中指定執行個體的 ARN。ARN 格式為 acs:ecs:{region}:{account-id}:instance/{instance-id},注意 instance 後必須帶斜杠 /。
策略樣本:僅允許查看指定 ECS 執行個體。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInstanceAttribute",
"ecs:DescribeInstanceStatus"
],
"Resource": [
"acs:ecs:*:*:instance/i-bp1xxxxxxxxxxxxxxxxx"
]
}
]
}
將 i-bp1xxxxxxxxxxxxxxxxx 替換為實際的 ECS 執行個體 ID。如需授權多個執行個體,在 Resource 數組中添加多個 ARN,用逗號分隔。
情境五:Log Service(SLS)精細化授權
Log Service的查詢操作需要指定 Project 和 Logstore 層級的 ARN。如果通過 SDK 調用仍報許可權不足,需額外補充 log:GetProject 和 log:GetLogStore 許可權。
策略樣本:允許查詢指定 Logstore 的日誌資料。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:GetLogStoreLogs",
"log:CreateStoreView",
"log:GetProject",
"log:GetLogStore"
],
"Resource": [
"acs:log:*:*:project/exampleproject",
"acs:log:*:*:project/exampleproject/logstore/examplelogstore"
]
}
]
}
將 exampleproject 和 examplelogstore 替換為實際的 Project 名稱和 Logstore 名稱。
情境六:配置可視化模式不支援的特定 Action
部分產品的 Action 無法通過可視化編輯模式選擇,需通過指令碼編輯模式手動設定。常見的此類 Action 包括:
產品 | Action | 說明 |
Server Guard(Security Center) |
| 查詢 CDN IP 列表 |
Milvus |
| Milvus 控制台登入要求的權限 |
營運編排服務(OOS) |
| 啟動執行 |
策略樣本:允許使用 OOS 執行營運編排任務。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oos:StartExecution",
"oos:ListExecutions",
"oos:GetExecutionTemplate"
],
"Resource": ["*"]
}
]
}
情境七:ECS 部署最小許可權
建立 ECS 執行個體涉及跨服務的 Action 組合,最小權限原則需同時包含執行個體操作許可權和網路、安全性群組的查詢許可權。
策略樣本:建立並部署 ECS 執行個體所需的最小許可權。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:RunInstances",
"ecs:DescribeInstances",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": ["*"]
}
]
}
Action 說明:ecs:RunInstances(建立並啟動執行個體)、ecs:DescribeInstances(查詢執行個體資訊)、vpc:DescribeVpcs 和 vpc:DescribeVSwitches(建立執行個體時選擇所屬專用網路和交換器)、ecs:DescribeSecurityGroups(選擇安全性群組)。
情境八:VPC 網路設定最小許可權
建立Virtual Private Cloud和交換器所需的最小權限原則如下。
策略樣本:建立 VPC 和交換器所需的最小許可權。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"vpc:CreateVpc",
"vpc:CreateVSwitch",
"vpc:CreateSecurityGroup",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches"
],
"Resource": ["*"]
}
]
}
Action 說明:vpc:CreateVpc(建立專用網路)、vpc:CreateVSwitch(建立交換器)、vpc:CreateSecurityGroup(建立安全性群組)、vpc:DescribeVpcs 和 vpc:DescribeVSwitches(查詢已有網路資源)。
許可權不足報錯排查方法
當 RAM 使用者調用 API 返回 AccessForbidden 錯誤或控制台提示許可權不足時,可按以下步驟排查:
使用 API Troubleshoot 工具定位缺失許可權
在阿里雲 API Troubleshoot 工具中輸入錯誤返回的 RequestID,工具會顯示具體缺失的 AuthAction,根據提示針對性補充許可權即可。
確認授權範圍是否匹配
帳號級操作(如
ram:CreateUser)的授權範圍必須為整個雲帳號;資源群組感知型 API 需確保策略授權給了正確的資源群組或整個雲帳號。如果授權範圍與策略中Resource的定義不一致,許可權將不會生效。檢查隱式依賴許可權
部分操作除主 Action 外,還需關聯的 Describe/List/Connect 類基礎許可權才能正常使用。例如:
Log Service(SLS):查詢日誌除
log:GetLogStoreLogs外,還需log:GetProject和log:GetLogStore許可權。Milvus:登入控制台除主操作許可權外,還需
CreateConnection、DbmConnect等串連類許可權。
建議參考對應產品的 RAM 授權文檔補全要求的權限。
策略長度超限最佳化方案
自訂權限原則的 JSON 內容不能超過 6144 位元組。超過限制時,CreatePolicy 介面返回 InvalidParameter.PolicyDocument.Length 錯誤(錯誤提示為 The policy document size is limited to 6144 bytes)。可通過以下方法最佳化策略長度。
使用萬用字元精簡策略
將多個同首碼的操作合并為萬用字元形式,減少策略長度。例如,將以下策略:
{"Action": ["oss:GetBucket", "oss:GetObject", "oss:GetBucketAcl", "oss:GetBucketLogging"]}
最佳化為:
{"Action": ["oss:Get*"]}
按功能拆分策略
將包含多種功能的大型策略拆分為多個獨立策略。例如,將讀寫操作拆分為兩個策略:
唯讀策略:
{"Action": ["oss:Get*", "oss:List*"]}寫入策略:
{"Action": ["oss:Put*", "oss:Delete*"]}
按資源拆分策略
按資源維度拆分策略。例如,將不同 Bucket 的授權拆分到不同策略中,每個策略只包含特定 Bucket 的許可權。
注意事項
使用可視化編輯模式配置策略時,避免勾選全部操作,優先選擇最小許可權集。
策略拆分後需要分別授權給 RAM 使用者或使用者組,會增加管理複雜度。
萬用字元可能導致過度授權,使用前需嚴格審查許可權範圍。
策略授權後立即生效,無需等待。
通過匯入策略建立自訂權限原則
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇。
在权限策略頁面,單擊创建权限策略。
在创建权限策略頁面,單擊導入策略。
在導入策略對話方塊右上方的下拉式清單中,選擇原則範本或系统策略,然後匯入策略。
選擇原則範本或系統策略。
部分原則範本需要根據實際業務配置模板參數。
選擇新匯入的權限原則模板的覆蓋規則。
預設新匯入的策略內容完全覆蓋已有的內容。您也可以選中不要覆蓋,追加新的語句到末尾,將新匯入的策略內容追加到已有內容的末尾。
單擊導入。
在可視化編輯或指令碼編輯模式下,查看和修改已匯入的權限原則內容。
單擊頁面上方的優化策略,然後單擊執行,對權限原則內容進行進階最佳化。
進階權限原則最佳化功能會完成以下任務:
拆分不相容操作的資源或條件。
收縮資源到更小範圍。
去重或合并語句。
在创建权限策略頁面,單擊确定。
在创建权限策略對話方塊,輸入策略名稱稱和备注,然後單擊确定。
常見問題
為什麼在可視化編輯模式下搜尋不到某些許可權或儲存策略失敗?
可能原因及解決方案如下:
部分 Action 未在可視化列表中更新:部分新上線或底層 API(如
oos:StartExecution)可能尚未同步到可視化編輯模式的 Action 列表,或萬用字元(如swas-open:*)在特定資源限制下存在解析衝突。建議切換至指令碼編輯模式手動輸入 Action。Action 名稱拼字錯誤:部分 API 的 Action 名稱存在單複數差異(如 ECS 的重新初始化磁碟操作為
ecs:ReInitDisks而非ecs:ReInitDisk),請核對對應產品的 API 文檔確認準確的 Action 名稱。系統策略未同步:如果搜尋不到特定系統策略(如
AliyunAccountCenterFullAccess),可查閱該系統策略的官方 JSON 內容,通過指令碼編輯模式建立同等效果的自訂策略。JSON 格式校正失敗:請檢查 JSON 文法是否正確,特別注意以下常見錯誤:
Resource欄位不能重複定義,多個資源需用逗號分隔寫在同一數組中。ARN 格式必須符合規範:
acs:<service>:<region>:<account-id>:<resource-type>/<resource-id>。
為什麼已授予 FullAccess 或自訂策略後仍無法存取控制台或執行操作?
可能原因及解決方案如下:
控制台訪問需要額外基礎許可權:部分產品控制台(如備案增值服務等)除業務許可權外,還需
PowerUserAccess等基礎控制台存取權限。單純的業務 FullAccess 可能不足以載入控制台頁面。請根據產品文檔確認控制台訪問所需的完整許可權組合。授權範圍與策略 Resource 不匹配:添加許可權時選擇的授權範圍(整個雲帳號或指定資源群組)需與策略中
Resource的定義一致。例如,OceanBase 等執行個體級操作需授權範圍為整個雲帳號,且策略中指定具體執行個體 ARN。策略衝突或 Deny 覆蓋:檢查是否存在
Deny語句覆蓋了Allow,或自訂策略與系統策略存在衝突。RAM 的策略評估邏輯為:顯式 Deny > Allow > 預設 Deny。對於複雜情境(如 MQTT 公網接入),如果自訂策略無效,建議優先使用官方推薦的系統策略(如AliyunMQFullAccess)驗證連通性,再逐步精微調權限。