AWS Elasticsearch IAM в качестве основного пользователя, получающего исключение AuthorizationException при попытке поместить данные - PullRequest
1 голос
/ 24 марта 2020

Снимок экрана консоли 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

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Проблема была в том, что у Андрея. tantsuyev@XXXtechnology.com были ограничения MFA. Все, что я реализовал на предположении, что с учетными данными MFA все стало работать нормально.

0 голосов
/ 24 марта 2020

Это не проблема в ElasticSearch, она блокируется на основе политик, связанных с вашим пользователем IAM.

Go для консоли службы IAM и ищите разрешения для пользователя andrey.tantsuyev@XXXtechnology.com , Похоже, что существует оператор «Запретить», связанный с одной из групп / политик, связанных с пользователем, который соответствует действию es:ESHttpPut.

...