策略語法
更新時間 2024-01-22 16:31:31
最近更新時間: 2024-01-22 16:31:31
分享文章
本節為您介紹策略語法。
下面以CTIAM的自定義策略為例,說明策略的語法。
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ctiam:user:query",
"ctiam:user:get",
"ctiam:userGroup:get",
"ctiam:policy:get",
"ctiam:user:create"
],
"Resource": [
"*"
],
"Condition": {
"StringEquals": {
"UserId": [
"12345678910"
]
}
}
}
]
}
策略結構
策略結構包括Version(策略版本號)和Statement(策略權限語句)兩部分,其中Statement可以有多個,表示不同的授權項。
圖 策略結構

策略參數
策略參數包含Version和Statement兩部分,下面介紹策略參數詳細說明。了解策略參數后,您可以根據場景自定義策略。
表 策略參數說明
參數 含義 值 Version 策略的版本。 1.1 :代表目前策略的通用版本 Statement:策略的授權語句 Effect:作用 定義Action中的操作權限是否允許執行。
Allow:允許執行。
Deny:不允許執行。
說明當同一個Action的Effect既有Allow又有Deny時,遵循Deny優先的原則。
Action:授權項 操作權限。 格式為“服務名:資源類型:操作”。授權項支持通配符號*,通配符號*表示所有。
支持在任意位置插入*,例如“ctiam:*:list*”代表匹配ctiam任意資源以list開頭標識的權限,可以匹配“ctiam:permission:listGroupPolicy”這一權限。Condition:條件 使策略生效的特定條件,包括條件鍵和運算符。 格式為“條件運算符:{條件鍵:[條件值1,條件值2]}”。
如果您設置多個條件,同時滿足所有條件時,該策略才生效。
示例:
"StringEquals":{"UserId":["12345678910"]}:表示當用戶調用時的用戶ID等于"12345678910"時該條statement生效。Resource:資源路徑 策略所作用的資源。 格式為“ctrn:服務編碼:region:accountId:資源描述”,region、accountId、資源描述都支持通配符號*,通配符號表示匹配所有。
示例:
?"*":表示所有資源。
?"ctrn:msap:*:123456789:project/testProject":表示對于任意資源池region下,account歸屬為123456789,該statement中的action只對指定的testProject生效。
- 條件鍵:條件鍵表示策略語句的Condition 元素中的鍵值,目前云服務支持條件鍵的情況詳見下表。
表 云服務支持條件鍵情況
| 云服務名稱 | 是否支持條件鍵 |
|---|---|
| 云通信-短信 | 否 |
| 彈性文件服務 | 否 |
| 分布式消息服務Kafka | 否 |
| 賬務 | 是 |
| 分布式消息服務RabbitMQ | 否 |
| 分布式消息服務RocketMQ | 否 |
| 云硬盤 | 是 |
| 天翼云電腦(政企版) | 是 |
| 內網DNS | 否 |
| CRM業務中臺 | 是 |
| 分布式緩存服務Redis版 | 否 |
| 彈性云主機 | 是 |
| 彈性負載均衡 | 否 |
| 鏡像服務 | 是 |
| 云監控 | 否 |
| 彈性伸縮服務 | 否 |
| 虛擬私有云 | 是 |
| 物理機 | 否 |
| 云硬盤備份 | 否 |
| 云主機備份 | 否 |
| 服務器安全衛士(原生版) | 否 |
| 密鑰管理 | 否 |
| 云間高速 | 否 |
| 統一身份認證 | 是 |
| 客服工單 | 是 |
| 容器云服務引擎CCSE | 是 |
| 微服務應用平臺MSAP | 否 |
| 活動與券 | 是 |
| 消息管理 | 是 |
| Web應用防火墻(原生版) | 否 |
| 云審計 | 否 |
| 企業組織 | 是 |
| VPC終端節點 | 否 |
| NAT網關 | 是 |
目前支持的條件鍵詳見下表。
表 條件鍵
| 條件鍵 | 類型 | 說明 |
|---|---|---|
| UserId | 字符串 | IAM用戶ID |
| CurrentTime | 時間 | 接收到鑒權請求的時間。以ISO 8601格式表示,例如:2012-11-11T23:59:59Z |
| SourceIp | IP地址 | 請求的來源IP |
運算符
運算符與條件鍵、條件值一起構成完整的條件判斷語句,當請求信息滿足該條件時,策略才能生效,詳見下表。
表 運算符
| 運算符 | 類型 | 說明 |
|---|---|---|
| StringEquals | 字符串 | 請求值等于條件值(區分大小寫) |
| StringNotEquals | 字符串 | 請求值不等于條件值(區分大小寫) |
| StringEqualsIgnoreCase | 字符串 | 請求值等于條件值 |
| StringNotEqualsIgnoreCase | 字符串 | 請求值不等于條件值 |
| StringMatch | 字符串 | 請求值包含條件值 |
| DateLessThan | 時間 | 請求值早于條件值 |
| DateLessThanEquals | 時間 | 請求值早于或等于條件值 |
| DateGreaterThan | 時間 | 請求值晚于條件值 |
| DateGreaterThanEquals | 時間 | 請求值晚于或等于條件值 |
| IpAddress | IP地址 | 請求值在條件值所設置的IP地址范圍內 |
| NotIpAddress | IP地址 | 請求值不在條件值所設置的IP地址范圍內 |