AWS: как разрешить Lambda вызывать IP-шлюз из белого списка IP-адресов? - PullRequest
0 голосов
/ 06 марта 2020

У меня есть IP-белый список Resource Policy на AWS API Gateway, как показано ниже. Теперь у меня есть Lambda, который должен вызывать этот API, но в настоящее время правильно запрещено.


   {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": "*",
                "Action": "execute-api:Invoke",
                "Resource": "..."
            },
            {
                "Effect": "Deny",
                "Principal": "*",
                "Action": "execute-api:Invoke",
                "Resource": "...",
                "Condition": {
                    "NotIpAddress": {
                        "aws:SourceIp": [
                            "...",
                            "...",

                        ]
                    }
                }
            }
        ]
    }

Функция Lambda настроена для доступа к моему VP C:

      VpcConfig:
        SubnetIds:
          - "subA"
          - "subB"
        SecurityGroupIds:
          - "sg1"

У меня вопрос в два раза:

  1. Как мне изменить API Resource Policy разрешить доступ из этой функции? Замена политики белого списка приведенным ниже фрагментом не работает. ("User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:... with an explicit deny")
  {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "arn:aws:execute-api:..."
            ],
            "Condition" : {
                "StringNotEquals": {
                   "aws:SourceVpc": "{{ID of VPC attached to Lambda}}"
                }
            }
        }
Добавление приведенного выше фрагмента к существующей политике также нарушает существующую политику белого списка (весь доступ запрещен с идентичным сообщением, как указано выше). Как составить несколько политик рядом друг с другом? Они? Это and или or композиция?

1 Ответ

1 голос
/ 06 марта 2020

Я не думаю, что SourceVpc в Политике ресурсов API будет работать, если только ваш API-шлюз не является частным API для VP C.

Поскольку ваша функция Lambda уже запущена в VP C, вам нужно просто добавить IP-адреса ваших шлюзов VP C NAT в список разрешенных IP-адресов шлюза API.

...