全部產品
Search
文件中心

Elasticsearch:建立自訂權限原則

更新時間:Jun 30, 2024

如果Elasticsearch的系統策略無法滿足您的需求,可以通過建立自訂策略實現精微調權限管理。本文介紹如何建立自訂權限原則,並提供執行個體和標籤權限原則配置樣本供您參考。

背景資訊

Elasticsearch支援以下系統策略:

系統策略名稱稱

說明

AliyunElasticsearchReadOnlyAccess

唯讀訪問Elasticsearch或Logstash的許可權,用於唯讀使用者。

AliyunElasticsearchFullAccess

管理Elasticsearch、Logstash或Beats的許可權,用於管理員。

說明

以上許可權不包括CloudMonitor和Tags許可權,使用時需自訂對應許可權,具體配置請參見特定執行個體的權限原則

前提條件

瞭解權限原則語言的基本結構和文法。詳細資料,請參見權限原則文法和結構

注意事項

自訂策略僅在帳號層級生效,不會在資源群組層級生效。如果您想對特定RAM使用者僅顯示控制台的特定資源,可以採用通過資源群組授權特定執行個體的方式實現。

操作步驟

建立自訂權限原則,請參見通過指令碼編輯模式建立自訂權限原則。根據業務需求輸入具體的許可權指令碼,您也可以根據頁面提示匯入已存在的系統權限原則,並在此基礎上修改為自訂的權限原則。

許可權指令碼樣本:

  • 訪問阿里雲帳號的Virtual Private Cloud(Virtual Private Cloud)許可權。

    "elasticsearch:DescribeVpcs","elasticsearch:DescribeVSwitches"
    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "elasticsearch:DescribeVpcs",
            "elasticsearch:DescribeVSwitches"
          ],
          "Resource": "*",
          "Effect": "Allow"
        }
      ]
    }
  • RAM使用者訂單許可權。

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "bss:PayOrder"
          ],
          "Resource": "*",
          "Effect": "Allow"
        }
      ]
    }

更多權限原則樣本,請參見權限原則樣本

權限原則樣本

重要

在使用以下程式碼範例前,請將代碼中的以下資訊替換成您自己對應的資訊:

  • <yourAccountId>:需要替換為您自己的阿里雲帳號ID,不支援萬用字元*。阿里雲帳號ID的擷取方法:滑鼠移至控制台右上方的帳戶圖片上,即可查看到帳號ID

  • <yourInstanceId>:需要替換為待授權的目標執行個體ID,不支援萬用字元*。擷取方式,請參見查看執行個體的基本資料

管理員權限策略

以下樣本用於為帳號ID為<yourAccountId>的阿里雲帳號下的某個RAM使用者授權,使該使用者擁有所有Elasticsearch執行個體的所有操作許可權。

{
    "Statement": [
        {
            "Action": [
                "elasticsearch:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "cms:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": "bss:PayOrder",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": "ram:CreateServiceLinkedRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ram:ServiceName": [
                        "collector.elasticsearch.aliyuncs.com"
                    ]
                }
            }
        }
    ],
    "Version": "1"
}

特定執行個體的權限原則

以下樣本用於為帳號ID為<yourAccountId>的阿里雲帳號下的某個RAM使用者授權,使該使用者擁有以下許可權:

  • 底層CloudMonitor許可權

  • 給指定執行個體授予所有Elasticsearch相關操作的許可權。

  • 查看執行個體列表的許可權。

  • 查看所有執行個體標籤的許可權。

  • 查看採集器列表的許可權。

說明

因為Elasticsearch控制台的執行個體管理頁面,整合調用了Beats採集器、阿里雲進階監控和標籤Tags等外部依賴介面,所以在對特定執行個體授權時,需要參見以下配置樣本,授予依賴許可權。

{
    "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/*"
        }
    ],
    "Version": "1"
}
表 1. Action說明

Action

說明

[
  "cms:DescribeActiveMetricRuleList",
  "cms:ListAlarm",
  "cms:QueryMetricList"
]

CloudMonitor許可權,具體說明如下:

  • cms:DescribeActiveMetricRuleList:擷取阿里雲帳號已開通CloudMonitor服務的產品。

  • cms:ListAlarm:查詢指定或全部警示規則設定。

  • cms:QueryMetricList:查詢一段時間內指定產品執行個體的監控資料。

"bss:PayOrder"

支付訂單的許可權。授權後,RAM使用者可在購買執行個體時,支付訂單。

[
  "elasticsearch:DescribeVpcs",
  "elasticsearch:DescribeVSwitches"
]

訪問阿里雲帳號的專用網路和虛擬交換器列表許可權。授權後,在購買執行個體時,RAM使用者可選擇阿里雲帳號建立的專用網路和虛擬交換器。

重要

設定RAM使用者購買執行個體的許可權時,需要同時配置["bss:PayOrder"] Action,否則購買時,會出現無許可權的報錯。

[
  "elasticsearch:*"
]

操作Elasticsearch執行個體的所有許可權。授權後,RAM使用者可對所有或指定執行個體執行任意操作。

重要

elasticsearch:*不包括進階監控警示、CloudMonitor和Tags許可權,這些許可權需要單獨設定。如果沒有設定,進入包含這些功能的頁面後,會出現無許可權的錯誤。但確認後,可以在該頁面中使用其他已授權的功能。

[
  "elasticsearch:ListTags"
]

查看Elasticsearch執行個體標籤的許可權。授權後,RAM使用者可查看Elasticsearch執行個體的標籤。

[
  "elasticsearch:ListInstance",
  "elasticsearch:ListSnapshotReposByInstanceId" 
]
  • elasticsearch:ListInstance:查看Elasticsearch執行個體列表的許可權。

  • elasticsearch:ListSnapshotReposByInstanceId:查看跨叢集OSS倉庫設定列表許可權。

[
  "elasticsearch:ListCollectors"
]

查看Beats採集器列表的許可權。授權後,RAM使用者可查看控制台中Beats採集器列表。

[
  "elasticsearch:ListLogstash"
]

查看Logstash執行個體列表的許可權。授權後,RAM使用者可在執行個體列表頁面中,查看對應地區下包含的所有Logstash執行個體。

表 2. Effect說明

Effect

說明

Allow

允許RAM使用者執行Action中設定的操作。

Deny

拒絕RAM使用者執行Action中設定的操作。

表 3. Resource說明

Resource的詳細說明請參見Elasticsearch授權資源

參數

說明

*

所有執行個體資源。

<yourInstanceId>

指定的執行個體資源,需要替換為待授權的目標執行個體ID。擷取方式,請參見查看執行個體的基本資料

API的許可權

Elasticsearch API許可權的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

後續步驟

自訂策略建立完成後,使用阿里雲帳號在RAM控制台中或通過RAM SDK對RAM使用者授權。具體操作,請參見為RAM使用者授權