Frage Mehrere EC2-Sicherheitsgruppen - permissiv oder restriktiv?


Was passiert, wenn ich einer Instanz mehrere Sicherheitsgruppen zuweise? Ist es zulässig in dem Sinne, dass der Datenverkehr zulässig ist, wenn eine der Sicherheitsgruppen dies erlaubt? ODER ist es restriktiv in dem Sinne, dass jede Sicherheitsgruppe den eingehenden Datenverkehr zulassen muss?

Nehmen wir zum Beispiel an, dass ich eine Klasse von Instanzen habe, die nur mit anderen Instanzen im selben Konto kommunizieren. Ich habe auch eine Klasse von Instanzen, die nur Verkehr über HTTP (Port 80) akzeptieren.

Ist es möglich, den Zugriff auf interne Instanzen und nur über HTTP zu beschränken, indem Sie zwei Sicherheitsgruppen anlegen und anwenden:

  1. Eine "interne" Sicherheitsgruppe. Zulassen des gesamten Datenverkehrs von anderen Mitgliedern dieser Sicherheitsgruppe an allen Ports für alle Transporte (TCP, UDP, ICMP)
  2. Erstellen Sie eine Sicherheitsgruppe "http". Lassen Sie den gesamten Datenverkehr über TCP von einer beliebigen Quelle in Port 80 zu.

ODER muss ich eine einzelne Sicherheitsgruppe erstellen, die Datenverkehr von Port 80 ermöglicht, wo die Quelle selbst ist?


19
2018-03-01 21:49


Ursprung




Antworten:


Wenn eine Instanz mehrere Sicherheitsgruppen aufweist, enthält sie die Summe aller Regeln in den verschiedenen Gruppen.

Nehmen wir zum Beispiel an, dass ich eine Klasse von Instanzen habe, die nur mit anderen Instanzen im selben Konto kommunizieren. Ich habe auch eine Klasse von Instanzen, die nur Verkehr über http (Port 80) akzeptieren.

Dies ist eine perfekte Situation für AWS Virtual Private Cloud. Versetzen Sie die internen Instanzen in private Subnetze und die öffentlichen Instanzen in öffentliche Subnetze.


3
2018-03-01 22:02



ceejayoz - Also ist es der "restriktive" Fall? Bedeutung der zwei Sicherheitsgruppe Lösung würde funktionieren? Einverstanden über VPC-Lösung; Mein Beispiel war mehr zu verstehen, wie mehrere Gruppen arbeiten. Wo hast du übrigens die Antwort gefunden? - SFun28
Sie möchten eine Sicherheitsgruppe für interne Instanzen und eine andere für die öffentlich zugänglichen Instanzen. Durch Hinzufügen der öffentlich zugänglichen 80: 0.0.0.0/0-Gruppe zu internen Instanzen werden diese dem öffentlichen Internet zur Verfügung gestellt. - ceejayoz
Um nur ganz klar zu sein: Sie sagen, dass Traffic hereingelassen wird, wenn es eine der einzelnen Sicherheitsgruppen erlaubt? Ich werde von Ihrem Kommentar über die "Summe aller Regeln" abgewimmelt, denn wenn ich an die Summe denke, denke ich AND statt OR. - SFun28
Ja, wenn eine der auf eine Instanz angewendeten Gruppen dies erlaubt, ist dies erlaubt. Gruppenregeln werden OR-verknüpft, nicht UND-verknüpft. - ceejayoz
Warum können Menschen nicht einfach die gestellte Frage beantworten, anstatt ihre Vorstellung davon, was zu tun ist, einzufügen? Wenn Sie das tun, beantworten Sie die Frage zuerst richtig. Meine Güte - Bill Rosmus


Freizügig

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

"Wenn es mehr als eine Regel für einen bestimmten Port gibt, wenden wir die permissivste Regel an. Zum Beispiel, wenn Sie eine Regel haben, die den Zugriff auf TCP-Port 22 (SSH) von der IP-Adresse 203.0.113.1 und eine andere Regel erlaubt zu TCP-Port 22 von allen, jeder hat Zugriff auf TCP-Port 22. "


21
2018-04-28 21:03





Hier ist die Antwort von der AWS-Dokumentationsunterstützung. Sie sagten, sie würden die Dokumentation aktualisieren:

Ich habe ein paar Diskussionsforum-Posts gefunden, die ähnliche Probleme mit widersprüchlichen Regeln innerhalb einer oder mehrerer Sicherheitsgruppen behandeln:

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

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

Wenn mehrere Sicherheitsgruppen auf eine Instanz angewendet werden, werden die Regeln aggregiert, um einen großen Satz von Regeln zu erstellen. In EC2 sind Sicherheitsgruppenregeln nur zulässig, dh Sie können keine DENY-Regeln hinzufügen. Was das bedeutet ist, dass die permissivste Regel immer zutrifft. Wenn Sie beispielsweise über eine Sicherheitsgruppe verfügen, die den Zugriff auf Port 22 von der IP-Adresse 10.10.10.10 erlaubt, und eine weitere Sicherheitsgruppe, die allen Benutzern den Zugriff auf Port 22 ermöglicht, haben alle Zugriff auf Port 22 der Instanz.


3
2018-03-05 00:00





Wenn Sie eine Sicherheitsgruppe als Quelle oder Ziel für eine Regel angeben, wirkt sich die Regel auf alle Instanzen aus, die der Sicherheitsgruppe zugeordnet sind. Eingehender Datenverkehr ist basierend auf den privaten IP-Adressen der Instanzen zulässig, die der Quellensicherheitsgruppe (und nicht der öffentlichen IP-Adresse oder der Elastic IP-Adresse) zugeordnet sind. Weitere Informationen zu IP-Adressen finden Sie unter Amazon EC2 Instance IP-Adressierung. Wenn Ihre Sicherheitsgruppenregel auf eine Sicherheitsgruppe in einer Peer-VPC verweist und die referenzierte Sicherheitsgruppe oder VPC-Peeringverbindung gelöscht wird, wird die Regel als veraltet markiert. Weitere Informationen finden Sie unter Arbeiten mit veralteten Sicherheitsgruppenregeln im Amazon VPC Peering-Handbuch.

Wenn es mehr als eine Regel für einen bestimmten Port gibt, wenden wir die permissivste Regel an. Wenn Sie beispielsweise über eine Regel verfügen, die den Zugriff auf TCP-Port 22 (SSH) von der IP-Adresse 203.0.113.1 und eine andere Regel ermöglicht, die den Zugriff auf TCP-Port 22 von allen Benutzern ermöglicht, haben alle Zugriff auf TCP-Port 22.

Wenn Sie einer Gruppe mehrere Sicherheitsgruppen zuordnen, werden die Regeln jeder Sicherheitsgruppe effektiv aggregiert, um einen Regelsatz zu erstellen. Wir verwenden diesen Regelsatz, um zu bestimmen, ob der Zugriff zugelassen werden soll.

Vorsicht Da Sie einer Instanz mehrere Sicherheitsgruppen zuweisen können, können für eine Instanz Hunderte von Regeln gelten. Dies kann zu Problemen beim Zugriff auf die Instanz führen. Daher empfehlen wir Ihnen, Ihre Regeln so weit wie möglich zu verdichten.


0
2017-09-27 18:53