Когда веб-браузер подключается к вашему веб-серверу, в соединении используются два порта: порт 80 на вашем веб-сервере и некоторый эфемерный порт с высоким номером, например 49152 на клиенте. Запрос отправлен с клиента: 49152 на сервер: 80. Эти кортежи ip-address: port называются сокетами. Ответ от веб-сервера должен передаваться с сервера: 80 обратно к клиенту: 49152.
«Состояние» состояния AWS Группы безопасности означает, что некоторое состояние запоминается для последующего использования. Это состояние включает комбинацию клиента: 49152 и сервера: 80 сокетов, которые составляют действительное TCP-соединение. Если запрос получен на сервере: 80 от клиента: 49152, то ответ от клиента: 49152 будет разрешен с сервера: 80, не требуя настройки каких-либо дополнительных правил брандмауэра для исходящих сообщений.
Вы не Например, необходимо создать второе правило, разрешающее исходящую связь от вашего сервера через порт 80 к клиенту через порт 49152. Это второе правило неявно из-за состояния групп безопасности с состоянием. На самом деле вам было бы очень трудно создать это правило, если бы оно не было неявным, поскольку номер порта клиента является эфемерным и может быть любым из широкого диапазона чисел и может отличаться от одного соединения с другим. Вы не знали бы заранее, какой это будет номер порта, поэтому единственное, что вы могли бы здесь сделать, если бы не было состояния, было бы открыть широкий диапазон портов в правиле исходящего брандмауэра.
EC2 / VP C также имеет концепцию сетевых ACL . Это правила брандмауэра без сохранения состояния. В этом случае как входящие, так и исходящие правила требуются для трафика c в обоих направлениях.