自訂授權可以滿足使用者個人化的授權策略需求,RAM控制台提供了可視化配置和指令碼配置兩種配置方式。本文為您介紹授權的基本概念、使用情境、基本步驟和授權的文法、樣本。
使用情境
由於系統策略的授權粒度比較粗,很多時候並不能滿足您的細粒度許可權控制的需求,此時可以基於RAM Policy實現自訂授權。
例如您的業務需要某一個RAM使用者只有查詢直播截圖配置的許可權,就可以通過自訂授權進行實現。
授權操作
此處我們將通過兩個樣本,介紹如何進行自訂授權。
樣本1,授權查詢直播截圖配置
如您現在業務需要給一個RAM使用者只授權查詢直播截圖配置的許可權,則可以參考以下5步進行實現:
進入建立權限原則頁面,選擇服務:媒體服務->ApsaraVideo for Live。
展開讀操作列表,輸入DescribeLiveSnapshotConfig(查詢直播截圖配置介面)進行篩選,選中篩選結果。
點擊繼續編輯基本資料。
輸入權限原則名稱,點擊確定。
建立RAM使用者並授權建立的權限原則,具體操作可參見建立RAM使用者並授權。
完成之後通過建立的RAM使用者調用DescribeLiveSnapshotConfig介面,會返回正確的資料。調用其他的介面會提示使用者無許可權。
樣本2,授權查詢直播截圖配置(限制IP)
在樣本1中已經實現了對查詢直播截圖配置介面的許可權控制。若此時您還想在其基礎之上進行顆粒度更細的控制,例如限制IP,則可以參考以下5步進行實現:
進入權限原則列表頁面,查詢出在樣本1中建立的權限原則。
點擊權限原則名稱,進入權限原則詳情頁。
點擊修改策略內容進入修改頁,並選擇可視化編輯頁簽。
點擊條件選項,進行添加條件。條件鍵選擇acs:SourceIp,運算子選擇IpAddress,條件值輸入IP地址。
點擊繼續編輯基本資料,之後點擊確定。
完成之後,只有調用介面的IP地址正確才會返回資料,否則會提示沒有許可權操作。
若想瞭解更多自訂授權相關操作,可參見建立自訂權限原則。
授權文法
細心的您可能已經發現,在操作授權的過程中,權限原則詳情頁中有一個策略內容頁簽對權限原則進行了描述。以樣本2為例,權限原則內容如下:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "live:DescribeLiveSnapshotConfig",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"127.0.0.1"
]
}
}
}
]
}
參數解釋如下:
Version
Version定義了Policy的版本,固定設定為1。
Statement
通過Statement描述授權語義,其中可以根據業務情境包含多條語義,每條包含對Action、Effect、Resource 和 Condition的描述。每次請求,系統會逐條依次匹配檢查,所有匹配成功的Statement會根據Effect的設定不同分為通過(Allow)、禁止(Deny),其中禁止(Deny)的優先。如果匹配成功的都為通過,該條請求即鑒權通過。如果匹配成功有一條禁止,或者沒有任何條目匹配成功,該條請求被禁止訪問。
Effect
Effect設定授權效果,授權效果包括兩種:允許(Allow)和拒絕(Deny)
Action
直播支援的Action操作與API一一對應,格式為
live:API名稱
,如上面樣本的直播截圖配置介面操作:live:DescribeLiveSnapshotConfig
,注意多個使用英文逗號分隔。通過指定授權的Action列表,就能組合出想要的許可權分組。所有可用操作,請參見API概覽。
Resource
Resource指代的是Live上面的某個具體的資源或者某些資源(支援萬用字元*),Resource的規則是
acs:{ramCode}:{region}:{accountId}:{relative}
。Resource也是一個列表,可以有多個Resource。其中ramCodeApsaraVideo for Live服務涉及三種:live,cdn,live-interaction。region欄位暫不支援,請設定為*
。accountId為帳號ID。relative為具體資源,一般設定為*,部分介面支援具體資源控制。當然您也可以直接像以上樣本,將resource設定為*。說明通過權限原則可視化配置,會自動匹配介面對應的ramCode。
Condition
Condition代表Policy授權的一些條件,對訪問來源等進行限制,為可選項。
支援的條件如下:
Condition
功能
合法取值
acs:SourceIp
指定 IP 位址或網段
普通的IP,支援萬用字元*
acs:SecureTransport
是否是 HTTPS 協議
true或者false
acs:MFAPresent
使用者登入時是否使用了多因素認證
true或者false
acs:CurrentTime
指定合法的訪問時間(雲端接收到請求的時間)
ISO8601格式,例如:2012-11-11T23:59:59Z
指令碼編輯
在您瞭解授權文法之後,可能已經想到通過指令碼編輯來進行權限原則配置。例如我們在樣本2的基礎之上需要通過指令碼編輯增加一個127.0.0.2的IP,則可以參考以下5步通過指令碼編輯進行添加:
進入權限原則列表頁面,查詢出在樣本1中建立的權限原則。
點擊權限原則名稱,進入權限原則詳情頁。
點擊修改策略內容進入修改頁,並選擇指令碼編輯頁簽。
在acs:SourceIp內增加IP127.0.0.2。
點擊繼續編輯基本資料,之後點擊確定,便完成了IP地址添加。
完成之後,權限原則內容如下:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "live:DescribeLiveSnapshotConfig",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"127.0.0.1",
"127.0.0.2"
]
}
}
}
]
}
版本管理
某些時候,我們在更新權限原則之後,因為一些原因,需要回退到之前的權限原則,就可以通過版本管理實現。具體操作:在權限原則詳情頁,選擇版本管理頁簽,對回退的目標版本進行設定目前的版本操作。
一個權限原則,最多儲存5個版本。
進階使用
此時您已經瞭解了如何進行自訂授權,若現在有這樣一個業務情境:
您對添加直播截圖配置介面進行許可權控制。
只能對網域名稱A和網域名稱B進行操作。
針對此類授權需求,可通過資源控制參考以下6個步驟進行授權操作:
進入建立權限原則頁面,選擇服務:媒體服務->ApsaraVideo for Live。
展開寫操作列表,輸入AddLiveAppSnapshotConfig(添加直播截圖配置介面)進行篩選,選中篩選結果。
在資源選項中,選擇指定資源,然後添加資源。帳號輸入*,資源輸入domainA。重複操作添加domainB。
點擊繼續編輯基本資料。
輸入權限原則名稱,點擊確定。權限原則描述如下:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "live:AddLiveAppSnapshotConfig", "Resource": [ "acs:cdn:*:*:domain/domainA", "acs:cdn:*:*:domain/domainB" ] } ] }
對RAM使用者授權建立的權限原則。
完成操作之後,授權的RAM使用者只能對domainA與domainB兩個網域名稱進行添加直播截圖配置。
因各介面支援的資源控制格式不盡相同,所以在進行顆粒度較細的許可權配置時,建議您通過可視化編輯進行配置。