Ограничения IP-трафика шлюза API AWS - использование DNS вместо IP-адреса - PullRequest
0 голосов
/ 20 декабря 2018

В настоящее время у меня есть AWS API Gateway, который используется клиентом в качестве ресурса зависимостей для клиентского приложения API.Клиентское приложение API в настоящее время размещено в Azure и сбалансировано по нагрузке.

Учитывая, что политика ресурсов AWS API Gateway применяет трафик API Allow / Deny на основе IP-адреса или диапазона источника, могу ли я использовать размещенный DNS своего клиента, а не фактический IP-адрес, в качестве записи элемента IP в политике (см.Пример политики ниже)?

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Principal": "*",
        "Action": "execute-api:Invoke",
        "Resource": [
            "arn:aws:execute-api:region:account-id:api-id/*"
        ]
    },
    {
        "Effect": "Allow",
        "Principal": "*",
        "Action": "execute-api:Invoke",
        "Resource": [
           "arn:aws:execute-api:region:account-id:api-id/*"
        ],
        "Condition" : {
            "IpAddress": {
                "aws:SourceIp": ["192.0.2.0/24", "clientsite.azurewebsites.net" ]
            }
        }
    }
]

}

Если нет, то как лучше предоставить облачному приложению доступ к ресурсу AWS API Gateway?

Большое спасибо!

1 Ответ

0 голосов
/ 20 декабря 2018

В документе AWS говорится:

aws: ключ SourceIp.Значение должно быть в стандартном формате CIDR (например, 203.0.113.0/24 или 2001: DB8: 1234: 5678 :: / 64)

Поэтому я подозреваю, что оно не будет работать.

Другие способы защиты запроса на уровне шлюза API

  • Потребитель API может подписать запрос (необходимо предоставить ключи), или
  • Потребитель API может принудительно заставитьвесь их трафик проходит через один IP (используя эквивалент шлюза NAT в Azure)
  • Потребитель API может использовать один из предоставленных вами ключа API
...