Как получить доступ к Redshift из Lambda из VPC в другой учетной записи - PullRequest
1 голос
/ 26 марта 2019

Я прочитал большинство вопросов Stackoverflow и кучу документов в Интернете, но по какой-то причине не могу заставить лямбду подключаться к Redshift, когда Redshift находится в другом VPC и другой учетной записи AWS.

Iиметь две подсети, связанные с VPC, и интернет-шлюз и NAT-шлюз подключены к VPC.Это VPC, с которым связана лямбда-функция.Я добавил NATastic ip в группу безопасности группы безопасности Redshift.NAT находится в таблице маршрутизации, указывающей на Redshift Elastic ip.

I следующие методы работают:

  • извлечение лямбды из VPC и открытие Redshift для публики (0.0.0.0)что не идеально
  • закрытие Redshift для публики и выполнение запроса из экземпляра EC2 в VPC, где есть функция Lambda (поместите ip EC2 в группу безопасности Redshift)

Anyидея, как заставить лямбду использовать эластичный ip NAT или что-то в этом роде?Нужно ли указывать в таблице маршрутизации NAT на эластичный IP-адрес Redshift или блок CIDR или что-то подобное?Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Как вы сказали, открытие вашего Redshift для Интернета - это не лучший ответ, вам стоит подумать об использовании его только в Интернете.

Итак, ниже вы найдете то, что я вам рекомендую: - Свяжите Lambda VPC с Redshift VPC, используя пиринг VPC (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html).. Соблюдайте все шаги для таблицы маршрутов. - После того, как ваш пиринг VPC будет установлен, вы сможете напрямую объявить вашу Lambda Security Group в вашу группу Redshift Security, чтобы разрешить входящий доступ.

После этого вы сможете удалить интернет-соединение вашего Redshift Cluster и использовать его только для внутреннего использования.

Тогда, если вы все еще хотите использовать свой путь, будьте осторожны с: - Будьте внимательны при развертывании Lambda в своих частных подсетях (чтобы можно было использовать NAT Gateway EIP) и убедитесь, что все ваши маршруты настроены (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html). Если вы развернете свою лямбду в общедоступных подсетях, это будет сложнее настроить вашу группу безопасности Redshift. - Затем разрешите свой Lambda VPC EIP для группы безопасности Redshift (входящее правило)

0 голосов
/ 26 марта 2019

Я понял, используя следующую суть: https://gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7

По сути, я ошибался, используя одну таблицу маршрутов. Я также указывал NAT на эластичный ip Redshift.

Все, что мне нужно было сделать, это удалить NAT из исходной таблицы маршрутов и создать новую дополнительную таблицу маршрутов. Затем я добавляю NAT в новую таблицу маршрутов и связываю эту таблицу маршрутов с другой подсетью, которая находится в VPC. Я указываю NAT на 0.0.0.0 вместо эластичного ip Redshift.

Это позволило мне избавиться от проблемы «открытого доступа» в группе безопасности Redshift. Я также считаю, что NAT помогает Lambda оставаться защищенным от общедоступных подключений, но для этого потребуется разъяснение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...