AWS Lambda отстает от VPC при общении с S3 даже с конечной точкой - PullRequest
0 голосов
/ 25 октября 2019

У меня есть лямбда за VPC. Когда я пытаюсь получить объект S3, я получаю ошибку «connect ETIMEDOUT». Я настроил конечную точку и все еще имею эту проблему.

Я могу получить объект, если удаляю VPC, так что я знаю, что проблема связана с VPC, а не с разрешениями.

У меня былоуже настроил интернет-шлюз для связи с внешним миром (и я подтвердил, что это работает). После переполнения стека и этих инструкций (https://aws.amazon.com/blogs/aws/new-vpc-endpoint-for-amazon-s3/), я создал конечную точку для обслуживания "com.amazonaws.us-east-1.s3" с "полным доступом" и связал ее с таблицей маршрутов, которую я создал, чтобы выйти наружу-world access.

Снимок экрана: создана конечная точка шлюза VPC

Все VPC, лямбда и S3 находятся в одном регионе (лямбда и S3 создаются черезSAM.)

Первоначально у меня были объекты AWS и S3 по умолчанию. Я попытался установить область для обоих без удачи.

AWS.config.update({ region: 'us-east-1'});
const s3 = new AWS.S3({ region: 'us-east-1' });
const s3FileParams = {
  Bucket: srcBucket,
  Key: srcKey,
};
const resp = await s3.getObject(s3FileParams).promise();

Я также попытался явно указать конечную точку s3 как s3 = new AWS.S3({ endpoint: 'https://s3.us-east-1.amazonaws.com' });

Сообщите мне любую другую информацию, которую я могу предоставить, и спасибо заранее.

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Требования для использования конечной точки шлюза S3:

  • Убедитесь, что политика конечных точек разрешает соответствующий доступ к S3. Это требуется в дополнение к разрешениям IAM Lambda.
  • Добавьте запись в таблицы (таблицы) маршрутов, используемые любыми подсетями, которым необходимо использовать шлюз.
  • Убедитесь, что группа безопасности Lambda позволяетисходящий HTTPS-трафик в Интернет (0.0.0.0/0) или в ID списка префиксов (pl-xxxxxxx) для S3 в вашем регионе.
  • Вы должны включить разрешение DNS в своем VPC. Включите атрибуты enableDnsHostnames и enableDnsSupport на VPC.
  • Доступ к сегментам S3 должен находиться в той же области, что и VPC.
0 голосов
/ 25 октября 2019

Ответом был пункт 3 в списке Грега выше. Я переключился на новую группу безопасности, которая (на данный момент) позволила всему трафику что-либо в исходящих правилах, и это решило мою проблему. (Теперь, когда я знаю, что есть путь вперед, я могу экспериментировать с лучшими правилами для исходящих сообщений.)

Спасибо всем! (И тем, кто писал о конечных точках VPC в других вопросах.)

...