Какой диапазон cidr я должен использовать в своей политике ресурсов шлюза api, чтобы lambda могла вызывать мою конечную точку? - PullRequest
0 голосов
/ 06 февраля 2020

Я установил следующую политику ресурсов в шлюзе API, чтобы ограничить доступ к исходному IP-адресу (х - просто заполнитель). Когда я вручную нажимаю на конечную точку API от почтальона, политика корректно ограничивает доступ только к диапазону cidr, который я указал в политике ресурсов ниже.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:x:x/*/*/*”
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:x:x/*/*/*”,
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        “x.x.x.x/32"
                    ]
                },
                "StringNotEquals": {
                    "aws:sourceVpc": "vpc-x”
                }
            }
        }
    ]
}

Однако у меня есть лямбда-функция, которая также вызывает ту же конечную точку шлюза https api. Эта функция, по сути, просто передает тестовые данные в мой API с почасовыми интервалами. Но лямбда-функция не может попасть в конечную точку и получает ошибку 403. Я попытался добавить sourceVpc в политику ресурсов, но это не помогло. Я также попытался добавить диапазон vp c cidr, но опять же это не сработало.

Знаете ли вы, какой cidr я должен добавить в политику ресурсов, чтобы моя лямбда также могла вызывать мою конечную точку api?

1 Ответ

0 голосов
/ 07 февраля 2020

Я добавил в политику ресурсов "aws: SourceIp" ip шлюза NAT подсетей, связанных с моей лямбда-функцией. Это позволило моей лямбда-функции успешно вызывать API-шлюз.

...