Я развертываю API с моделью искусственного интеллекта на AWS. Для этого я создал ECS Fargate с группой безопасности. Мой API должен хранить секреты, поэтому я также использую диспетчер секретов.
Проблема в том, что я хочу запретить весь исходящий трафик (за пределами моего VPC) в целях безопасности, но когда я добавляю правило для исходящего трафика в свою группу безопасности, моя ECS больше не может получить доступ к диспетчеру секретов.
Я попытался добавить правило:
– sgr-id IPv4 All traffic All All <vpc cidr>
потому что я думал, что моя ECS использует конечную точку VPC, которую я создал для связи с менеджером секретов, но я получаю эту ошибку:
ResourceInitializationError: невозможно получить секреты или аутентификация реестра: невозможно получить секрет из asm: возникла проблема с соединением между задачей и AWS Secrets Manager. Проверьте конфигурацию сети задач. не удалось получить секрет arn:aws:secretsmanager:eu-west-1:x:secret:y/z из менеджера секретов: RequestCanceled: контекст запроса отменен, вызвано: превышен крайний срок контекста
Из-за этой ошибки мне кажется, что мой ECS использует мой доступ в Интернет вместо моей конечной точки VPC. Когда я меняю правило назначения с помощью 0.0.0.0/0
, оно работает отлично.
Мой VPC Endpont и мой ECS находятся в одном VPC. Моя конечная точка VPC имеет интерфейс во всех подсетях моего VPC. Я что-то пропустил?
Не зная, как вы настраиваете интерфейс VPC для диспетчера секретов и настройки вашей сети, сказать невозможно.
Но почему вас волнует исходящий доступ? Если вы не хотите разрешать доступ в Интернет, то вы имеете дело с правилами входящего, а не исходящего трафика. Если вас это тоже беспокоит, почему бы вам просто не разместить свою рабочую нагрузку в частной подсети?
Оставьте 0.0.0.0/0
в качестве доступного исходящего правила. Если вы удаляете все правила для исходящего трафика, вы буквально не позволяете трафику выходить из вашей рабочей нагрузки.
AWS упоминает именно об этом: If your security group has no outbound rules, no outbound traffic is allowed.
Также 0.0.0.0/0
не означает, что вы используете доступ в Интернет. Он просто соответствует любому запросу для любого диапазона cidr. Это может быть 10.0.0.0/16, 10.1.0.0/32 и т. д.
См. предварительные требования для конечных точек интерфейса VPC. В частности, требования VPC DNS и настройки группы безопасности на конечной точке, позволяющие разрешить входящий трафик из вашего кластера ECS.