1. 前言
aliyun ram 權限系統功能強大,大部分雲産品實作了極其細粒度的權限控制,但是在預設的管理管理中,往往隻有讀寫2種權限,對産品具體設定分細粒度和通路控制權限可以實作根據應用配置設定不同産品的權限。

應用設定與雲資源以及人員的關系,對于已經上雲的資源,按照應用所使用的雲資源以及人員在應用的角色(owner,PE,Developer,reporter),配置相應權限;沒有上雲的産品,比如 vipserer,sunfire 等,先改造實作 aliyun ram 權限控制,然後配置權限。
2. ECS,SLB等雲資源權限控制:
ecs,slb,vpc 等資源,可以按照通用的 ram 配置方式配置相應讀寫權限,具體參考:
- 雲伺服器(ECS): 點選連結
- 負載均衡(SLB):
- 雲資料庫(RDS):
- 日志服務(SLS):
- 雲監控: 注:雲監控目前不支援細粒度資源描述,資源授權用“*”通配。
範例:
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs: AddTags",
"ecs:DescribeInstances"
],
"Resource": [
"acs:ecs:$regionid:15619224785*****:instance/i-bp1bzvz55uz27hf*****"
],
"Effect": "Allow"
}
]
}
3. vipserver,switch,sentinel 等自部署産品實作RAM權限:
RAM 權限政策與文法:
參考新部署基礎設施雲産品接入過程:
4. Diamond(ACM)
前提條件:
按照 EDAS 的 namespace 區分環境,按照 ACM 的 Group 區分不同的應用關聯,應用和 ACM 的 Group 建立對應關系。
建立 ram 子使用者,設定自定義政策授予子使用者。
設定方式:
{
"Version": "1",
"Statement": [
{
"Action": [
"acms:R"
],
"Resource": [
"*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/GROUP",
"*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/GROUP_1"
],
"Effect": "Allow"
}
]
}
完整控制權限:"acms:*"
某個 namespace 下所有group,則不需要設定 /Group 段即可,不支援 group_name* 這樣的通配符;
多個 group 就列出多行;
所有 namespaces 的某個一 group,可以使用:
"Resource": [
"*:*:*:*:cfg/*/DEFAULT_GROUP"
]
通路控制:
通過通路 acm 資源的賬号擁有的賬号的( ak/sk)權限調節。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"NotIpAddress": {
"acs:SourceIp": [
"172.16.0.0/30"
"127.0.0.1"
]
}
}
}
]
}
綜上所述,可以通過應用人員,應用與 ACM 關系關聯,按照上述政策建立自定義政策,可以控制應用人員的讀寫ACM 配置。
5. MetaQ
前置條件:
建立 ram 子使用者,設定自定義政策授予子使用者。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mq:SUB",
"mq:OnsInstanceBaseInfo"
],
"Resource": [
"acs:mq:*:*:{instanceId}"
]
},
{
"Effect": "Allow",
"Action": [
"mq:PUB",
"mq:SUB"
],
"Resource": [
"acs:mq:*:*:appName*",
"acs:mq:*:*:xapp*"
]
},
{ // 授予 Group 的權限
"Effect":"Allow",
"Action":[
"mq:SUB"
],
"Resource":[
"acs:mq:*:*:{instanceId}%{groupId}"
]
}
]
}
對應規則參考:
根據應用對應的 topic 和 group,設定應用權限,區分讀寫權限。
Top,Group 支援通配符。
通路控制方法與 ACM 類似。