官網地址html
1. 效力(Effect)
受權效力包括兩種:容許(Allow)和拒絕(Deny)。
2. 資源(Resource)
資源是指被受權的具體對象。
3. 操做(Action)
操做是指對具體資源的操做。
4. 限制條件(Condition)
限制條件是指受權生效的限制條件。安全
1. Effect(效力)
Effect 取值 爲 Allow 或 Deny。好比,阿里雲
"Effect": "Allow"
2. Action(操做列表)
Action 支持多值,取值爲雲服務所定義的 API 操做名稱,其格式定義以下:code
<service-name>:<action-name>
格式說明htm
描述樣例對象
"Action": ["oss:ListBuckets", "ecs:Describe*", "rds:Describe*"]
3. Resource(資源列表)
Resource 一般指資源,即操做對象,好比 ECS 虛擬機實例,OSS存儲桶。咱們使用以下格式來命名阿里雲服務的資源命名。blog
acs:<service-name>:<region>:<account-id>:<relative-id>
格式說明:接口
描述樣例資源
"Resource": ["acs:ecs:*:*:instance/inst-001", "acs:ecs:*:*:instance/inst-002", "acs:oss:*:*:mybucket", "acs:oss:*:*:mybucket/*"]
條件限制(Condition)
條件塊(Condition Block)由一個或多個條件子句構成。一個條件子句由條件操做類型、條件關鍵字和條件值組成。條件操做類型和條件關鍵字在下文中會有詳細描述。
條件塊判斷邏輯
是否知足條件的判斷原則以下圖所示:
圖 2. 是否知足條件的判斷原則
具體規則以下:字符串
條件操做類型
支持以下條件操做類型:字符串類型(String)、數字類型(Numeric)、日期類型(Date and time)、布爾類型(Boolean)和 IP 地址類型(IP address)。
每種條件操做類型分別支持以下的方法:
string | Numeric | Date and time | Boolean | IP address |
---|---|---|---|---|
StringEquals | NumericEquals | DateEquals | Bool | IpAddress |
StringNotEquals | NumericNotEquals | DateNotEquals | - | NotIpAddress |
StringEqualsIgnoreCase | NumericLessThan | DateLessThan | - | - |
StringNotEqualsIgnoreCase | NumericLessThanEquals | DateLessThanEquals | - | - |
StringLike | NumericGreaterThan | DateGreaterThan | - | - |
StringNotLike | NumericGreaterThanEquals | DateGreaterThanEquals | - | - |
條件關鍵字(Condition-key
阿里雲服務保留的條件關鍵字命名格式爲:
acs:<condition-key>
阿里雲服務保留的通用條件關鍵字以下:
通用條件關鍵字 |類型 |說明
--|--|--
acs:CurrentTime |Date and time |Web Server 接收到請求的時間,以 ISO 8601 格式表示,如 2012-11-11T23:59:59Z
acs:SecureTransport |Boolean |發送請求是否使用了安全信道,如 HTTPS
acs:SourceIp |IP address |發送請求時的客戶端 IP 地址
acs:MFAPresent |Boolean |用戶登陸時是否使用了多因素認證(二步認證)
雲產品能夠定義產品級別的條件關鍵字,格式以下:
<service-name>:<condition-key>
部分雲產品定義的條件關鍵字以下:
產品名稱 | 條件關鍵字 | 類型 | 說明 |
---|---|---|---|
ECS | ecs:tag/
|
String | ECS資源的標籤關鍵字,可由用戶自定義 |
RDS | rds:ResourceTag/
|
String | RDS資源的標籤關鍵字,可由用戶自定義 |
OSS | oss:Delimiter | String | OSS對Object名字進行分組的分隔符 |
OSS | oss:Prefix | String | OSS Object名稱的前綴 |
Policy 樣例
以下所示的 Policy 樣例中,包含兩條受權語句(Statement):
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:Describe*", "Resource": "acs:ecs:cn-hangzhou:*:*" }, { "Effect": "Allow", "Action": [ "oss:ListObjects", "oss:GetObject" ], "Resource": [ "acs:oss:*:*:mybucket", "acs:oss:*:*:mybucket/*" ], "Condition":{ "IpAddress": { "acs:SourceIp": ["42.120.88.10", "42.120.66.0/24"] } } } ] }