alibabacloud-elasticsearch-network-manage
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseElasticsearch Instance Network Management
Elasticsearch实例网络管理
A skill for managing Alibaba Cloud Elasticsearch instance network configurations, including network triggering, Kibana PVL network, white IP list, HTTPS settings, and Kibana SSO authentication.
一款用于管理阿里云Elasticsearch实例网络配置的Skill,包括触发网络、Kibana PVL网络、白名单IP列表、HTTPS设置以及Kibana SSO认证。
Architecture
架构
Alibaba Cloud Account → Elasticsearch Service → ES Instance(s) → Network Configuration
├── Public Network Access
├── Kibana PVL Network
├── White IP List
├── HTTPS Settings
└── Kibana SSO AuthenticationAlibaba Cloud Account → Elasticsearch Service → ES Instance(s) → Network Configuration
├── Public Network Access
├── Kibana PVL Network
├── White IP List
├── HTTPS Settings
└── Kibana SSO AuthenticationInstallation
安装
Pre-check: Aliyun CLI >= 3.3.3 required Runto verify >= 3.3.3. If not installed or version too low, runaliyun versionto update, or seecurl -fsSL https://aliyuncli.alicdn.com/setup.sh | bashfor installation instructions.references/cli-installation-guide.md
[MUST] AI-Mode Configuration
Before executing any CLI commands, enable AI-Mode and set User-Agent. After the workflow completes, disable AI-Mode.
bash
undefined预检查:需要Aliyun CLI >= 3.3.3 运行验证版本是否>=3.3.3。若未安装或版本过低, 运行aliyun version进行更新, 或查看curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash获取安装说明。references/cli-installation-guide.md
[必须配置] AI模式设置
执行任何CLI命令前,需启用AI模式并设置User-Agent。工作流完成后,禁用AI模式。
bash
undefinedStep 1: Enable AI-Mode (before CLI operations)
步骤1:启用AI模式(CLI操作前)
aliyun configure ai-mode enable
aliyun configure ai-mode enable
Step 2: Set User-Agent for traceability
步骤2:设置User-Agent用于追踪
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage"
After all CLI operations are complete:
```bashaliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage"
所有CLI操作完成后:
```bashStep 3: Disable AI-Mode (after workflow ends)
步骤3:禁用AI模式(工作流结束后)
aliyun configure ai-mode disable
**[MUST] Plugin Update**
```bash
aliyun configure set --auto-plugin-install true
aliyun plugin update[MUST] CLI Installation (if not already installed or version < 3.3.3):
bash
curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash
aliyun versionaliyun configure ai-mode disable
**[必须操作] 插件更新**
```bash
aliyun configure set --auto-plugin-install true
aliyun plugin update[必须操作] CLI安装(若未安装或版本<3.3.3):
bash
curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash
aliyun versionEnvironment Variables
环境变量
| Variable | Required | Description |
|---|---|---|
| Yes | Alibaba Cloud AccessKey ID |
| Yes | Alibaba Cloud AccessKey Secret |
| No | Default Region ID (e.g., cn-hangzhou) |
| 变量 | 是否必填 | 描述 |
|---|---|---|
| 是 | 阿里云AccessKey ID |
| 是 | 阿里云AccessKey Secret |
| 否 | 默认地域ID(例如:cn-hangzhou) |
CLI User-Agent Requirement
CLI User-Agent要求
[MUST] CLI User-Agent — The user-agent is set globally via during installation.
As a fallback, every CLI command invocation must also include:
aliyun configure ai-mode set-user-agentaliyun--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage[必须配置] CLI User-Agent — 安装期间通过 全局设置用户代理。
作为备选方案,每次调用 CLI命令时必须添加:
aliyun configure ai-mode set-user-agentaliyun--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manageParameter Confirmation
参数确认
IMPORTANT: Parameter Confirmation — Before executing any command or API call, ALL user-customizable parameters (e.g., RegionId, instance names, white IPs, VPC IDs, security groups, etc.) MUST be confirmed with the user. Do NOT assume or use default values without explicit user approval.
| Parameter Name | Required/Optional | Description | Default Value |
|---|---|---|---|
| Required (for all operations) | Elasticsearch Instance ID | - |
| Optional | Region ID | cn-hangzhou |
| Required (TriggerNetwork) | Instance Type: KIBANA/WORKER | - |
| Required (TriggerNetwork) | Network Type: PUBLIC/PRIVATE | - |
| Required (TriggerNetwork) | Action Type: OPEN/CLOSE | - |
| Optional | Resource Group ID | - |
| Required (ModifyWhiteIps) | White IP Group Configuration | - |
| Optional (ModifyWhiteIps) | White IP Type: PRIVATE_ES/PUBLIC_KIBANA | PRIVATE_ES |
重要提示:参数确认 — 执行任何命令或API调用前, 所有用户可自定义参数(例如:RegionId、实例名称、白名单IP、 VPC ID、安全组等)必须与用户确认。 未经用户明确批准,不得假设或使用默认值。
| 参数名称 | 必填/可选 | 描述 | 默认值 |
|---|---|---|---|
| 必填(所有操作) | Elasticsearch实例ID | - |
| 可选 | 地域ID | cn-hangzhou |
| 必填(触发网络操作) | 实例类型:KIBANA/WORKER | - |
| 必填(触发网络操作) | 网络类型:PUBLIC/PRIVATE | - |
| 必填(触发网络操作) | 操作类型:OPEN/CLOSE | - |
| 可选 | 资源组ID | - |
| 必填(修改白名单IP操作) | 白名单IP组配置 | - |
| 可选(修改白名单IP操作) | 白名单IP类型:PRIVATE_ES/PUBLIC_KIBANA | PRIVATE_ES |
Authentication
身份认证
Pre-check: Alibaba Cloud Credentials RequiredSecurity Rules:
- NEVER read, echo, or print AK/SK values
- NEVER ask user to input AK/SK in conversation or command line
- ONLY use
to check credential statusaliyun configure listbashaliyun configure listIf no valid credentials, guide user to runin terminal (never accept plaintext AK/SK in chat). Credential portal: Alibaba Cloud RAM Consolealiyun configure
预检查:需要阿里云凭证安全规则:
- 绝对不要读取、回显或打印AK/SK值
- 绝对不要要求用户在对话或命令行中输入AK/SK
- 仅可使用
检查凭证状态aliyun configure listbashaliyun configure list若无有效凭证,引导用户在终端运行(绝不接受聊天中的明文AK/SK)。 凭证获取入口:阿里云RAM控制台aliyun configure
RAM Policy
RAM权限策略
RAM permissions required for Elasticsearch instance network configuration operations. See references/ram-policies.md for details.
Elasticsearch实例网络配置操作所需的RAM权限。详情请查看 references/ram-policies.md。
Core Workflow
核心工作流
Prerequisite: Instance Status CheckBefore executing any network configuration operation, verify that the instance status is. Network configuration changes cannot be executed when instance status isactive,activating, orinvalid.inactivebash# Check instance status with retry logic max_retries=10 retry_count=0 while [ $retry_count -lt $max_retries ]; do status=$(aliyun elasticsearch describe-instance \ --instance-id <InstanceId> \ --read-timeout 30 \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.status') if [ "$status" == "active" ]; then echo "✅ Instance status is active, proceeding..." break else echo "⚠️ Instance status is $status, waiting 30s before retry..." sleep 30 retry_count=$((retry_count + 1)) fi done if [ $retry_count -eq $max_retries ]; then echo "❌ Instance did not become active after $max_retries retries, aborting" exit 1 fi
前提条件:实例状态检查执行任何网络配置操作前,需验证实例状态为。 当实例状态为active、activating或invalid时,无法执行网络配置变更。inactivebash# 带重试逻辑检查实例状态 max_retries=10 retry_count=0 while [ $retry_count -lt $max_retries ]; do status=$(aliyun elasticsearch describe-instance \ --instance-id <InstanceId> \ --read-timeout 30 \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.status') if [ "$status" == "active" ]; then echo "✅ 实例状态为active,继续执行..." break else echo "⚠️ 实例状态为$status,等待30秒后重试..." sleep 30 retry_count=$((retry_count + 1)) fi done if [ $retry_count -eq $max_retries ]; then echo "❌ 经过$max_retries次重试后,实例仍未变为active,终止操作" exit 1 fi
Task 1: Trigger Network (Enable/Disable Public/Private Network Access)
任务1:触发网络(启用/禁用公网/私网访问)
Enable or disable public or private network access for Elasticsearch or Kibana clusters.
Scope: Supports all network types on basic management instances. On cloud-native instances, supports cluster public/private network and Kibana public network. For Kibana private network on cloud-native instances, use EnableKibanaPvlNetwork / DisableKibanaPvlNetwork instead.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| String | Yes | Instance Type: KIBANA (Kibana cluster) / WORKER (Elasticsearch cluster) |
| String | Yes | Network Type: PUBLIC / PRIVATE |
| String | Yes | Action Type: OPEN (enable) / CLOSE (disable) |
bash
undefined启用或禁用Elasticsearch或Kibana集群的公网/私网访问权限。
适用范围:支持基础管理实例的所有网络类型。对于云原生实例,支持集群公网/私网和Kibana公网。对于云原生实例的Kibana私网,请使用EnableKibanaPvlNetwork / DisableKibanaPvlNetwork替代。
参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| String | 是 | 实例类型:KIBANA(Kibana集群)/ WORKER(Elasticsearch集群) |
| String | 是 | 网络类型:PUBLIC / PRIVATE |
| String | 是 | 操作类型:OPEN(启用)/ CLOSE(禁用) |
bash
undefinedExample: Enable Kibana public network access
示例:启用Kibana公网访问
aliyun elasticsearch trigger-network
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"KIBANA","networkType":"PUBLIC","actionType":"OPEN"}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"KIBANA","networkType":"PUBLIC","actionType":"OPEN"}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
aliyun elasticsearch trigger-network
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"KIBANA","networkType":"PUBLIC","actionType":"OPEN"}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"KIBANA","networkType":"PUBLIC","actionType":"OPEN"}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
Example: Disable Elasticsearch public network access
示例:禁用Elasticsearch公网访问
aliyun elasticsearch trigger-network
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"WORKER","networkType":"PUBLIC","actionType":"CLOSE"}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"WORKER","networkType":"PUBLIC","actionType":"CLOSE"}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
**Pre-check (Required):**
> **Network Status Fields** (via DescribeInstance):
> - `Result.enablePublic`: ES public network (private network is always on, cannot be disabled)
> - `Result.enableKibanaPublicNetwork`: Kibana public network
> - `Result.enableKibanaPrivateNetwork`: Kibana private network
>
> If the target network is already in the desired state, **skip the TriggerNetwork call** and inform the user.
```bashaliyun elasticsearch trigger-network
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"WORKER","networkType":"PUBLIC","actionType":"CLOSE"}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"WORKER","networkType":"PUBLIC","actionType":"CLOSE"}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
**预检查(必填):**
> **网络状态字段**(通过DescribeInstance获取):
> - `Result.enablePublic`: ES公网(私网始终开启,无法禁用)
> - `Result.enableKibanaPublicNetwork`: Kibana公网
> - `Result.enableKibanaPrivateNetwork`: Kibana私网
>
> 若目标网络已处于期望状态,**跳过TriggerNetwork调用**并告知用户。
```bashPre-check: architecture + current network status
预检查:架构类型 + 当前网络状态
instance_info=$(aliyun elasticsearch describe-instance
--instance-id <InstanceId> --read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage)
--instance-id <InstanceId> --read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage)
arch_type=$(echo "$instance_info" | jq -r '.Result.archType')
instance_info=$(aliyun elasticsearch describe-instance
--instance-id <InstanceId> --read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage)
--instance-id <InstanceId> --read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage)
arch_type=$(echo "$instance_info" | jq -r '.Result.archType')
Cloud-native Kibana private network: use EnableKibanaPvlNetwork/DisableKibanaPvlNetwork instead
云原生Kibana私网:请使用EnableKibanaPvlNetwork/DisableKibanaPvlNetwork替代
if [ "$arch_type" == "public" ] && [ "$node_type" == "KIBANA" ] && [ "$network_type" == "PRIVATE" ]; then
echo "❌ Use EnableKibanaPvlNetwork/DisableKibanaPvlNetwork for cloud-native Kibana private network"
exit 1
fi
if [ "$arch_type" == "public" ] && [ "$node_type" == "KIBANA" ] && [ "$network_type" == "PRIVATE" ]; then
echo "❌ 云原生Kibana私网请使用EnableKibanaPvlNetwork/DisableKibanaPvlNetwork"
exit 1
fi
Check if target network already in desired state
检查目标网络是否已处于期望状态
enable_public=$(echo "$instance_info" | jq -r '.Result.enablePublic')
enable_kibana_public=$(echo "$instance_info" | jq -r '.Result.enableKibanaPublicNetwork')
enable_kibana_private=$(echo "$instance_info" | jq -r '.Result.enableKibanaPrivateNetwork')
enable_public=$(echo "$instance_info" | jq -r '.Result.enablePublic')
enable_kibana_public=$(echo "$instance_info" | jq -r '.Result.enableKibanaPublicNetwork')
enable_kibana_private=$(echo "$instance_info" | jq -r '.Result.enableKibanaPrivateNetwork')
Map nodeType+networkType to status field (ES private is always on)
将nodeType+networkType映射到状态字段(ES私网始终开启)
WORKER+PUBLIC -> enablePublic | KIBANA+PUBLIC -> enableKibanaPublicNetwork | KIBANA+PRIVATE -> enableKibanaPrivateNetwork
WORKER+PUBLIC -> enablePublic | KIBANA+PUBLIC -> enableKibanaPublicNetwork | KIBANA+PRIVATE -> enableKibanaPrivateNetwork
If actionType=OPEN and already true, or actionType=CLOSE and already false, skip
若actionType=OPEN且已为true,或actionType=CLOSE且已为false,则跳过操作
---
---Task 2: Enable Kibana PVL Network (Enable Kibana Private Network Access)
任务2:启用Kibana PVL网络(启用Kibana私网访问)
Enable Kibana private network access (PrivateLink) for an Elasticsearch instance.
Prerequisites: Only supports cloud-native instances (archType=public), Kibana spec must be > 1 core 2GB. For basic management instances, use TriggerNetwork.
Request Parameters (Body):
| Parameter | Type | Required | Description |
|---|---|---|---|
| String | Yes | Endpoint name, recommended format: |
| Array | Yes | Security group ID array |
| Array | Yes | VSwitch and availability zone information |
| String | Yes | Virtual switch ID |
| String | Yes | Availability zone ID |
| String | Yes | VPC instance ID |
Pre-check: Call DescribeInstance first to check. If already enabled, compare current config (vpcId, vswitchId, securityGroups) with user requirements. If they match, skip and inform user config is already correct.Result.enableKibanaPrivateNetwork
bash
undefined为Elasticsearch实例启用Kibana私网访问(PrivateLink)。
前提条件:仅支持云原生实例(archType=public),Kibana规格必须大于1核2GB。对于基础管理实例,请使用TriggerNetwork。
请求参数(Body):
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| String | 是 | 端点名称,推荐格式: |
| Array | 是 | 安全组ID数组 |
| Array | 是 | 虚拟交换机和可用区信息 |
| String | 是 | 虚拟交换机ID |
| String | 是 | 可用区ID |
| String | 是 | VPC实例ID |
预检查:先调用DescribeInstance检查。若已启用,对比当前配置(vpcId、vswitchId、securityGroups)与用户需求。若匹配,跳过操作并告知用户配置已正确。Result.enableKibanaPrivateNetwork
bash
undefinedCheck current Kibana PVL status and config
检查当前Kibana PVL状态和配置
instance_info=$(aliyun elasticsearch describe-instance
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage)
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage)
pvl_enabled=$(echo "$instance_info" | jq -r '.Result.enableKibanaPrivateNetwork')
current_vpc=$(echo "$instance_info" | jq -r '.Result.networkConfig.vpcId')
current_vswitch=$(echo "$instance_info" | jq -r '.Result.networkConfig.vswitchId')
if [ "$pvl_enabled" == "true" ]; then
Check if current config matches user requirements
if [ "$current_vpc" == "<VpcId>" ] && [ "$current_vswitch" == "<VswitchId>" ]; then
echo "✅ Kibana private network already enabled with matching config, no action needed"
exit 0
fi
fi
instance_info=$(aliyun elasticsearch describe-instance
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage)
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage)
pvl_enabled=$(echo "$instance_info" | jq -r '.Result.enableKibanaPrivateNetwork')
current_vpc=$(echo "$instance_info" | jq -r '.Result.networkConfig.vpcId')
current_vswitch=$(echo "$instance_info" | jq -r '.Result.networkConfig.vswitchId')
if [ "$pvl_enabled" == "true" ]; then
检查当前配置是否符合用户需求
if [ "$current_vpc" == "<VpcId>" ] && [ "$current_vswitch" == "<VswitchId>" ]; then
echo "✅ Kibana私网已启用且配置匹配,无需操作"
exit 0
fi
fi
Enable Kibana private network access
启用Kibana私网访问
aliyun elasticsearch enable-kibana-pvl-network
--instance-id <InstanceId>
--body '{ "endpointName": "<InstanceId>-kibana-endpoint", "securityGroups": ["<SecurityGroupId>"], "vSwitchIdsZone": [{"vswitchId": "<VswitchId>", "zoneId": "<ZoneId>"}], "vpcId": "<VpcId>" }'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId>
--body '{ "endpointName": "<InstanceId>-kibana-endpoint", "securityGroups": ["<SecurityGroupId>"], "vSwitchIdsZone": [{"vswitchId": "<VswitchId>", "zoneId": "<ZoneId>"}], "vpcId": "<VpcId>" }'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
---aliyun elasticsearch enable-kibana-pvl-network
--instance-id <InstanceId>
--body '{ "endpointName": "<InstanceId>-kibana-endpoint", "securityGroups": ["<SecurityGroupId>"], "vSwitchIdsZone": [{"vswitchId": "<VswitchId>", "zoneId": "<ZoneId>"}], "vpcId": "<VpcId>" }'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId>
--body '{ "endpointName": "<InstanceId>-kibana-endpoint", "securityGroups": ["<SecurityGroupId>"], "vSwitchIdsZone": [{"vswitchId": "<VswitchId>", "zoneId": "<ZoneId>"}], "vpcId": "<VpcId>" }'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
---Task 3: Disable Kibana PVL Network (Disable Kibana Private Network Access)
任务3:禁用Kibana PVL网络(禁用Kibana私网访问)
Disable Kibana private network access for an Elasticsearch instance.
Prerequisites: This API only supports cloud-native instances (archType=public). For basic management instances, use TriggerNetwork.
bash
aliyun elasticsearch disable-kibana-pvl-network \
--instance-id <InstanceId> \
--read-timeout 30 \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage为Elasticsearch实例禁用Kibana私网访问。
前提条件:此API仅支持云原生实例(archType=public)。对于基础管理实例,请使用TriggerNetwork。
bash
aliyun elasticsearch disable-kibana-pvl-network \
--instance-id <InstanceId> \
--read-timeout 30 \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manageTask 4: Modify White IPs (Modify White IP List)
任务4:修改白名单IP(更新白名单IP列表)
Update the access white IP list for the specified instance. Two update methods are supported (cannot be used simultaneously):
- IP White List Method: Use +
whiteIpList+nodeTypenetworkType - IP White Group Method: Use +
modifyModewhiteIpGroup
Notes:
- Cannot update when instance status is activating, invalid, or inactive
- Public network white list does not support private IPs; private network white list does not support public IPs
- Kibana private network white list for cloud-native instances (archType=public) cannot be modified via this API. Use UpdateKibanaPvlNetwork API to modify security groups instead (see Task 7)
Method 1: IP White List (Update Default Group)
| Parameter | Type | Required | Description |
|---|---|---|---|
| Array | Yes | IP white list, will overwrite Default group |
| String | Yes | Node Type: WORKER (ES cluster) / KIBANA |
| String | Yes | Network Type: PUBLIC / PRIVATE |
bash
undefined更新指定实例的访问白名单IP列表。支持两种更新方式(不可同时使用):
- IP白名单方式:使用 +
whiteIpList+nodeTypenetworkType - IP白名单组方式:使用 +
modifyModewhiteIpGroup
注意事项:
- 实例状态为activating、invalid或inactive时无法更新
- 公网白名单不支持私网IP;私网白名单不支持公网IP
- 云原生实例(archType=public)的Kibana私网白名单无法通过此API修改。请使用UpdateKibanaPvlNetwork API修改安全组(见任务7)
方式1:IP白名单(更新默认组)
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| Array | 是 | IP白名单,将覆盖默认组 |
| String | 是 | 节点类型:WORKER(ES集群)/ KIBANA |
| String | 是 | 网络类型:PUBLIC / PRIVATE |
bash
undefinedModify ES public network white list (overwrite Default group)
修改ES公网白名单(覆盖默认组)
aliyun elasticsearch modify-white-ips
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"WORKER","networkType":"PUBLIC","whiteIpList":["59.0.0.0/8","120.0.0.0/8"]}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"WORKER","networkType":"PUBLIC","whiteIpList":["59.0.0.0/8","120.0.0.0/8"]}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
**Method 2: IP White Group (Supports Incremental/Overwrite/Delete)**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `modifyMode` | String | No | Modify mode: Cover (overwrite, default) / Append / Delete |
| `whiteIpGroup.groupName` | String | Yes | White IP group name |
| `whiteIpGroup.ips` | Array | Yes | IP address list |
| `whiteIpGroup.whiteIpType` | String | No | White IP type (see table below) |
**whiteIpType Values:**
| Value | Description |
|-------|-------------|
| `PRIVATE_ES` | Elasticsearch private network white list |
| `PUBLIC_ES` | Elasticsearch public network white list |
| `PRIVATE_KIBANA` | Kibana private network white list |
| `PUBLIC_KIBANA` | Kibana public network white list |
```bashaliyun elasticsearch modify-white-ips
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"WORKER","networkType":"PUBLIC","whiteIpList":["59.0.0.0/8","120.0.0.0/8"]}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"nodeType":"WORKER","networkType":"PUBLIC","whiteIpList":["59.0.0.0/8","120.0.0.0/8"]}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
**方式2:IP白名单组(支持增量/覆盖/删除)**
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| `modifyMode` | String | 否 | 修改模式:Cover(覆盖,默认)/ Append(增量添加)/ Delete(删除) |
| `whiteIpGroup.groupName` | String | 是 | 白名单IP组名称 |
| `whiteIpGroup.ips` | Array | 是 | IP地址列表 |
| `whiteIpGroup.whiteIpType` | String | 否 | 白名单IP类型(见下表) |
**whiteIpType取值:**
| 取值 | 描述 |
|-------|-------------|
| `PRIVATE_ES` | Elasticsearch私网白名单 |
| `PUBLIC_ES` | Elasticsearch公网白名单 |
| `PRIVATE_KIBANA` | Kibana私网白名单 |
| `PUBLIC_KIBANA` | Kibana公网白名单 |
```bashOverwrite specified white group (Cover mode)
覆盖指定白名单组(Cover模式)
aliyun elasticsearch modify-white-ips
--instance-id <InstanceId> --read-timeout 30
--body '{"modifyMode":"Cover","whiteIpGroup":{"groupName":"default","ips":["59.0.0.0/8","120.0.0.0/8"],"whiteIpType":"PUBLIC_ES"}}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"modifyMode":"Cover","whiteIpGroup":{"groupName":"default","ips":["59.0.0.0/8","120.0.0.0/8"],"whiteIpType":"PUBLIC_ES"}}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
aliyun elasticsearch modify-white-ips
--instance-id <InstanceId> --read-timeout 30
--body '{"modifyMode":"Cover","whiteIpGroup":{"groupName":"default","ips":["59.0.0.0/8","120.0.0.0/8"],"whiteIpType":"PUBLIC_ES"}}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"modifyMode":"Cover","whiteIpGroup":{"groupName":"default","ips":["59.0.0.0/8","120.0.0.0/8"],"whiteIpType":"PUBLIC_ES"}}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
Append IPs to white group (Append mode, group must exist)
向白名单组增量添加IP(Append模式,组必须已存在)
aliyun elasticsearch modify-white-ips
--instance-id <InstanceId> --read-timeout 30
--body '{"modifyMode":"Append","whiteIpGroup":{"groupName":"default","ips":["172.16.0.0/12"],"whiteIpType":"PRIVATE_ES"}}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"modifyMode":"Append","whiteIpGroup":{"groupName":"default","ips":["172.16.0.0/12"],"whiteIpType":"PRIVATE_ES"}}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
**modifyMode Description:**
| Mode | Description |
|------|-------------|
| `Cover` | Overwrite mode (default). Empty ips deletes group; non-existent groupName creates new |
| `Append` | Append mode. Group must exist, otherwise NotFound error |
| `Delete` | Delete mode. Remove specified IPs, at least one IP must remain |
> **IMPORTANT: modifyMode Selection Guidelines**
> - Use `Append` for incremental addition, `Cover` for full replacement, `Delete` for removal
> - **If user intent is unclear, MUST ask user** which mode to use before executing
> - If Append fails with NotFound: inform user, suggest Cover mode to create group. Do NOT silently switch modes.
---aliyun elasticsearch modify-white-ips
--instance-id <InstanceId> --read-timeout 30
--body '{"modifyMode":"Append","whiteIpGroup":{"groupName":"default","ips":["172.16.0.0/12"],"whiteIpType":"PRIVATE_ES"}}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId> --read-timeout 30
--body '{"modifyMode":"Append","whiteIpGroup":{"groupName":"default","ips":["172.16.0.0/12"],"whiteIpType":"PRIVATE_ES"}}'
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
**modifyMode说明:**
| 模式 | 描述 |
|------|-------------|
| `Cover` | 覆盖模式(默认)。空ips将删除组;不存在的groupName将创建新组 |
| `Append` | 增量添加模式。组必须已存在,否则返回NotFound错误 |
| `Delete` | 删除模式。移除指定IP,组中至少需保留一个IP |
> **重要提示:modifyMode选择指南**
> - 增量添加使用`Append`,完全替换使用`Cover`,删除IP使用`Delete`
> - **若用户意图不明确,必须询问用户**使用哪种模式后再执行
> - 若Append模式返回NotFound错误:告知用户,建议使用Cover模式创建组。不得静默切换模式。
---Task 5: Open HTTPS (Enable HTTPS)
任务5:开启HTTPS(启用HTTPS)
Enable HTTPS access for an Elasticsearch instance.
Pre-check: Call DescribeInstance first to check. If alreadyResult.protocol, skip OpenHttps and inform user HTTPS is already enabled.HTTPS
bash
undefined为Elasticsearch实例启用HTTPS访问。
预检查:先调用DescribeInstance检查。若已为Result.protocol,跳过OpenHttps操作并告知用户HTTPS已启用。HTTPS
bash
undefinedCheck current HTTPS status
检查当前HTTPS状态
protocol=$(aliyun elasticsearch describe-instance
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.protocol')
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.protocol')
if [ "$protocol" == "HTTPS" ]; then
echo "✅ HTTPS is already enabled, no action needed"
else
Enable HTTPS
aliyun elasticsearch open-https
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi
---protocol=$(aliyun elasticsearch describe-instance
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.protocol')
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.protocol')
if [ "$protocol" == "HTTPS" ]; then
echo "✅ HTTPS已启用,无需操作"
else
启用HTTPS
aliyun elasticsearch open-https
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi
---Task 6: Close HTTPS (Disable HTTPS)
任务6:关闭HTTPS(禁用HTTPS)
Disable HTTPS access for an Elasticsearch instance.
Pre-check: Call DescribeInstance first to check. If alreadyResult.protocol, skip CloseHttps and inform user HTTPS is already disabled.HTTP
bash
undefined为Elasticsearch实例禁用HTTPS访问。
预检查:先调用DescribeInstance检查。若已为Result.protocol,跳过CloseHttps操作并告知用户HTTPS已禁用。HTTP
bash
undefinedCheck current HTTPS status
检查当前HTTPS状态
protocol=$(aliyun elasticsearch describe-instance
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.protocol')
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.protocol')
if [ "$protocol" == "HTTP" ]; then
echo "✅ HTTPS is already disabled, no action needed"
else
Disable HTTPS
aliyun elasticsearch close-https
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi
---protocol=$(aliyun elasticsearch describe-instance
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.protocol')
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage | jq -r '.Result.protocol')
if [ "$protocol" == "HTTP" ]; then
echo "✅ HTTPS已禁用,无需操作"
else
禁用HTTPS
aliyun elasticsearch close-https
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi
--instance-id <InstanceId>
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage fi
---Task 7: Update Kibana PVL Network (Update Kibana Private Network Configuration)
任务7:更新Kibana PVL网络(更新Kibana私网配置)
Update Kibana private network access configuration, primarily used for modifying security groups.
Prerequisites:
- This API only supports cloud-native instances (archType=public). For basic management instances, use TriggerNetwork.
- Kibana specification must be greater than 1 core 2GB.
- Instance must have Kibana private network access enabled.
Use Case: Use this API when cloud-native instances need to modify Kibana private network access security groups (whitelist control).
Request Parameters:
| Parameter | Type | Location | Required | Description |
|---|---|---|---|---|
| String | Path | Yes | Instance ID |
| String | Query | Yes | Kibana private link ID, format: |
| String | Body | No | Endpoint name |
| Array | Body | No | Security group ID array |
bash
undefined更新Kibana私网访问配置,主要用于修改安全组。
前提条件:
- 此API仅支持云原生实例(archType=public)。对于基础管理实例,请使用TriggerNetwork。
- Kibana规格必须大于1核2GB。
- 实例必须已启用Kibana私网访问。
使用场景:云原生实例需要修改Kibana私网访问安全组(白名单控制)时使用此API。
请求参数:
| 参数 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| String | Path | 是 | 实例ID |
| String | Query | 是 | Kibana私网链接ID,格式: |
| String | Body | 否 | 端点名称 |
| Array | Body | 否 | 安全组ID数组 |
bash
undefinedUpdate Kibana private network security group
更新Kibana私网安全组
aliyun elasticsearch update-kibana-pvl-network
--instance-id <InstanceId>
--pvl-id <InstanceId>-kibana-internal-internal
--body '{"securityGroups": ["<NewSecurityGroupId>"]}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId>
--pvl-id <InstanceId>-kibana-internal-internal
--body '{"securityGroups": ["<NewSecurityGroupId>"]}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
---aliyun elasticsearch update-kibana-pvl-network
--instance-id <InstanceId>
--pvl-id <InstanceId>-kibana-internal-internal
--body '{"securityGroups": ["<NewSecurityGroupId>"]}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId>
--pvl-id <InstanceId>-kibana-internal-internal
--body '{"securityGroups": ["<NewSecurityGroupId>"]}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
---Task 8: Update Kibana SSO (Enable/Disable Kibana Alibaba Cloud Account Authentication)
任务8:更新Kibana SSO(启用/禁用Kibana阿里云账号认证)
Enable or disable Kibana Alibaba Cloud account SSO authentication. When enabled, users must log in with their Alibaba Cloud account before using Kibana.
Prerequisites: This API only supports cloud-native instances (archType=public).
Pre-check: Call DescribeInstance to check/Result.enableKibanaPublicSSO. If desired state already achieved, skip the call.Result.enableKibanaPrivateSSO
Parameters: See references/related-apis.md for full details.
bash
undefined启用或禁用Kibana阿里云账号SSO认证。启用后,用户必须先使用阿里云账号登录才能使用Kibana。
前提条件:此API仅支持云原生实例(archType=public)。
预检查:调用DescribeInstance检查/Result.enableKibanaPublicSSO。若已达到期望状态,跳过调用。Result.enableKibanaPrivateSSO
参数详情:请查看 references/related-apis.md 获取完整信息。
bash
undefinedEnable Kibana SSO for public network
启用Kibana公网SSO
aliyun elasticsearch update-kibana-sso
--instance-id <InstanceId>
--body '{"enable":true,"networkType":"PUBLIC"}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId>
--body '{"enable":true,"networkType":"PUBLIC"}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
aliyun elasticsearch update-kibana-sso
--instance-id <InstanceId>
--body '{"enable":true,"networkType":"PUBLIC"}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId>
--body '{"enable":true,"networkType":"PUBLIC"}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
Disable Kibana SSO for private network
禁用Kibana私网SSO
aliyun elasticsearch update-kibana-sso
--instance-id <InstanceId>
--body '{"enable":false,"networkType":"PRIVATE"}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId>
--body '{"enable":false,"networkType":"PRIVATE"}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
---aliyun elasticsearch update-kibana-sso
--instance-id <InstanceId>
--body '{"enable":false,"networkType":"PRIVATE"}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
--instance-id <InstanceId>
--body '{"enable":false,"networkType":"PRIVATE"}'
--read-timeout 30
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-elasticsearch-network-manage
---Success Verification Method
成功验证方法
For detailed verification steps, see references/verification-method.md. After each operation, check in response and call DescribeInstance to confirm changes.
RequestId详细验证步骤请查看 references/verification-method.md。每次操作后,检查响应中的并调用DescribeInstance确认变更。
RequestIdBest Practices
最佳实践
- Cloud-native Kibana: Private network uses EnableKibanaPvlNetwork/DisableKibanaPvlNetwork. Whitelist via UpdateKibanaPvlNetwork. SSO via UpdateKibanaSso (archType=public only).
- Security: Use 0.0.0.0/0 with caution. Enable HTTPS in production.
- Reliability: Use clientToken for idempotency. Retry on /
InstanceStatusNotSupportCurrentAction(wait 30-60s). Check current state before changes, skip if desired state already achieved.ConcurrencyUpdateInstanceConflict
- 云原生Kibana:私网使用EnableKibanaPvlNetwork/DisableKibanaPvlNetwork。通过UpdateKibanaPvlNetwork配置白名单。通过UpdateKibanaSso配置SSO(仅支持archType=public)。
- 安全:谨慎使用0.0.0.0/0。生产环境中启用HTTPS。
- 可靠性:使用clientToken保证幂等性。遇到/
InstanceStatusNotSupportCurrentAction时重试(等待30-60秒)。变更前检查当前状态,若已达到期望状态则跳过操作。ConcurrencyUpdateInstanceConflict
Reference Links
参考链接
| Reference | Description |
|---|---|
| references/related-apis.md | API and CLI command reference table |
| references/ram-policies.md | RAM permission policies |
| references/cli-installation-guide.md | CLI installation guide |
| references/verification-method.md | Verification methods |
| references/acceptance-criteria.md | Acceptance criteria |
| 参考文档 | 描述 |
|---|---|
| references/related-apis.md | API和CLI命令参考表 |
| references/ram-policies.md | RAM权限策略 |
| references/cli-installation-guide.md | CLI安装指南 |
| references/verification-method.md | 验证方法 |
| references/acceptance-criteria.md | 验收标准 |