在Amazon ES中,你必须进行身份验证才能访问你的集群。如果出现身份验证错误并显示403错误,则说明你的凭证无法通过验证。有以下几个可能的原因:
以下示例展示了如何在使用Python的情况下实现访问Amazon ES的身份验证:
from elasticsearch import Elasticsearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth
import boto3
host = 'search-es-domain.region.es.amazonaws.com' # Amazon ES端点
region = 'us-west-2' # 区域
service = 'es'
# IAM身份验证
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key,
region, service, session_token=credentials.token)
# Elasticsearch连接
es = Elasticsearch(
hosts=[{'host': host, 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
# 进行测试
es.info()
在这个示例中,我们使用了AWS4Auth模块来进行IAM身份验证。将credentials.access_key、credentials.secret_key和credentials.token替换为你的Access Key、Secret Key和Token。在es.info()中,我们使用Elasticsearch的info()方法来测试连接是否成功。
如果你想要更多的示例和详细说明,请参考AWS官方文档。