如果系統預置的ES權限,不滿足您的授權要求,可以創建自定義策略。自定義策略中可以添加的授權項(Action)請參考云搜索服務API參考中的權限策略和授權項。
目前支持以下兩種方式創建自定義策略:
- 可視化視圖創建自定義策略:無需了解策略語法,按可視化視圖導航欄選擇云服務、操作、資源、條件等策略內容,可自動生成策略。
- JSON視圖創建自定義策略:可以在選擇策略模板后,根據具體需求編輯策略內容;也可以直接在編輯框內編寫JSON格式的策略內容。
- 具體創建步驟請參見:統一身份認證用戶指南中有關創建自定義策略的內容。本章為您介紹常用的ES自定義策略樣例。
ES系統策略樣例
示例1:授權用戶ES FullAccess權限,即給用戶配置ES的所有權限。
開啟ES FullAccess權限,需要依賴OBS和IAM權限,除了配ES FullAccess還要加上IAM ReadOnlyAccess和OBS的所有權限。如果用戶需要查看集群監控信息,則需要依賴CES的只讀權限。如果用戶需要使用終端節服務,除了配置VPCEndpoint Administrator權限,還需要同時配置VPC Administrator、Server Administrator以及DNS Administrator權限。如果用戶需要使用標簽功能,需要配置TMS Administrator權限。

說明如果是子賬戶,需要同時設置GetBucketStoragePolicy、GetBucketLocation、ListBucket權限,才能看到OBS桶。
1.授權用戶ES FullAccess權限。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"ES:*:*",
"vpc:securityGroups:get",
"vpc:securityGroups:create",
"vpc:securityGroups:delete",
"vpc:securityGroupRules:get",
"vpc:securityGroupRules:create",
"vpc:securityGroupRules:delete",
"vpc:vpcs:list",
"vpc:privateIps:list",
"vpc:ports:get",
"vpc:ports:create",
"vpc:ports:update",
"vpc:ports:delete",
"vpc:quotas:list",
"vpc:subnets:get",
"ecs:cloudServerFlavors:get",
"ecs:serverInterfaces:use",
"ecs:cloudServers:addNics",
"ecs:quotas:get",
"evs:types:get",
"evs:quotas:get"
],
"Effect": "Allow"
}
]
}
2.授權用戶IAM ReadOnlyAccess自定義策略。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"iam:*:get*",
"iam:*:list*",
"iam:*:check*"
],
"Effect": "Allow"
}
]
}
3.授權用戶OBS的所有權限。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"OBS:*:*"
],
"Effect": "Allow"
}
]
}
4.(可選)授權用戶查看集群監控信息權限。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"ces:*:get*",
"ces:*:list*"
],
"Effect": "Allow"
}
]
}
5.(可選)授權用戶VPCEndpoint Administrator權限。
{
"Version": "1.0",
"Statement": [
{
"Action": [
"VPCEP:endpoint_services:*"
],
"Effect": "Allow"
}
],
"Depends": [
{
"catalog": "BASE",
"display_name": "Server Administrator"
},
{
"catalog": "VPC",
"display_name": "VPC Administrator"
},
{
"catalog": "DNS",
"display_name": "DNS Administrator"
}
]
}
6.(可選)授權VPC Administrator權限。
{
"Version": "1.0",
"Statement": [
{
"Action": [
"vpc:vpcs:*",
"vpc:routers:*",
"vpc:networks:*",
"vpc:subnets:*",
"vpc:ports:*",
"vpc:privateIps:*",
"vpc:peerings:*",
"vpc:routes:*",
"vpc:lbaas:*",
"vpc:vpns:*",
"ecs:*:get",
"ecs:*:list",
"elb:*:get",
"elb:*:list"
],
"Effect": "Allow"
}
]
}
7.(可選)授權Server Administrator權限。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"ecs:*:*",
"evs:*:get",
"evs:*:list",
"evs:volumes:create",
"evs:volumes:delete",
"evs:volumes:attach",
"evs:volumes:detach",
"evs:volumes:manage",
"evs:volumes:update",
"evs:volumes:uploadImage",
"evs:snapshots:create",
"vpc:*:get",
"vpc:*:list",
"vpc:networks:create",
"vpc:networks:update",
"vpc:subnets:update",
"vpc:subnets:create",
"vpc:routers:get",
"vpc:routers:update",
"vpc:ports:*",
"vpc:privateIps:*",
"vpc:securityGroups:*",
"vpc:securityGroupRules:*",
"vpc:floatingIps:*",
"vpc:publicIps:*",
"vpc:bandwidths:*",
"vpc:firewalls:*",
"ims:images:create",
"ims:images:delete",
"ims:images:get",
"ims:images:list",
"ims:images:update",
"ims:images:upload"
],
"Effect": "Allow"
}
],
"Depends": [
{
"catalog": "BASE",
"display_name": "Tenant Guest"
},
{
"catalog": "BASE",
"display_name": "BSS Administrator"
},
{
"catalog": "BASE",
"display_name": "VPC Administrator"
},
{
"catalog": "BASE",
"display_name": "IMS Administrator"
}
]
}
8.(可選)授權DNS Administrator權限。
{
"Version": "1.0",
"Statement": [
{
"Action": [
"DNS:Zone:*",
"DNS:RecordSet:*",
"DNS:PTRRecord:*"
],
"Effect": "Allow"
}
],
"Depends": [
{
"catalog": "BASE",
"display_name": "Tenant Guest"
},
{
"catalog": "VPC",
"display_name": "VPC Administrator"
}
]
}
9.(可選)授權TMS Administrator權限。
{
"Version": "1.0",
"Statement": [
{
"Action": [
"TMS:predefine_tag:*",
"TMS:resource_tag:*"
],
"Effect": "Allow"
}
],
"Depends": [
{
"catalog": "BASE",
"display_name": "Tenant Guest"
},
{
"catalog": "BASE",
"display_name": "Server Administrator"
},
{
"catalog": "IMS",
"display_name": "IMS Administrator"
},
{
"catalog": "Auto Scaling",
"display_name": "AutoScaling Administrator"
},
{
"catalog": "VPC",
"display_name": "VPC Administrator"
},
{
"catalog": "VBS",
"display_name": "VBS Administrator"
},
{
"catalog": "OBS",
"display_name": "Tenant Administrator"
},
{
"catalog": "OBS",
"display_name": "Tenant Guest"
}
]
}

說明如果用戶賬號開通了企業項目:
當該賬號配置ES FullAccess權限時,即使給單個企業項目只配了ES ReadOnlyAccess權限,但所有企業項目都擁有ES FullAccess權限。
如果給單個企業項目開通了ES FullAccess權限,則該企業項目下的所有子用戶都可以擁有該權限。如:企業項目default配了ES FullAccess權限,那么子用戶可以讀到default企業項目下的集群,且進行讀寫操作。
示例2:授權用戶ES ReadOnlyAccess權限,即給用戶配置ES的只讀權限。如果用戶需要查看集群監控信息,則需要依賴CES的只讀權限。
1.授權用戶ES ReadOnlyAccess權限。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"ES:*:get*",
"ES:*:list*",
"vpc:securityGroups:get",
"vpc:securityGroupRules:get",
"vpc:vpcs:list",
"vpc:privateIps:list",
"vpc:ports:get",
"vpc:quotas:list",
"vpc:subnets:get",
"ecs:cloudServerFlavors:get",
"ecs:quotas:get",
"evs:types:get",
"evs:quotas:get"
],
"Effect": "Allow"
}
]
}
2.(可選)授權用戶查看集群監控信息權限。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"ces:*:get*",
"ces:*:list*"
],
"Effect": "Allow"
}
]
}
說明如果用戶賬號開通了企業項目:
在統一認證服務中給該賬號開通了ES ReadOnlyAccess權限,但是給某個企業項目配置了ES FullAccess權限,那么子用戶可以讀到所有企業項目下的集群,但是只對開通ES FullAccess權限下的集群進行寫操作。例如,給企業項目default配置了ES FullAccess權限,那么子用戶可以讀到所有企業項目下的集群,但是只對default下的集群進行寫操作。
在統一認證服務中給該賬號開通了ES ReadOnlyAccess權限,但是沒有給單個企業項目授權,則子賬戶只能讀取該項目下的集群,不能進行寫操作。例如,給企業項目default配了ES ReadOnlyAccess,那么子用戶可以讀到default企業項目下的集群,不可進行寫操作。
ES自定義策略樣例
示例1:授權用戶創建集群。
{
"Version": "1.1",
"Statement": [
{
"Action": [
"ES:cluster:create",
"vpc:securityGroups:get",
"vpc:securityGroups:create",
"vpc:securityGroups:delete",
"vpc:securityGroupRules:get",
"vpc:securityGroupRules:create",
"vpc:securityGroupRules:delete",
"vpc:vpcs:list",
"vpc:privateIps:list",
"vpc:ports:get",
"vpc:ports:create",
"vpc:ports:update",
"vpc:ports:delete",
"vpc:quotas:list",
"vpc:subnets:get",
"ecs:cloudServerFlavors:get",
"ecs:serverInterfaces:use",
"ecs:cloudServers:addNics",
"ecs:quotas:get",
"evs:types:get",
"evs:quotas:get"
],
"Effect": "Allow"
}
]
}
示例2:拒絕用戶刪除集群。
拒絕策略需要同時配合其他策略使用,否則沒有實際作用。用戶被授予的策略中,一個授權項的作用如果同時存在Allow和Deny,則遵循Deny 優先原則 。
如果您給用戶授予ES Admin的系統策略,但不希望用戶擁有ES admin中定義的刪除云服務器權限,您可以創建一條拒絕刪除云服務的自定義策略,然后同時將ES Admin和拒絕策略授予用戶,根據Deny優先原則,則用戶可以對ES執行除了刪除集群外的所有操作。拒絕策略示例如下:
"Version": "1.1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ES:cluster:delete"
]
}
]
}
示例3:多個授權項策略。
一個自定義策略中可以包含多個授權項,且除了可以包含本服務的授權項外,還可以包含其他服務的授權項,可以包含的其他服務必須跟本服務同屬性,即都是項目級服務或都是全局級服務。多個授權語句策略描述如下:
{
"Version": "1.1",
"Statement": [
{
"Action": [
"ecs:cloudServers:resize",
"ecs:cloudServers:delete",
"ecs:cloudServers:delete",
"ES:cluster:restart",
"ES:*:get*",
"ES:*:list*"
],
"Effect": "Allow"
}
]
}