Выполнение AWS Lamda может происходить в любом месте облака AWS. Есть ли способ заставить его работать в одном VPC? Как защитить функцию Lamda?
Как обеспечить безопасную работу AWS Lamda в облаке VPC?
Ответы (1)
Функции AWS Lambda всегда выполняются в VPC, но по умолчанию не в одном из VPC, созданных в вашей учетной записи. Чтобы запустить их в VPC в своей учетной записи, вы должны предоставить конфигурацию VPC для своей функции AWS Lambda. AWS Lambda будет использовать эту конфигурацию для настройки эластичного сетевого интерфейса (ENI) в облаке VPC, который затем будет использовать ваша функция AWS Lambda.
Вот пример из раздела «Настройка лямбда-функции для доступа к ресурсам в Amazon. VPC», как добавить такую конфигурацию VPC при создании функции AWS Lambda. Обратите внимание на параметр vpc-config
:
aws lambda create-function \
--function-name ExampleFunction \
--runtime go1.x \
--role execution-role-arn \
--zip-file fileb://path/app.zip \
--handler app.handler \
--vpc-config SubnetIds=comma-separated-vpc-subnet-ids,SecurityGroupIds=comma-separated-security-group-ids \
--memory-size 1024
При этом помните о недостатках запуска функций AWS Lambda в VPC, как описано в Рекомендации по работе с функциями AWS Lambda. Как резюмирует AWS:
Не размещайте свою функцию Lambda в VPC, если в этом нет необходимости. Нет никакой выгоды, кроме использования этого для доступа к ресурсам, которые вы не можете предоставить публично, например к частному реляционная база данных Amazon. Такие сервисы, как Amazon Elasticsearch Service, могут быть защищены через IAM с помощью политик доступа, поэтому публичное раскрытие конечной точки безопасно и не требует запуска вашей функции в VPC для ее защиты.