RAM Policy是附加在RAM身份(使用者、使用者組、角色)上的權限原則。管理RAM使用者或角色對錶格儲存資源的存取權限時,可通過RAM Policy定義該身份可以執行的操作和可以訪問的資源範圍。
工作原理
RAM Policy採用基於身份的授權模式,策略附加在RAM使用者、使用者組或RAM角色上。策略定義該身份在滿足指定條件(Condition)時,可對哪些資源(Resource)執行哪些操作(Action)。
RAM身份發起訪問請求時,系統綜合評估所有相關策略,按以下順序判定許可權:
顯式拒絕優先:任何策略中存在匹配請求的Deny規則,請求立即被拒絕。
尋找顯式允許:不存在Deny規則時,若存在匹配的Allow規則,請求被允許。
預設拒絕:既無Deny也無Allow,請求預設被拒絕。
Table Store支援以下兩種RAM Policy類型:
系統策略:由阿里雲預置,覆蓋常用授權情境,僅可使用不可修改。
自訂策略:由使用者自行建立和維護,可精細控制資源範圍、操作類型和生效條件。
使用系統權限原則授權
系統權限原則由阿里雲建立,可在RAM控制台直接為使用者身份授權。以下以RAM使用者為例。
前往RAM使用者列表,單擊目標使用者操作列的新增授权。
Table Store支援以下三種系統策略,在搜尋方塊中輸入目標策略名稱稱並勾選:
AliyunOTSFullAccess:擁有管理Table Store的許可權。
AliyunOTSReadOnlyAccess:擁有隻讀訪問Table Store的許可權。
AliyunOTSWriteOnlyAccess:擁有隻寫訪問Table Store的許可權。
單擊確認新增授權,完成使用權限設定。
使用自訂權限原則授權
自訂策略由使用者自主建立和維護,授權分兩步:先建立權限原則,再將策略關聯到目標使用者身份。
步驟一:建立自訂權限原則
前往權限原則列表,單擊创建权限策略。
選擇腳本編輯,在編輯框內輸入JSON格式的權限原則。
樣本權限原則:允許對名為
example-instance的執行個體及該執行個體下所有資料表的全部操作。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ots:*", "Resource": [ "acs:ots:*:*:instance/example-instance", "acs:ots:*:*:instance/example-instance/table/*" ] } ] }完整的權限原則包含Version(版本號碼)和Statement(授權語句)。
Version:權限原則版本,固定為
1,不允許修改。Statement:策略主體,包含一條或多條授權或拒絕規則。每條規則包含Effect(授權效力)、Action(授權操作)、Resource(授權資源)和Condition(授權條件)。
策略元素
說明
Effect
策略的效力,可選值為
Allow(允許)或Deny(拒絕)。Action
對資源執行的具體操作,需添加
ots:首碼,支援使用萬用字元*。Resource
策略作用的資源範圍,格式為
acs:ots:[region]:[user_id]:instance/[instance_name]/table/[table_name]。Condition
策略生效的條件。
配置多個條件時,所有條件必須同時滿足(AND關係),策略才會生效。
完整的策略元素及文法說明,請參見授權文法與元素。
單擊确定,輸入策略名称,然後單擊确定,完成自訂策略建立。
步驟二:為使用者身份進行授權
將上一步建立的策略關聯到目標使用者身份。以下以RAM使用者為例。
前往RAM使用者列表,單擊目標使用者操作列的新增授权。
在搜尋方塊中輸入自訂策略名稱稱,勾選目標策略。
單擊確認新增授權,完成使用權限設定。
常見授權情境
以下為RAM Policy在Table Store中的典型授權情境,每個情境提供完整的JSON策略樣本。
情境一:組合IP、時間和傳輸協議條件授權讀寫權限
允許IP地址在10.10.XX.XX/24網段的使用者對online-01和online-02執行個體及其下所有資料表執行讀寫操作。訪問要求:僅限2028-01-01 00:00:00之前,且必須通過HTTPS訪問。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ots:*",
"Resource": [
"acs:ots:*:*:instance/online-01",
"acs:ots:*:*:instance/online-01/table*",
"acs:ots:*:*:instance/online-02",
"acs:ots:*:*:instance/online-02/table*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"10.10.XX.XX/24"
]
},
"DateLessThan": {
"acs:CurrentTime": "2028-01-01T00:00:00+08:00"
},
"Bool": {
"acs:SecureTransport": "true"
}
}
}
]
}情境二:拒絕指定IP對特定執行個體的寫入請求
拒絕IP地址為10.10.XX.XX的使用者對華北2(北京)地區中名稱以online或product開頭的執行個體下所有資料表執行寫操作。該規則不限制對執行個體本身的操作。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ots:Create*",
"ots:Insert*",
"ots:Put*",
"ots:Update*",
"ots:Delete*",
"ots:BatchWrite*"
],
"Resource": [
"acs:ots:cn-beijing:*:instance/online*/table*",
"acs:ots:cn-beijing:*:instance/product*/table*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"10.10.XX.XX"
]
}
}
}
]
}情境三:限制RAM使用者只能管理指定執行個體
僅允許RAM使用者管理指定的執行個體。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ots:ListInstance",
"ots:ListTagResources"
],
"Resource": "acs:ots:*:*:instance/*"
},
{
"Effect": "Allow",
"Action": "ots:*",
"Resource": [
"acs:ots:*:*:instance/yourInstance",
"acs:ots:*:*:instance/yourInstance/table*"
]
},
{
"Effect": "Allow",
"Action": "cms:Query*",
"Resource": "*"
}
]
}策略中各Statement的作用說明如下。
權限原則 | 說明 |
| Table Store控制台的概覽頁面需載入執行個體列表和標籤列表,因此該Statement授予RAM使用者對應的查詢許可權。 說明 RAM使用者通過控制台管理執行個體時必須授予此許可權。 |
| 授予RAM使用者擁有 |
| 授予RAM使用者CloudMonitor的許可權,允許查看執行個體和表的監控資料。 |