Когда я хочу удалить элемент из индекса, он выходит из строя и показывает нам следующую трассировку ОШИБКИ:
org.springframework.data.elasticsearch.ElasticsearchException: Невозможно выполнить действие jest, ответкод: 403, ошибка: 403 Запрещено, сообщение: рассчитанная нами подпись запроса не соответствует предоставленной вами подписи.Проверьте свой секретный ключ доступа AWS и метод подписи.За подробностями обратитесь к документации по сервису.
Я создал метод «removeBy ...» в репозитории ElasticsearchRepository для удаления элементов из нашего индекса:
public interface IndexSynonymRepository extends ElasticsearchRepository<IdxSynonym, Long> {
void removeByIdDashboardAndIdTable(Long idDashBoard, Long idTable);
}
Включенные версиив мой проект JAVA входят следующие версии конфигурации POM:
<!-- Spring Data Jest ElasticSearch AWS -->
<dependency>
<groupId>com.github.vanroy</groupId>
<artifactId>spring-boot-starter-data-jest</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
<!-- Spring Data ElasticSearch -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<!-- Jest -->
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>2.0.4</version>
</dependency>
<!-- ElasticSearch -->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.4.4</version>
</dependency>
<!-- Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath />
<!-- lookup parent from repository -->
</parent>
<!-- Aws Signing Request Interceptor -->
<dependency>
<groupId>vc.inreach.aws</groupId>
<artifactId>aws-signing-request-interceptor</artifactId>
<version>0.0.20</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>*</artifactId>
<groupId>com.amazonaws</groupId>
</exclusion>
</exclusions>
</dependency>
Политики ролей, которые мы настроили в AWS, следующие:
Access Policy ElasticSearch:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": [
"arn:aws:es:us-east-1:XXXXXXXXXXXX:domain/my-domain/*",
"arn:aws:es:us-east-1:XXXXXXXXXXXX:domain/my-domain"
]
}
]
}
EC2 Role Policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"es:*"
],
"Resource": [
"arn:aws:es:us-east-1:XXXXXXXXXXXX:domain/my-domain",
"arn:aws:es:us-east-1:XXXXXXXXXXXX:domain/my-domain/*"
],
"Effect": "Allow"
}
]
}
Я не знаю, если это проблема разрешений или я сделал ошибку при подписании приложения.
Мне нужна помощь, чтобы решить эту проблему,Заранее большое спасибо.