Несколько групп безопасности EC2 - разрешительный или ограничительный?

27

Что происходит, когда я назначаю несколько групп безопасности для экземпляра? Является ли это разрешающим в том смысле, что трафик разрешен, если какая-либо из групп безопасности позволяет это. ИЛИ Является ли это ограничительным в том смысле, что каждая группа безопасности должна разрешать входящий трафик?

Например, допустим, у меня есть класс экземпляров, которые будут когда-либо общаться только с другими экземплярами в той же учетной записи. У меня также есть класс экземпляров, которые будут принимать трафик только через HTTP (порт 80).

Можно ли ограничить доступ к внутренним экземплярам и только через HTTP, создав и применив две группы безопасности:

  1. «Внутренняя» группа безопасности. Разрешить весь трафик от других членов этой группы безопасности на всех портах для всех транспортов (TCP, UDP, ICMP)
  2. Создайте группу безопасности http. Разрешить весь трафик в порт 80 через TCP из любого источника.

ИЛИ Я вынужден создать одну группу безопасности, которая разрешает трафик от порта 80, где находится сам источник?

SFun28
источник

Ответы:

5

Если экземпляр имеет несколько групп безопасности, он имеет сумму всех правил в различных группах.

Например, допустим, у меня есть класс экземпляров, которые будут когда-либо общаться только с другими экземплярами в той же учетной записи. У меня также есть класс экземпляров, которые будут принимать трафик только через http (порт 80).

Это идеальная ситуация для виртуального частного облака AWS. Поместите внутренние экземпляры в частные подсети, а открытые экземпляры - в открытые подсети.

ceejayoz
источник
ceejayoz - Значит, это «ограничительный» случай? Имеется в виду, что решение с двумя группами безопасности будет работать? Договорились о решении VPC; Мой пример был больше, чтобы понять, как работают несколько групп. Где вы нашли ответ кстати?
SFun28
Вы хотели бы одну группу безопасности для внутренних экземпляров, а другую для общедоступных экземпляров. Добавление общедоступной группы 80: 0.0.0.0/0 во внутренние экземпляры сделает их доступными для общего Интернета.
ceejayoz
1
Просто чтобы прояснить ситуацию, вы говорите, что трафик пропускается, если какая-либо из отдельных групп безопасности это позволяет? Меня сбивает с толку ваш комментарий о «сумме всех правил», потому что когда я думаю о сумме, я думаю И вместо ИЛИ.
SFun28
2
Да, если любая из групп, примененных к экземпляру, разрешает это, это разрешается. Правила группы ORed вместе, а не ANDed.
ceejayoz
7
почему люди не могут просто ответить на заданный вопрос, а не вставить свое представление о том, что должно быть сделано. Если вы собираетесь это сделать, по крайней мере, сначала правильно ответьте на вопрос. Боже
Билл Росмус
28

Разрешительный.

Согласно AWS здесь: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules

Если для конкретного порта существует более одного правила, мы применяем наиболее разрешающее правило. Например, если у вас есть правило, разрешающее доступ к TCP-порту 22 (SSH) с IP-адреса 203.0.113.1, и другое правило, разрешающее доступ к TCP-порту 22 от всех, каждый имеет доступ к TCP-порту 22.

euphoria83
источник
3

Вот ответ службы поддержки AWS. Они сказали, что обновят документацию:

Я нашел пару сообщений на дискуссионном форуме, в которых рассматриваются похожие проблемы с конфликтующими правилами в одной или нескольких группах безопасности:

https://forums.aws.amazon.com/thread.jspa?messageID=221768

https://forums.aws.amazon.com/thread.jspa?messageID=349244吼

Когда к экземпляру применяются несколько групп безопасности, правила объединяются для создания одного большого набора правил. В EC2 правила группы безопасности являются только разрешающими, другими словами, вы не можете добавлять какие-либо правила DENY. Это означает, что всегда применяется наиболее разрешающее правило. Например, если у вас есть группа безопасности, которая разрешает доступ к порту 22 с IP-адреса 10.10.10.10, и другая группа безопасности, которая разрешает доступ к порту 22 от всех, каждый будет иметь доступ к порту 22 в экземпляре.

SFun28
источник
0

Когда вы указываете группу безопасности в качестве источника или места назначения для правила, правило влияет на все экземпляры, связанные с группой безопасности. Входящий трафик разрешается на основе частных IP-адресов экземпляров, которые связаны с исходной группой безопасности (а не общедоступных IP-адресов или эластичных IP-адресов). Дополнительную информацию об IP-адресах см. В разделе IP-адресация экземпляра Amazon EC2. Если правило вашей группы безопасности ссылается на группу безопасности в одноранговом VPC, а ссылочная группа безопасности или одноранговое соединение VPC удаляются, правило помечается как устаревшее. Для получения дополнительной информации см. Работа с устаревшими правилами группы безопасности в Руководстве по пирингу Amazon VPC.

Если для конкретного порта существует более одного правила, мы применяем наиболее разрешающее правило. Например, если у вас есть правило, разрешающее доступ к TCP-порту 22 (SSH) с IP-адреса 203.0.113.1, и другое правило, разрешающее доступ к TCP-порту 22 от всех, каждый имеет доступ к TCP-порту 22.

Когда вы связываете несколько групп безопасности с экземпляром, правила из каждой группы безопасности эффективно объединяются для создания одного набора правил. Мы используем этот набор правил, чтобы определить, разрешить ли доступ.

Внимание! Поскольку вы можете назначить несколько групп безопасности для экземпляра, он может иметь сотни применимых правил. Это может вызвать проблемы при доступе к экземпляру. Поэтому мы рекомендуем вам максимально сократить ваши правила.

user377934
источник