Implementieren Sie präventive attributebasierte Zugriffskontrollen für öffentliche Subnetze - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Implementieren Sie präventive attributebasierte Zugriffskontrollen für öffentliche Subnetze

Erstellt von Joel Alfredo Nunez Gonzalez () und Samuel Ortega Sancho () AWS AWS

Übersicht

In zentralisierten Netzwerkarchitekturen konzentrieren Inspection und Edge Virtual Private Clouds (VPCs) den gesamten eingehenden und ausgehenden Verkehr, z. B. den Verkehr zum und vom Internet. Dies kann jedoch zu Engpässen führen oder dazu führen, dass die Grenzen der Servicekontingenten erreicht werden. AWS Die Bereitstellung von Netzwerksicherheit zusammen mit den Workloads VPCs bietet eine beispiellose Skalierbarkeit im Vergleich zum gängigeren, zentralisierten Ansatz. Dies wird als Distributed-Edge-Architektur bezeichnet.

Die Bereitstellung öffentlicher Subnetze in Workload-Konten kann zwar Vorteile bieten, bringt aber auch neue Sicherheitsrisiken mit sich, da dadurch die Angriffsfläche vergrößert wird. Wir empfehlen, nur Elastic Load Balancing (ELB) -Ressourcen wie Application Load Balancer oder NAT Gateways in deren öffentlichen Subnetzen bereitzustellen. VPCs Die Verwendung von Load Balancern und NAT Gateways in dedizierten öffentlichen Subnetzen hilft Ihnen dabei, eine differenzierte Steuerung für eingehenden und ausgehenden Datenverkehr zu implementieren.

Bei der attributbasierten Zugriffskontrolle (ABAC) werden detaillierte Berechtigungen auf der Grundlage von Benutzerattributen wie Abteilung, Aufgabenrolle und Teamname erstellt. Weitere Informationen finden Sie unter für. ABAC AWS ABACkann Leitplanken für öffentliche Subnetze in Workload-Konten bereitstellen. Dies hilft Anwendungsteams, agil zu sein, ohne die Sicherheit der Infrastruktur zu gefährden.

Dieses Muster beschreibt, wie Sie öffentliche Subnetze schützen können, indem Sie eine Dienststeuerungsrichtlinie (SCP) in AWS Organizations und Richtlinien in AWS Identity and Access Management (IAM) implementierenABAC. Sie wenden das entweder SCP auf ein Mitgliedskonto einer Organisation oder auf eine Organisationseinheit (OU) an. Diese ABAC Richtlinien ermöglichen Benutzern die Bereitstellung von NAT Gateways in den Zielsubnetzen und verhindern, dass sie andere Amazon Elastic Compute Cloud (AmazonEC2) -Ressourcen wie EC2 Instances und elastische Netzwerkschnittstellen bereitstellen.  

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Eine Organisation in AWS Organizations

  • Administratorzugriff auf das Root-Konto der AWS Organizations

  • In der Organisation ein aktives Mitgliedskonto oder eine Organisationseinheit zum Testen der SCP

Einschränkungen

  • SCPIn dieser Lösung wird nicht verhindert, dass AWS Dienste, die eine dienstverknüpfte Rolle verwenden, Ressourcen in den Zielsubnetzen bereitstellen. Beispiele für diese Dienste sind Elastic Load Balancing (ELB), Amazon Elastic Container Service (AmazonECS) und Amazon Relational Database Service (AmazonRDS). Weitere Informationen finden Sie unter SCPAuswirkungen auf Berechtigungen in der Dokumentation zu AWS Organizations. Implementieren Sie Sicherheitskontrollen, um diese Ausnahmen zu erkennen.

Architektur

Zieltechnologie-Stack

  • SCPauf ein AWS Konto oder eine Organisationseinheit in AWS Organizations angewendet

  • Die folgenden IAM Rollen:

    • AutomationAdminRole— Wird verwendet, um Subnetz-Tags zu ändern und VPC Ressourcen nach der Implementierung von zu erstellen SCP

    • TestAdminRole— Wird verwendet, um zu testen, ob andere IAM Prinzipale, auch solche mit Administratorzugriff, daran gehindert werden, die Aktionen auszuführen, die für SCP AutomationAdminRole

Zielarchitektur

Die Tags verhindern, dass Benutzer andere Ressourcen als NAT Gateways in öffentlichen Subnetzen bereitstellen
  1. Sie erstellen die AutomationAdminRole IAM Rolle im Zielkonto. Diese Rolle verfügt über Berechtigungen zur Verwaltung von Netzwerkressourcen. Beachten Sie die folgenden Berechtigungen, die ausschließlich für diese Rolle gelten:

    • Mit dieser Rolle können Subnetze erstellt VPCs und öffentlich zugänglich gemacht werden.

    • Diese Rolle kann die Tag-Zuweisungen für die Zielsubnetze ändern.

    • Diese Rolle kann ihre eigenen Berechtigungen verwalten.

  2. In AWS Organizations wenden Sie das SCP auf das AWS Zielkonto oder die Organisationseinheit an. Ein Beispiel für eine Richtlinie finden Sie unter Zusätzliche Informationen in diesem Muster.

  3. Ein Benutzer oder ein Tool in der CI/CD-Pipeline kann die AutomationAdminRole Rolle übernehmen, das SubnetType Tag auf die Zielsubnetze anzuwenden.

  4. Durch die Übernahme anderer IAM Rollen können autorisierte IAM Principals in Ihrer Organisation NAT Gateways in den Zielsubnetzen und andere zulässige Netzwerkressourcen im AWS Konto verwalten, z. B. Routing-Tabellen. Verwenden Sie IAM Richtlinien, um diese Berechtigungen zu gewähren. Weitere Informationen finden Sie unter Identitäts- und Zugriffsmanagement für Amazon VPC.

Automatisierung und Skalierung

Um öffentliche Subnetze zu schützen, müssen die entsprechenden AWSTags angewendet werden. Nach der SCP Anwendung von sind NAT Gateways die einzige Art von EC2 Amazon-Ressource, die autorisierte Benutzer in Subnetzen mit diesem Tag erstellen können. SubnetType:IFA (IFAbedeutet Ressourcen, die mit dem Internet verbunden sind.) Das SCP verhindert die Erstellung anderer EC2 Amazon-Ressourcen wie Instances und Elastic Network Interfaces. Wir empfehlen Ihnen, eine CI/CD-Pipeline zu verwenden, die die AutomationAdminRole Rolle der Erstellung von VPC Ressourcen übernimmt, sodass diese Tags ordnungsgemäß auf öffentliche Subnetze angewendet werden.

Tools

AWS-Services

  • AWSMit Identity and Access Management (IAM) können Sie den Zugriff auf Ihre AWS Ressourcen sicher verwalten, indem Sie kontrollieren, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWSOrganizations ist ein Kontoverwaltungsdienst, mit dem Sie mehrere AWS Konten zu einer Organisation zusammenfassen können, die Sie erstellen und zentral verwalten. In AWS Organizations können Sie Dienststeuerungsrichtlinien (SCPs) implementieren. Dabei handelt es sich um eine Art von Richtlinie, mit der Sie Berechtigungen in Ihrer Organisation verwalten können.

  • Amazon Virtual Private Cloud (AmazonVPC) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk entspricht einem herkömmlichen Netzwerk, wie Sie es in Ihrem Rechenzentrum betreiben würden, mit den Vorteilen der Verwendung der skalierbaren Infrastruktur von AWS.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Test-Admin-Rolle.

Erstellen Sie eine IAM Rolle mit TestAdminRole dem Namen des AWS Zielkontos. Hängen Sie die AdministratorAccessAWSverwaltete IAM Richtlinie an die neue Rolle an. Anweisungen finden Sie in der IAM Dokumentation unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM Benutzer.

AWS-Administrator

Erstellen Sie die Administratorrolle für die Automatisierung.

  1. Erstellen Sie eine IAM Rolle mit AutomationAdminRole dem Namen des AWS Zielkontos.

  2. Hängen Sie die AdministratorAccessAWSverwaltete IAM Richtlinie an die neue Rolle an.

Im Folgenden finden Sie ein Beispiel für eine Vertrauensrichtlinie, mit der Sie die Rolle vom 000000000000 Konto aus testen können.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::000000000000:root" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }
AWS-Administrator

Erstellen Sie die und hängen Sie sie anSCP.

  1. Erstellen Sie mithilfe des Beispielcodes im Abschnitt Zusätzliche Informationen eine Richtlinie zur Sicherheitskontrolle. Anweisungen finden Sie unter Erstellen eines SCP in der Dokumentation zu AWS Organizations.

  2. Ordnen Sie SCP sie dem AWS Zielkonto oder der Organisationseinheit zu. Anweisungen finden Sie in der Dokumentation zu AWS Organizations unter Dienststeuerungsrichtlinien anhängen und trennen.

AWS-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein VPC OR-Subnetz.

  1. Nehmen Sie die TestAdminRole Rolle im AWS Zielkonto an.

  2. Versuchen Sie, ein VPC oder ein neues öffentliches Subnetz in einem vorhandenen VPC zu erstellen. Anweisungen finden Sie unter Create aVPC, Subnets und andere VPC Ressourcen in der VPC Amazon-Dokumentation. Sie sollten nicht in der Lage sein, diese Ressourcen zu erstellen.

  3. Nehmen Sie die AutomationAdminRole Rolle an und wiederholen Sie den vorherigen Schritt. Jetzt sollten Sie in der Lage sein, die Netzwerkressourcen zu erstellen.

AWS-Administrator

Tags verwalten.

  1. Übernehmen Sie die TestAdminRole Rolle im AWS Zielkonto.

  2. Fügen Sie einem verfügbaren öffentlichen Subnetz ein SubnetType:IFA Tag hinzu. Sie sollten in der Lage sein, dieses Tag hinzuzufügen. Anweisungen zum Hinzufügen von Tags über die AWS Befehlszeilenschnittstelle (AWSCLI) finden Sie unter create-tags in der AWSCLIBefehlsreferenz.

  3. Versuchen Sie, das diesem Subnetz zugewiesene SubnetType:IFA Tag zu ändern, ohne Ihre Anmeldeinformationen zu ändern. Sie sollten dieses Tag nicht ändern können.

  4. Nehmen Sie die AutomationAdminRole Rolle an und wiederholen Sie die vorherigen Schritte. Diese Rolle sollte in der Lage sein, dieses Tag hinzuzufügen und zu ändern.

AWS-Administrator

Stellen Sie Ressourcen in den Zielsubnetzen bereit.

  1. Übernehmen Sie die TestAdminRole Rolle.

  2. Versuchen Sie für ein öffentliches Subnetz, das das SubnetType:IFA Tag hat, eine EC2 Instanz zu erstellen. Anweisungen finden Sie in der EC2 Amazon-Dokumentation unter Eine Instance starten. In diesem Subnetz sollten Sie keine EC2 Amazon-Ressourcen außer NAT Gateways erstellen, ändern oder löschen können.

  3. Erstellen Sie im selben Subnetz ein Gateway. NAT Anweisungen finden Sie in der VPC Amazon-Dokumentation unter Ein NAT Gateway erstellen. Sie sollten in der Lage sein, NAT Gateways in diesem Subnetz zu erstellen, zu ändern oder zu löschen.

AWS-Administrator

Verwalte die Rolle AutomationAdminRole .

  1. Übernimm die TestAdminRole Rolle.

  2. Versuchen Sie, die AutomationAdminRole Rolle zu ändern. Anweisungen finden Sie in der IAM Dokumentation unter Rolle ändern. Sie sollten nicht in der Lage sein, diese Rolle zu ändern.

  3. Nehmen Sie die AutomationAdminRole Rolle an und wiederholen Sie den vorherigen Schritt. Jetzt sollten Sie in der Lage sein, die Rolle zu ändern.

AWS-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Säubern Sie die eingesetzten Ressourcen.

  1. Trennen Sie sie SCP vom AWS Konto oder der Organisationseinheit. Anweisungen finden Sie unter Trennen von SCP in der Dokumentation zu AWS Organizations.

  2. Löschen Sie das SCP. Anweisungen finden Sie unter Löschen einer SCP (Dokumentation zu AWS Organizations).

  3. Löschen Sie die AutomationAdminRole Rolle und die TestAdminRole Rolle. Anweisungen finden Sie in der IAM Dokumentation unter Rollen löschen.

  4. Löschen Sie alle Netzwerkressourcen wie VPCs Subnetze, die Sie für diese Lösung erstellt haben.

AWS-Administrator

Zugehörige Ressourcen

AWS-Dokumentation

Zusätzliche AWS Referenzen

Zusätzliche Informationen

Die folgende Dienststeuerungsrichtlinie ist ein Beispiel, mit dem Sie diesen Ansatz in Ihrer Organisation testen können.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyVPCActions", "Effect": "Deny", "Action": [ "ec2:CreateVPC", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateInternetGateway", "ec2:DeleteVPC", "ec2:DeleteRoute", "ec2:DeleteSubnet", "ec2:DeleteInternetGateway" ], "Resource": [ "arn:aws:ec2:*:*:*" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "AllowNATGWOnIFASubnet", "Effect": "Deny", "NotAction": [ "ec2:CreateNatGateway", "ec2:DeleteNatGateway" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*" ], "Condition": { "ForAnyValue:StringEqualsIfExists": { "aws:ResourceTag/SubnetType": "IFA" }, "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "DenyChangesToAdminRole", "Effect": "Deny", "NotAction": [ "iam:GetContextKeysForPrincipalPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoleTags" ], "Resource": [ "arn:aws:iam::*:role/AutomationAdminRole" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "allowbydefault", "Effect": "Allow", "Action": "*", "Resource": "*" } ] }