Überwachen Sie Amazon ECR-Repositorys mit AWS und AWS CloudFormation Config auf Platzhalterberechtigungen - 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.

Überwachen Sie Amazon ECR-Repositorys mit AWS und AWS CloudFormation Config auf Platzhalterberechtigungen

Erstellt von Vikrant Telkar (AWS), Sajid Momin (AWS) und Wassim Benhallam (AWS)

Übersicht

In der Amazon Web Services (AWS) -Cloud ist Amazon Elastic Container Registry (Amazon ECR) ein verwalteter Container-Image-Registry-Service, der private Repositorys mit ressourcenbasierten Berechtigungen mithilfe von AWS Identity and Access Management (IAM) unterstützt.

IAM unterstützt den Platzhalter „*“ sowohl in den Ressourcen- als auch in den Aktionsattributen, was die automatische Auswahl mehrerer übereinstimmender Elemente erleichtert. In Ihrer Testumgebung können Sie allen authentifizierten AWS-Benutzern den Zugriff auf ein Amazon ECR-Repository ermöglichen, indem Sie die ecr:* Platzhalterberechtigung in einem Hauptelement für Ihre Repository-Richtlinienerklärung verwenden. Die ecr:* Platzhalterberechtigung kann nützlich sein, wenn Sie in Entwicklungskonten entwickeln und testen, die nicht auf Ihre Produktionsdaten zugreifen können.

Sie müssen jedoch sicherstellen, dass die ecr:* Platzhalterberechtigung in Ihren Produktionsumgebungen nicht verwendet wird, da sie schwerwiegende Sicherheitslücken verursachen kann. Der Ansatz dieses Musters hilft Ihnen dabei, Amazon ECR-Repositorys zu identifizieren, die die ecr:* Platzhalterberechtigung in Repository-Richtlinienerklärungen enthalten.   Das Muster enthält Schritte und eine CloudFormation AWS-Vorlage zum Erstellen einer benutzerdefinierten Regel in AWS Config. Eine AWS Lambda Lambda-Funktion überwacht dann Ihre Amazon ECR-Repository-Richtlinienerklärungen auf ecr:* Platzhalterberechtigungen. Wenn Lambda nicht konforme Repository-Richtlinienerklärungen findet, benachrichtigt es AWS Config, ein Ereignis an Amazon zu senden, EventBridge und leitet EventBridge dann ein Amazon Simple Notification Service (Amazon SNS) -Thema ein. Das SNS-Thema informiert Sie per E-Mail über die nicht konformen Repository-Richtlinienerklärungen.

Voraussetzungen und Einschränkungen

Voraussetzungen

 

Einschränkungen

  • Die Lösung dieses Musters ist Regional und Ihre Ressourcen müssen in derselben Region erstellt werden. 

Architektur

Das folgende Diagramm zeigt, wie AWS Config die Amazon ECR-Repository-Richtlinienerklärungen auswertet. 

AWS Config workflow with Lambda, Amazon ECR, EventBridge, SNS, and email notification components.

Das Diagramm zeigt den folgenden Workflow:

  1. AWS Config initiiert eine benutzerdefinierte Regel. 

  2. Die benutzerdefinierte Regel ruft eine Lambda-Funktion auf, um die Einhaltung der Amazon ECR-Repository-Richtlinienerklärungen zu bewerten. Die Lambda-Funktion identifiziert dann nicht konforme Repository-Richtlinienanweisungen.

  3. Die Lambda-Funktion sendet den Status der Nichtkonformität an AWS Config.

  4. AWS Config sendet ein Ereignis an EventBridge.

  5. EventBridge veröffentlicht die Benachrichtigungen über Verstöße zu einem SNS-Thema.

  6. Amazon SNS sendet eine E-Mail-Benachrichtigung an Sie oder einen autorisierten Benutzer.

Automatisierung und Skalierung

Die Lösung dieses Musters kann eine beliebige Anzahl von Amazon ECR-Repository-Richtlinienerklärungen überwachen, aber alle Ressourcen, die Sie auswerten möchten, müssen in derselben Region erstellt werden.

Tools

  • AWS CloudFormation — AWS CloudFormation hilft Ihnen dabei, Ihre AWS-Ressourcen zu modellieren und einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus zu verwalten. Sie können eine Vorlage verwenden, um Ihre Ressourcen und ihre Abhängigkeiten zu beschreiben und sie zusammen als Stack zu starten und zu konfigurieren, anstatt Ressourcen einzeln zu verwalten. Sie können Stacks für mehrere AWS-Konten und AWS-Regionen verwalten und bereitstellen.

  • AWS Config — AWS Config bietet eine detaillierte Ansicht der Konfiguration der AWS-Ressourcen in Ihrem AWS-Konto. Dazu gehört auch, wie die Ressourcen jeweils zueinander in Beziehung stehen und wie sie in der Vergangenheit konfiguriert wurden, damit Sie sehen können, wie sich die Konfigurationen und Beziehungen im Laufe der Zeit verändern.

  • Amazon ECR Amazon Elastic Container Registry (Amazon ECR) ist ein von AWS verwalteter Container-Image-Registry-Service, der sicher, skalierbar und zuverlässig ist. Amazon ECR unterstützt private Container-Image-Repositories mit ressourcenbasierten Berechtigungen unter Verwendung von IAM.                                 

  • Amazon EventBridge — Amazon EventBridge ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Daten aus einer Vielzahl von Quellen verbinden können. EventBridge liefert einen Stream von Echtzeitdaten aus Ihren Anwendungen, SaaS-Anwendungen (Software as a Service) und AWS-Services an Ziele wie AWS Lambda-Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen Konten.

  • AWS Lambda — AWS Lambda ist ein Rechenservice, der die Ausführung von Code unterstützt, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde. Sie bezahlen nur für die Datenverarbeitungszeit, die Sie wirklich nutzen und es werden keine Gebühren in Rechnung gestellt, wenn Ihr Code nicht ausgeführt wird.

  • Amazon SNS — Amazon Simple Notification Service (Amazon SNS) koordiniert und verwaltet die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen. Abonnenten erhalten die veröffentlichten Mitteilungen zu den Themen, die sie abonniert haben. Alle Abonnenten eines Themas erhalten dieselben Mitteilungen. 

Code

Der Code für dieses Muster ist in der aws-config-cloudformation.template Datei (angehängt) verfügbar.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie den CloudFormation AWS-Stack.

Erstellen Sie einen CloudFormation AWS-Stack, indem Sie den folgenden Befehl in der AWS-CLI ausführen:

$ aws cloudformation create-stack --stack-name=AWSConfigECR \ --template-body file://aws-config-cloudformation.template \ --parameters ParameterKey=<email>,ParameterValue=<myemail@example.com> \ --capabilities CAPABILITY_NAMED_IAM
AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten
Testen Sie die benutzerdefinierte AWS Config-Regel.
  1. Melden Sie sich bei der AWS-Managementkonsole an, öffnen Sie die AWS Config-Konsole und wählen Sie dann Ressourcen aus.

  2. Auf der Seite mit dem Ressourcenbestand können Sie nach Ressourcenkategorie, Ressourcentyp und Compliance-Status filtern.

  3. Ein Amazon ECR-Repository, das ecr:* ist enthält, NON-COMPLIANT? und ein Amazon ECR-Repository, das is nicht enthältecr:*. COMPLIANT

  4. Die E-Mail-Adresse, die das SNS-Thema abonniert hat, erhält Benachrichtigungen, wenn ein Amazon ECR-Repository nicht konforme Richtlinienerklärungen enthält.

AWS DevOps

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip