Я пытаюсь понять, как запускается элемент условия в политиках ресурсов для AWS API-Gateway.
Я пытался использовать SourceIP для блокировки всего трафика, разрешив только 128.0.0.0/1 и 0.0.0.0 / 1, но мне удавалось использовать мой API с одного и того же IP-адреса оба раза.Я также пытался заблокировать мой API с помощью CurrentTime.Но ничто из того, что я добавляю к своему состоянию, похоже, не мешает мне вызывать мой API.Что я неправильно понимаю?
Моя текущая попытка заблокировать мой API от всех вызовов такова:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<AccountID>:root"
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:us-west-2:<AccountID>:<API>/*/*",
"Condition": {
"DateGreaterThan": {
"aws:CurrentTime": "2019-12-15T12:00:00Z"
}
}
}
]
}
Насколько я понимаю, с указанием «DateGreaterThan» «CurrentTime» до декабря 2019 года, когда онв настоящее время сентябрь 2019 года, этот API не должен вызываться в течение следующих трех месяцев.
Может кто-нибудь показать мне, куда я иду с трека?
Заранее спасибо!
PS: у меня правильная авторизация в теле с использованием AWS PublicKey / SecretKey.Я просто хочу заблокировать мой вызов с условием.
PPS: я забыл упомянуть, что я подтвердил, что мое развертывание API использует эту политику ресурсов, поскольку мой API отклонял вызовы до того, как я добавил свой AWSPublicKey / SecreyKey.(Я включил авторизацию AWS_IAM)
По просьбе Джои Килпатрика, вот моя обновленная (все еще неэффективная) политика ресурсов.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<AccountID>:user/Service_Account"
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:us-west-2:<AccountID>:<API>/*/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "0.0.0.0/1"
}
}
}
]
}
В этом случае я использую API с 147.xxx IP, поэтому я ожидаю, что этот API возвратит 403. Я также проверил с ранее заявленным условием «CurrentTime».