Назад | Перейти на главную страницу

Как я могу внести в белый список исходящий трафик из частной подсети для S3 в экземпляре NAT EC2 VPC?

Я изучаю варианты развертывания AWS VPC с высоким уровнем безопасности, соответствующие требованиям конфиденциальности.

Я ищу способ ужесточить исходящий трафик из частных подсетей в экземпляре NAT. Например, как я могу ограничить исходящий трафик из-за NAT, чтобы разрешить вызовы только на AWS S3? Я планирую создать собственный NAT AMI с помощью Shorewall, управляемой Ansible и Packer.

Кажется, что нет твердого списка IP-адресов S3, поэтому белый список по IP отсутствует. Белого списка по протоколу для этого недостаточно; конечные точки должны быть ограничены как минимум пространством API AWS. Белый список по имени хоста, безусловно, не будет работать после первого IP-адреса в первом запросе DNS.

Варианты вроде бы такие:

  1. Попробуйте составить список IP-адресов.
  2. Спросите у AWS список.
  3. Возможно, я мог бы использовать HAProxy или что-то подобное, чтобы сделать обратный прокси-сервер для S3, полностью пропустив традиционный NAT. Предположим, что единственный исходящий трафик, необходимый из частных подсетей, основан на протоколе HTTP (S), возможно, это сработает и можно будет установить ограничение на имя (имена) хоста S3? Я полагаю, что такие вещи, как обновления пакетов и NTP, могут быть выполнены с помощью промежуточной точки (экземпляра), расположенной в общедоступной подсети.

Пожалуйста, дайте мне знать, если вы хотите подробнее разъяснить мои потребности.

Вы знаете, как разрешить трафик на S3 (и зависимости) только из частных подсетей EC2 VPC?

Спасибо, Джошуа

P.S. Ах да ... Если бы он был высокодоступным, это тоже было бы здорово. Я планирую один экземпляр «NAT» или «NAT-подобный» в каждой из трех зон одного региона. Я планировал использовать группу автомасштабирования, чтобы сохранить эти три экземпляра в живых, но, возможно, у вас есть другая идея. Первоначально я собирался использовать три ENI, по одному на каждую зону доступа, которые перемещаются через Corosync и Pacemaker для NAT. Я надеялся избежать необходимости обновлять таблицы маршрутов при сбое NAT в зоне путем маршрутизации на ENI.

/ endblabbing

Соответствующие ссылки:

http://www.shorewall.net/4.2/FAQ.htm#faq39 EC2 VPC без NAT?

Вместо добавления трафика S3 в белый список в экземпляре NAT я предлагаю вам настроить конечные точки VPC для S3:

Таким образом, ваши узлы EC2 могут получить доступ к S3 непосредственно в частной сети VPC, а не через NAT.

Если вам по-прежнему нужен список IP-адресов, используемых S3, вы можете использовать команду AWS CLI описать-префикс-списки:

aws ec2 describe-prefix-lists

что даст результат вроде

{
    "PrefixLists": [
        {
            "PrefixListName": "com.amazonaws.eu-west-1.s3", 
            "Cidrs": [
                "54.231.128.0/19"
            ], 
            "PrefixListId": "pl-6da54004"
        }
    ]
}

Список предназначен для региона, используемого AWS CLI. В моем примере показан текущий вывод для eu-west-1, Вы можете указать другой регион, передав --region параметр, например aws --region us-east-1 ec2 describe-prefix-lists.

Однако обратите внимание, что диапазон IP-адресов для службы может время от времени меняться.