Снимок экрана консоли ES Role Selection
Попытка поместить документ в AWS ES-кластер. Код:
from elasticsearch import Elasticsearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth
import boto3
host = 'search-dev-operations-2-XXXXXXXX.us-east-2.es.amazonaws.com' # For example, my-test-domain.us-east-1.es.amazonaws.com
region = 'us-east-2' # e.g. us-west-1
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)
es = Elasticsearch(
hosts = [{'host': host, 'port': 443}],
http_auth = awsauth,
use_ssl = True,
verify_certs = True,
connection_class = RequestsHttpConnection
)
document = {
"title": "Moneyball",
"director": "Bennett Miller",
"year": "2011"
}
es.index(index="dev-operations-2", doc_type="_doc", id="5", body=document)
print(es.get(index="dev-operations-2", doc_type="_doc", id="5"))
Получение этого сообщения об ошибке:
elasticsearch.exceptions.AuthorizationException: AuthorizationException(403, '{"Message":"User: arn:aws:iam::XXXXXX:user/andrey.tantsuyev@XXXtechnology.com is not authorized to perform: es:ESHttpPut with an explicit deny"}')
Установите arn:aws:iam::XXXXXX:user/andrey.tantsuyev@XXXtechnology.com
в качестве основного пользователя IAM с помощью мелкозернистого доступа. Это мой AWS пользователь
Кто-нибудь может мне помочь, пожалуйста? Понятия не имею, почему я не авторизован.
Снимок экрана ES Cluster details