#amazon-web-services #aws-api-gateway #amazon-cloudsearch
#amazon-веб-сервисы #aws-api-gateway #amazon-cloudsearch
Вопрос:
Я хотел бы получить доступ к CloudSearch только из API Gateway, потому что мне не нравится идея общедоступного доступа к моей конечной точке CloudSearch. Я попытался добавить политику доступа:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::*********:user/admin"
},
"Action": [
"cloudsearch:search",
"cloudsearch:suggest"
]
}
]
}
Когда я пытаюсь получить доступ к конечной точке CloudSearch из своего браузера, я получаю User: anonymous is not authorized to perform: cloudsearch:search
.
API Gateway получает "Request forbidden by administrative rules"
.
Моей конечной точкой шлюза API является HTTP GET, а URI установлен для моей конечной точки cloudsearch. Я все делаю правильно? Как люди обычно это настраивают, я впервые использую обе службы. Я использую CloudSearch для поля ввода автозаполнения на веб-сайте.
Ответ №1:
Вам также необходимо настроить доверительные отношения для вашей роли IAM, которую использует API Gateway, в противном случае он не сможет взять на себя эту роль. Ознакомьтесь с документами здесь, в разделе «Предварительные требования»
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "apigateway.amazonaws.com"
},
"Action": "sts:AssumeRole"
}]
}
Также убедитесь, что вы включили CORS в своем API, иначе это также может привести к ошибке.