You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python使用主用户连接AWS OpenSearch域

AWS OpenSearch域校验与Python主用户连接指引

域配置校验(对照官方指南补漏)

所有配置修改后必须等待域状态从「处理中」变更为「可用」再测试,配置生效通常需要10-15分钟,刚改完配置连不上属于正常情况。

  • 主用户配置校验:进入域详情的安全配置页,确认你选择的是内置主用户模式,记录好设置的主用户名、密码,密码尽量避免使用@、#这类特殊URL保留字符,防止编码导致认证失败。
  • 访问策略校验:公有访问域必须在访问策略中放通你运行代码的机器的公网IP,参考最小权限策略配置:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "es:*",
      "Resource": "替换为你的OpenSearch域ARN/*",
      "Condition": {
        "IpAddress": {"aws:SourceIp": ["替换为你的出口公网IP/32"]}
      }
    }
  ]
}

VPC私有域需要确认运行代码的资源在域所属VPC内,关联的安全组入方向放通443端口到代码运行资源的IP/安全组。

  • 端点校验:在域概述页复制官方给出的访问端点,格式为https://search-<域标识>-<随机串>.<区域>.es.amazonaws.com,不要手动拼接域名,不要添加末尾斜杠。

Python连接实现

首先安装依赖包:
pip install opensearch-py

内置主用户(用户名密码认证,即你创建域时手动设置账号密码的模式)

from opensearchpy import OpenSearch

# 替换为你的配置
DOMAIN_HOST = "search-xxx.us-east-1.es.amazonaws.com" # 去掉https前缀
MASTER_USER = "你的主用户名"
MASTER_PWD = "你的主用户密码"
REGION_PORT = 443

client = OpenSearch(
    hosts=[{"host": DOMAIN_HOST, "port": REGION_PORT}],
    http_auth=(MASTER_USER, MASTER_PWD),
    use_ssl=True,
    verify_certs=True,
    ssl_show_warn=False,
    timeout=30
)

# 连通性测试
if client.ping():
    cluster_info = client.info()
    print(f"连接成功,集群版本:{cluster_info['version']['number']}")
else:
    print("连接失败,请按下方排错项检查")

IAM主用户认证(创建域时选择IAM身份作为主用户的场景)

如果选择IAM身份作为主用户,不能使用用户名密码认证,需要做请求签名,额外安装依赖pip install requests-aws4auth,连接代码如下:

from opensearchpy import OpenSearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth

DOMAIN_HOST = "search-xxx.us-east-1.es.amazonaws.com"
REGION = "us-east-1" # 替换为你的域所在区域
AWS_AK = "你的IAM用户AK"
AWS_SK = "你的IAM用户SK"

aws_auth = AWS4Auth(AWS_AK, AWS_SK, REGION, "es")
client = OpenSearch(
    hosts=[{"host": DOMAIN_HOST, "port": 443}],
    http_auth=aws_auth,
    use_ssl=True,
    verify_certs=True,
    connection_class=RequestsHttpConnection,
    timeout=30
)

print("连接成功" if client.ping() else "连接失败")

常见报错排查

  • 403权限错误:优先检查访问策略IP配置是否正确,主用户凭证是否输入错误,确认精细访问控制未给主用户添加额外限制(新建主用户默认绑定超级管理员角色,无需额外配置)。
  • 连接超时/拒绝连接:本地先执行curl -v https://你的域端点测试网络连通性,不通则排查安全组、网络ACL、IP白名单配置,VPC域确认路由、终端节点配置正确。
  • SSL证书错误:检查本地是否开启抓包代理、VPN导致证书劫持,测试阶段可临时将verify_certs设为False验证,生产环境必须开启证书校验。

内容的提问来源于stack exchange,提问作者Serhii Mirko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:54:16