創(chuàng)建自定義權(quán)限策略
如果阿里云Elasticsearch的系統(tǒng)策略無(wú)法滿(mǎn)足您的需求,可以通過(guò)創(chuàng)建自定義策略實(shí)現(xiàn)精細(xì)化權(quán)限管理。本文介紹如何創(chuàng)建自定義權(quán)限策略,并提供實(shí)例和標(biāo)簽權(quán)限策略配置示例供您參考。
背景信息
阿里云Elasticsearch支持以下系統(tǒng)策略:
系統(tǒng)策略名稱(chēng) | 說(shuō)明 |
AliyunElasticsearchReadOnlyAccess | 只讀訪問(wèn)阿里云Elasticsearch或Logstash的權(quán)限,用于只讀用戶(hù)。 |
AliyunElasticsearchFullAccess | 管理阿里云Elasticsearch、Logstash或Beats的權(quán)限,用于管理員。 |
以上權(quán)限不包括Serverless、云監(jiān)控和Tags權(quán)限,使用時(shí)需自定義對(duì)應(yīng)權(quán)限,具體配置請(qǐng)參見(jiàn)特定實(shí)例的權(quán)限策略和Elasticsearch Serverless的權(quán)限策略。
前提條件
了解權(quán)限策略語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)法。詳細(xì)信息,請(qǐng)參見(jiàn)權(quán)限策略語(yǔ)法和結(jié)構(gòu)。
注意事項(xiàng)
自定義策略?xún)H在賬號(hào)級(jí)別生效,不會(huì)在資源組級(jí)別生效。如果您想對(duì)特定RAM用戶(hù)僅顯示控制臺(tái)的特定資源,可以采用通過(guò)資源組授權(quán)特定實(shí)例的方式實(shí)現(xiàn)。
操作步驟
創(chuàng)建自定義權(quán)限策略,請(qǐng)參見(jiàn)通過(guò)腳本編輯模式創(chuàng)建自定義權(quán)限策略。根據(jù)業(yè)務(wù)需求輸入具體的權(quán)限腳本,您也可以根據(jù)頁(yè)面提示導(dǎo)入已存在的系統(tǒng)權(quán)限策略,并在此基礎(chǔ)上修改為自定義的權(quán)限策略。
權(quán)限腳本示例:
訪問(wèn)阿里云賬號(hào)的專(zhuān)有網(wǎng)絡(luò)VPC(Virtual Private Cloud)權(quán)限。
"elasticsearch:DescribeVpcs","elasticsearch:DescribeVSwitches" { "Version": "1", "Statement": [ { "Action": [ "elasticsearch:DescribeVpcs", "elasticsearch:DescribeVSwitches" ], "Resource": "*", "Effect": "Allow" } ] }
RAM用戶(hù)訂單權(quán)限。
{ "Version": "1", "Statement": [ { "Action": [ "bss:PayOrder" ], "Resource": "*", "Effect": "Allow" } ] }
更多權(quán)限策略示例,請(qǐng)參見(jiàn)權(quán)限策略示例。
權(quán)限策略示例
在使用以下代碼示例前,請(qǐng)將代碼中的以下信息替換成您自己對(duì)應(yīng)的信息:
<yourAccountId>:需要替換為您自己的阿里云賬號(hào)ID,不支持通配符
*
。阿里云賬號(hào)ID的獲取方法:鼠標(biāo)移至控制臺(tái)右上角的用戶(hù)頭像上,即可查看到賬號(hào)ID。<yourInstanceId>:需要替換為待授權(quán)的目標(biāo)實(shí)例ID,不支持通配符
*
。獲取方式,請(qǐng)參見(jiàn)查看實(shí)例的基本信息。
管理員權(quán)限策略
以下示例用于為賬號(hào)ID為<yourAccountId>的阿里云賬號(hào)下的某個(gè)RAM用戶(hù)授權(quán),使該用戶(hù)擁有所有Elasticsearch實(shí)例的所有操作權(quán)限。
{
"Statement": [
{
"Action": [
"elasticsearch:*"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"cms:*"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": "bss:PayOrder",
"Effect": "Allow",
"Resource": "*"
},
{
"Action": "ims:*",
"Effect": "Allow",
"Resource": "acs:ims::<yourAccountId>:application/*"
},
{
"Action": "ram:CreateServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": [
"collector.elasticsearch.aliyuncs.com",
"ops.elasticsearch.aliyuncs.com"
]
}
}
}
],
"Version": "1"
}
特定實(shí)例的權(quán)限策略
以下示例用于為賬號(hào)ID為<yourAccountId>的阿里云賬號(hào)下的某個(gè)RAM用戶(hù)授權(quán),使該用戶(hù)擁有以下權(quán)限:
給指定實(shí)例授予所有Elasticsearch相關(guān)操作的權(quán)限。
查看實(shí)例列表的權(quán)限。
查看所有實(shí)例標(biāo)簽的權(quán)限。
查看采集器列表的權(quán)限。
因?yàn)榘⒗镌艵lasticsearch控制臺(tái)的實(shí)例管理頁(yè)面,集成調(diào)用了Beats采集器、阿里云高級(jí)監(jiān)控和標(biāo)簽Tags等外部依賴(lài)接口,所以在對(duì)特定實(shí)例授權(quán)時(shí),需要參見(jiàn)以下配置示例,授予依賴(lài)權(quán)限。
{
"Statement": [
{
"Action": [
"elasticsearch:*"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/<yourInstanceId>"
},
{
"Action": [
"cms:DescribeActiveMetricRuleList",
"cms:ListAlarm",
"cms:QueryMetricList"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"elasticsearch:ListTags"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:tags/*"
},
{
"Action": [
"elasticsearch:ListInstance",
"elasticsearch:ListSnapshotReposByInstanceId"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/*"
},
{
"Action": [
"elasticsearch:ListLogstash"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:logstashes/*"
},
{
"Action": [
"elasticsearch:ListCollectors"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:collectors/*"
},
{
"Action": [
"elasticsearch:GetEmonProjectList"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:*:emonProjects/*"
},
{
"Action": [
"elasticsearch:getEmonUserConfig"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:*:emonUserConfig/*"
}
],
"Version": "1"
}
Action | 說(shuō)明 |
| 云監(jiān)控權(quán)限,具體說(shuō)明如下:
|
| 支付訂單的權(quán)限。授權(quán)后,RAM用戶(hù)可在購(gòu)買(mǎi)實(shí)例時(shí),支付訂單。 |
| RAM用戶(hù)使用高級(jí)監(jiān)控報(bào)警時(shí),需要授予ims權(quán)限。您也可以通過(guò)阿里云賬號(hào)登錄高級(jí)監(jiān)控報(bào)警控制臺(tái),手動(dòng)對(duì)RAM用戶(hù)授權(quán),具體操作請(qǐng)參見(jiàn)步驟一:查看和配置可視化監(jiān)控。 說(shuō)明 IMS(Identity Management Service)為身份管理服務(wù)。主要管理的對(duì)象為阿里云RAM用戶(hù)相關(guān)的身份Meta及認(rèn)證相關(guān)的配置。同時(shí),IMS提供了標(biāo)準(zhǔn)協(xié)議,能夠應(yīng)用于外部IDP控制臺(tái)認(rèn)證打通和用戶(hù)數(shù)據(jù)同步的場(chǎng)景。 |
| 訪問(wèn)阿里云賬號(hào)的專(zhuān)有網(wǎng)絡(luò)和虛擬交換機(jī)列表權(quán)限。授權(quán)后,在購(gòu)買(mǎi)實(shí)例時(shí),RAM用戶(hù)可選擇阿里云賬號(hào)創(chuàng)建的專(zhuān)有網(wǎng)絡(luò)和虛擬交換機(jī)。 重要 設(shè)置RAM用戶(hù)購(gòu)買(mǎi)實(shí)例的權(quán)限時(shí),需要同時(shí)配置 |
| 操作Elasticsearch實(shí)例的所有權(quán)限。授權(quán)后,RAM用戶(hù)可對(duì)所有或指定實(shí)例執(zhí)行任意操作。 重要
|
| 查看Elasticsearch實(shí)例標(biāo)簽的權(quán)限。授權(quán)后,RAM用戶(hù)可查看Elasticsearch實(shí)例的標(biāo)簽。 |
|
|
| 查看Beats采集器列表的權(quán)限。授權(quán)后,RAM用戶(hù)可查看控制臺(tái)中Beats采集器列表。 |
| 查看Logstash實(shí)例列表的權(quán)限。授權(quán)后,RAM用戶(hù)可在實(shí)例列表頁(yè)面中,查看對(duì)應(yīng)地域下包含的所有Logstash實(shí)例。 |
| 獲取集群監(jiān)控項(xiàng)目列表的權(quán)限。 重要 此Action需要與 |
| 獲取集群監(jiān)控用戶(hù)配置的權(quán)限。 |
Effect | 說(shuō)明 |
Allow | 允許RAM用戶(hù)執(zhí)行Action中設(shè)置的操作。 |
Deny | 拒絕RAM用戶(hù)執(zhí)行Action中設(shè)置的操作。 |
參數(shù) | 說(shuō)明 |
* | 所有實(shí)例資源。 |
<yourInstanceId> | 指定的實(shí)例資源,需要替換為待授權(quán)的目標(biāo)實(shí)例ID。獲取方式,請(qǐng)參見(jiàn)查看實(shí)例的基本信息。 |
Elasticsearch Serverless的權(quán)限策略
AliyunElasticsearchServerlessReadOnlyAccess(只讀訪問(wèn)阿里云Elasticsearch Serverless服務(wù)的權(quán)限,用于只讀用戶(hù))的授權(quán)策略?xún)?nèi)容:
{ "Version": "1", "Statement": [ { "Action": [ "es-serverless:List*", "es-serverless:Describe*", "es-serverless:Get*" ], "Resource": "*", "Effect": "Allow" }, { "Action": "es-serverless:ListAccessTokens", "Resource": "*", "Effect": "Deny" } ] }
AliyunElasticsearchServerlessFullAccess(管理阿里云Elasticsearch Serverless服務(wù)的權(quán)限,用于管理員)的授權(quán)策略?xún)?nèi)容:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "es-serverless:*", "Resource": "*" } ] }
API的權(quán)限
Elasticsearch API權(quán)限的Resource和Action如下表所示。
Method | URI | Resource | Action |
GET | /instances | instances/* | ListInstance |
POST | /instances | instances/* | CreateInstance |
GET | /instances/instanceId | instances/instanceId | DescribeInstance |
DELETE | /instances/instanceId | instances/instanceId | DeleteInstance |
POST | /instances/instanceId/actions/restart | instances/instanceId | RestartInstance |
PUT | /instances/instanceId | instances/instanceId | UpdateInstance |
后續(xù)步驟
自定義策略創(chuàng)建完成后,使用阿里云賬號(hào)在RAM控制臺(tái)中或通過(guò)RAM SDK對(duì)RAM用戶(hù)授權(quán)。具體操作,請(qǐng)參見(jiàn)為RAM用戶(hù)授權(quán)。