Я реализовал AWS -Elasti c Поиск моего angular приложения с правами доступа publi c, так как любой пользователь может запрашивать данные с помощью моего веб-сайта. Поэтому он работает, как ожидалось. Я использовалasticsearch-browser клиент для реализации поиска, как показано ниже
import { Client } from 'elasticsearch-browser';
.....
this.client = new Client({
host: 'https://search-XXXXXXXX.us-east-1.es.amazonaws.com/',
apiVersion: '7.x'
});
....
const results = await this.client.search({
index: 'XXX',
type: 'XXXXXXXX',
body: {
"query" : {
"match": {
"projectTitle": searchtearm
}
},
},
},
);
Поскольку это общедоступно c я думаю, что очень небезопасно предоставлять все права доступа es: ESHttpPost, es: ESHttpPut для любых неизвестных пользователей. поэтому я хотел предоставить только пользователям возможность поиска. Создание и изменение индекса с использованием только аутентифицированных пользователей
Это моя текущая политика доступа
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:XXXXXXXXX:domain/CXDXXXX-dev/*"
}
]
}
Как я могу изменить открытый доступ для всех и изменения только для аутентифицированных пользователей
я уже пробовал это ниже
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:ESHttpGet",
"Resource": "arn:aws:es:us-east-1:XXXXXdomain/XXXXXXXXev/*"
}
]
}
, но это не сработало, спрашивая es: ESHttpPost доступ для поиска. Может кто-нибудь помочь с этим, пожалуйста ..!