Я читал, что многие люди с трудом подключают свою Lambda к DynamoDB, потому что живут в VPC. Но мой вопрос: зачем вообще использовать VPC?
VPC предназначены для защиты услуг с прямым подключением к внешнему миру (он же Интернет). Например, такие вещи, как RDS, которые просто сидячие утки, ожидающие запроса от любого, кто знает URL-адрес, и поэтому могут стать жертвой DDoS или эксплойтов нулевого дня, которые, среди прочего, могут обойти учетные данные.
Но AWS Lambda и DynamoDB не являются такими вещами, они не имеют прямого подключения к Интернету. Их доступ защищен учетными данными IAM и де-факто безопасен для таких эксплойтов DDoS/0Day.
Отсюда вопрос, зачем использовать VPC для Lambda/DynamoDB, если они не получают от этого никакой пользы, а наоборот усложняют настройку?
Я не вижу преимуществ использования VPC ни для Lambda, ни для DynamoDB.
Но может мое понимание неверно?
И, может быть, мне кажется, что этот вопрос не так уж «ориентирован на программирование», но поскольку бессерверный мир и облачные вычисления приобретают все большее значение в нашей жизни (как разработчиков), это вопрос, который я задаю себе как разработчик, который делает все больше и больше работы devOps/admin sys. Похоже, я должен был написать в другом месте, но мне лично трудно точно определить форум по обмену стеками для подобных вопросов, их так много.
Голосование против здесь несколько произвольно. Однажды меня проголосовали за предоставление указателей на решение, но не за само решение. Я предполагаю, что некоторые люди все еще ожидают, что их будут кормить с ложечки.





Если вашей функции Lambda нужно только подключиться к DynamoDB, было бы неправильно размещать функцию Lambda в VPC.
Если вашей функции Lambda требуется доступ к экземпляру EC2, экземпляру RDS или какой-либо другой службе, работающей внутри VPC, а также необходимо подключиться к DynamoDB, тогда функция Lambda должна будет работать в VPC, и вам нужно будет предоставить доступ к DynamoDB через конечную точку VPC или шлюз NAT.
О, это действительно имеет смысл! Не думал об этом, так как моя Lambda подключается только к DynamoDB. Я понимаю лучше, это похоже на HTTPS, если один сервис использует HTTPS, то все должны делать, иначе это небезопасно/разрешено.
Я слышал опасения по поводу безопасности исходного кода для Lambdas за пределами VPC. Тогда я не мог следить за разговором, но есть ли у вас какая-либо информация на этот счет?
@ASR развернуты на одних и тех же серверах, независимо от того, «работают ли они в VPC» или нет. Они развертываются на серверах AWS, которые на самом деле не находятся в вашем VPC, и просто получают эластичный сетевой интерфейс (ENI) от вашего VPC, подключенного к ним, если вы настроили их с доступом к VPC. Так что в любом случае безопасность исходного кода будет одинаковой.
Пожалуйста, объясните причины понижения голосов, мне нравится понимать, что я делаю неправильно :)