Plusieurs groupes de sécurité EC2 - permissif ou restrictif?

27

Que se passe-t-il lorsque j'attribue plusieurs groupes de sécurité à une instance? Est-ce permissif en ce sens que le trafic est autorisé si l'un des groupes de sécurité le permet. OU est-ce restrictif dans le sens où chaque groupe de sécurité doit autoriser le trafic pour qu'il soit transmis?

Par exemple, disons que j'ai une classe d'instances qui ne parlera jamais qu'aux autres instances du même compte. J'ai également une classe d'instances qui n'acceptera que du trafic via HTTP (port 80).

Est-il possible de restreindre l'accès aux instances internes et uniquement via HTTP en créant et en appliquant deux groupes de sécurité:

  1. Un groupe de sécurité "interne". Autoriser tout le trafic provenant d'autres membres de ce groupe de sécurité sur tous les ports pour tous les transports (TCP, UDP, ICMP)
  2. Créez un groupe de sécurité "http". Autorisez tout le trafic vers le port 80 via TCP à partir de n'importe quelle source.

OU suis-je obligé de créer un seul groupe de sécurité qui autorise le trafic à partir du port 80 où la source est elle-même?

SFun28
la source

Réponses:

5

Si une instance a plusieurs groupes de sécurité, elle a la somme de toutes les règles dans les différents groupes.

Par exemple, disons que j'ai une classe d'instances qui ne parlera jamais qu'aux autres instances du même compte. J'ai également une classe d'instances qui n'acceptera que du trafic via http (port 80).

Il s'agit d'une situation parfaite pour AWS Virtual Private Cloud. Placez les instances internes dans des sous-réseaux privés et les instances ouvertes au public dans des sous-réseaux publics.

ceejayoz
la source
ceejayoz - C'est donc le cas "restrictif"? Cela signifie que la solution à deux groupes de sécurité fonctionnerait? Accord sur la solution VPC; mon exemple était plus de comprendre comment fonctionnent plusieurs groupes. Où avez-vous trouvé la réponse au fait?
SFun28
Vous souhaitez un groupe de sécurité pour les instances internes et un autre pour les instances publiques. L'ajout du groupe 80: 0.0.0.0/0 accessible au public aux instances internes les rendrait disponibles sur Internet public.
ceejayoz
1
Juste pour être très clair, vous dites que le trafic est autorisé si l'un des groupes de sécurité individuels le permet? Je suis découragé par votre commentaire sur la «somme de toutes les règles» parce que quand je pense à la somme, je pense ET au lieu de OU.
SFun28
2
Oui, si l'un des groupes appliqués à une instance le permet, il est autorisé. Les règles de groupe sont OU ensemble, pas ET.
ceejayoz
7
pourquoi les gens ne peuvent-ils pas simplement répondre à la question posée au lieu d'insérer leur idée de ce qui devrait être fait. Si vous voulez le faire, répondez au moins correctement à la question en premier. Jeez
Bill Rosmus
28

Permissif.

Selon AWS ici: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules

S'il existe plusieurs règles pour un port spécifique, nous appliquons la règle la plus permissive. Par exemple, si vous avez une règle qui autorise l'accès au port TCP 22 (SSH) à partir de l'adresse IP 203.0.113.1 et une autre règle qui autorise l'accès au port TCP 22 à tout le monde, tout le monde a accès au port TCP 22.

euphoria83
la source
3

Voici la réponse du support de la documentation AWS. Ils ont dit qu'ils mettraient à jour la documentation:

J'ai trouvé quelques messages sur le forum de discussion qui traitent de problèmes similaires avec des règles conflictuelles au sein d'un ou plusieurs groupes de sécurité:

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

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

Lorsque plusieurs groupes de sécurité sont appliqués à une instance, les règles sont agrégées pour créer un grand ensemble de règles. Dans EC2, les règles de groupe de sécurité sont uniquement permissives, en d'autres termes, vous ne pouvez pas ajouter de règles DENY. Cela signifie que la règle la plus permissive s'appliquera toujours. Par exemple, si vous avez un groupe de sécurité qui autorise l'accès au port 22 à partir de l'adresse IP 10.10.10.10, et un autre groupe de sécurité qui autorise l'accès au port 22 depuis tout le monde, tout le monde aura accès au port 22 sur l'instance.

SFun28
la source
0

Lorsque vous spécifiez un groupe de sécurité comme source ou destination pour une règle, la règle affecte toutes les instances associées au groupe de sécurité. Le trafic entrant est autorisé en fonction des adresses IP privées des instances associées au groupe de sécurité source (et non des adresses IP publiques ou Elastic IP). Pour plus d'informations sur les adresses IP, consultez Adressage IP d'instance Amazon EC2. Si votre règle de groupe de sécurité fait référence à un groupe de sécurité dans un VPC homologue et que le groupe de sécurité référencé ou la connexion d'appairage VPC est supprimé, la règle est marquée comme périmée. Pour plus d'informations, consultez Utilisation des règles de groupe de sécurité obsolètes dans le guide d'appairage Amazon VPC.

S'il existe plusieurs règles pour un port spécifique, nous appliquons la règle la plus permissive. Par exemple, si vous avez une règle qui autorise l'accès au port TCP 22 (SSH) à partir de l'adresse IP 203.0.113.1 et une autre règle qui autorise l'accès au port TCP 22 à tout le monde, tout le monde a accès au port TCP 22.

Lorsque vous associez plusieurs groupes de sécurité à une instance, les règles de chaque groupe de sécurité sont effectivement agrégées pour créer un ensemble de règles. Nous utilisons cet ensemble de règles pour déterminer s'il faut autoriser l'accès.

Attention Comme vous pouvez affecter plusieurs groupes de sécurité à une instance, une instance peut avoir des centaines de règles qui s'appliquent. Cela peut entraîner des problèmes lorsque vous accédez à l'instance. Par conséquent, nous vous recommandons de condenser vos règles autant que possible.

user377934
la source