Zentralisierte Protokollierung und Sicherheitsleitplanken für mehrere Konten - 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.

Zentralisierte Protokollierung und Sicherheitsleitplanken für mehrere Konten

Erstellt von Ankush Verma (AWS) und Tracy (Pierce) Hickey (AWS)

Umgebung: Produktion

Technologien: Sicherheit, Identität, Compliance; Management und Governance

AWS-Services: AWS CloudFormation; AWS Config ; Amazon CloudWatch; AWS CodePipeline; Amazon GuardDuty; AWS Lambda ; Amazon Macie ; AWS Security Hub; Amazon S3

Übersicht

Der in diesem Muster behandelte Ansatz eignet sich für Kunden, die über mehrere Amazon Web Services (AWS)-Konten bei AWS Organizations verfügen und jetzt auf Herausforderungen stoßen, wenn sie AWS Control Tower, eine Landing Zone oder Services für -Kontenverkaufsautomaten verwenden, um Basisleitplanken in ihren Konten einzurichten.

Dieses Muster zeigt die Verwendung einer optimierten Architektur mit mehreren Konten, um eine zentrale Protokollierung und standardisierte Sicherheitskontrollen auf gut strukturierte Weise einzurichten. Mithilfe von AWS- CloudFormation Vorlagen, AWS CodePipelineund Automatisierungsskripten wird diese Einrichtung in allen Konten bereitgestellt, die zu einer Organisation gehören.

Die Architektur mit mehreren Konten umfasst die folgenden Konten:

  • Zentralisiertes Protokollierungskonto – Das Konto, in dem alle Virtual Private Cloud (VPC)-Flow-Protokolle, AWS- CloudTrail Protokolle, das AWS Config-Protokoll und alle Protokolle von Amazon CloudWatch Logs (mit Abonnements) aus allen anderen Konten gespeichert werden.

  • Übergeordnetes Sicherheitskonto – Das Konto, das als übergeordnetes Konto für die folgenden Sicherheitsservices dient, die über mehrere Konten hinweg verwaltet werden.

    • Amazon GuardDuty

    • AWS Security Hub

    • Amazon Macie

    • Amazon Detective

  • Untergeordnete Konten – Die anderen Konten in der Organisation. Diese Konten speichern alle nützlichen Protokolle im zentralen Protokollierungskonto. Die untergeordneten Konten treten dem übergeordneten Sicherheitskonto als Mitglieder der Sicherheitsservices bei.

Nachdem Sie die CloudFormation Vorlage (angefügt) gestartet haben, stellt sie drei Amazon Simple Storage Service (Amazon S3)-Buckets im zentralen Protokollierungskonto bereit. Ein Bucket wird verwendet, um alle AWS-bezogenen Protokolle (z. B. Protokolle aus VPC-Flow-Protokollen CloudTrailund AWS Config ) aus allen Konten zu speichern. Der zweite Bucket dient zum Speichern der CloudFormation Vorlagen aus allen Konten. Der dritte Bucket dient zum Speichern von Amazon S3-Zugriffsprotokollen.

Eine separate CloudFormation Vorlage erstellt die Pipeline, die AWS verwendet CodeCommit. Nachdem der aktualisierte Code in das CodeCommit Repository übertragen wurde, kümmert er sich um das Starten von Ressourcen und das Einrichten von Sicherheitsservices in allen Konten. Weitere Informationen zur Dateistruktur der Dateien, die in das CodeCommit Repository hochgeladen werden, finden Sie in der Datei README.md (angefügt).

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Eine AWS Organizations-Organisations-ID, wobei alle Konten derselben Organisation zugeordnet sind.

  • Eine aktive E-Mail-Adresse für den Empfang von Amazon Simple Notification Service (Amazon SNS)-Benachrichtigungen.

  • Bestätigte Kontingente für Amazon Simple Storage Service (Amazon S3)-Buckets in jedem Ihrer Konten. Standardmäßig hat jedes Konto 100 S3-Buckets. Wenn Sie zusätzliche Buckets benötigen, fordern Sie eine Kontingenterhöhung an, bevor Sie diese Lösung bereitstellen.

Einschränkungen

Alle Konten sollten Teil derselben Organisation sein. Wenn Sie AWS Organizations nicht verwenden, müssen Sie bestimmte Richtlinien ändern, z. B. die S3-Bucket-Richtlinie, um den Zugriff von den AWS Identity and Access Management (IAM)-Rollen für jedes Konto zu erlauben.

Hinweis: Während die Lösung bereitgestellt wird, müssen Sie das Amazon SNS-Abonnement bestätigen. Die Bestätigungsnachricht wird an die E-Mail-Adresse gesendet, die Sie während des Bereitstellungsprozesses angeben. Dadurch werden einige E-Mail-Warnmeldungen an diese E-Mail-Adresse ausgelöst, da diese Alarme jedes Mal ausgelöst werden, wenn IAM-Rollenrichtlinien im Konto erstellt oder geändert werden. Während des Bereitstellungsprozesses können Sie diese Warnmeldungen ignorieren.

Architektur

Zieltechnologie-Stack

  • Amazon- CloudWatch Alarme und -Protokolle

  • AWS- CodeCommit Repository

  • AWS CodePipeline

  • AWS Config

  • Amazon Detective

  • Amazon GuardDuty

  • IAM-Rollen und -Berechtigungen

  • Amazon Macie

  • S3-Buckets

  • AWS Security Hub

  • Amazon SNS

Zielarchitektur

Diagramm mit Services in den drei AWS-Konten.
Diagramme mit Details zu Protokollierungs- und Sicherheitsservices.
  1. Andere Konten, die als untergeordnete Konten des übergeordneten Sicherheitskontos für die Sicherheitsservices registriert sind

  2. Sicherheitserkenntnisse von allen untergeordneten Konten, einschließlich des übergeordneten Kontos

Ressourcen

Die folgenden Ressourcen werden automatisch bereitgestellt, wenn der aktualisierte Code in jedes Konto und jede AWS-Region in das CodeCommit Repository übertragen wird.

CloudFormation Stack 1 – Protokollieren des übergeordneten Stacks

– Verschachtelter Stack 1 – Standard-IAM-Rollen und -Richtlinien

– Verschachtelter Stack 2 – AWS Config-Einrichtung im Konto

– Verschachtelter Stack 3 – CloudWatch Alarme

            - SecurityGroupChangesAlarm

            - UnauthorizedAttemptAlarm

            - RootActivityAlarm

            - NetworkAclChangesAlarm

            – IAMUserManagementAlarm

            – IAMPolicyChangesAlarm

            - CloudTrailChangeAlarm

            – IAMCreateAccessKeyAlarm

      – Metrikfilter zum Erstellen von Metriken aus CloudTrail Protokollen und deren Verwendung für Alarme

      – SNS-Thema

CloudFormation Stack 2 – übergeordneter Integritätsschutz-Stack

– Verschachtelter Stack 1 – AWS Lambda-Funktion zum Einrichten der Kontopasswortrichtlinie

– Verschachtelter Stack 2 – Grundlegende AWS Config-Regeln

      – CIS-SecurityGroupsMustRestrictSshTraffic

      - OpenSecurityGroupRuleCheck zusammen mit der Lambda-Funktion für die Auswertung von Sicherheitsgruppenregeln

      – check-ec2-for-required-tag

      - check-for-unrestricted-ports

CloudFormation Stack 3 – CloudWatch Protokollexport

– Exportieren von CloudWatch Protokollen von Protokollgruppen nach Amazon S3 mithilfe eines Amazon Kinesis-Abonnements

Tools

  • AWS CloudFormation – AWS CloudFormation verwendet -Vorlagen, um alle Ressourcen, die für Ihre Anwendungen in allen AWS-Regionen und -Konten benötigt werden, automatisiert und sicher zu modellieren und bereitzustellen.

  • Amazon CloudWatch – Amazon CloudWatch überwacht Ihre AWS-Ressourcen und die Anwendungen, die Sie auf AWS ausführen, in Echtzeit. Sie können verwenden, CloudWatch um Metriken zu erfassen und zu verfolgen. Dabei handelt es sich um Variablen, die Sie für Ihre Ressourcen und Anwendungen messen können.

  • AWS CodeCommit – AWS CodeCommit ist ein von AWS gehosteter Service zur Versionskontrolle. Sie können verwenden CodeCommit , um Komponenten (wie Dokumente, Quellcode und Binärdateien) privat in der Cloud zu speichern und zu verwalten.

  • AWS CodePipeline – AWS CodePipeline ist ein kontinuierlicher Bereitstellungsservice, mit dem Sie die Schritte zur Veröffentlichung Ihrer Software modellieren, visualisieren und automatisieren können.

  • 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 Detective – Amazon Detective wird verwendet, um die Ursache von Sicherheitserkenntnissen oder verdächtigen Aktivitäten zu analysieren, zu untersuchen und schnell zu identifizieren. Detective sammelt automatisch Protokolldaten von Ihren AWS-Ressourcen. Anschließend werden Machine Learning, statistische Analysen und Diagrammtheorie verwendet, um Ihnen zu helfen, schnellere und effizientere Sicherheitsuntersuchungen zu visualisieren und durchzuführen.

  • Amazon GuardDuty – Amazon GuardDuty ist ein Service zur kontinuierlichen Sicherheitsüberwachung, der Flow-Protokolle, CloudTrail Verwaltungsereignisprotokolle, CloudTrail Datenereignisprotokolle und DNS-Protokolle (Domain Name System) analysiert und verarbeitet. Er verwendet Bedrohungsdaten, z. B. Listen bösartiger IP-Adressen und Domänen, ebenso wie maschinelles Lernen, um unerwartete und potenziell nicht autorisierte bösartige Aktivitäten in Ihrer AWS-Umgebung zu identifizieren.

  • AWS Identity and Access Management – AWS Identity and Access Management (IAM) ist ein Webservice, mit dem Sie den Zugriff auf AWS-Ressourcen sicher steuern können. Sie verwenden IAM, um zu steuern, wer authentifiziert (angemeldet) und autorisiert (Berechtigungen besitzt) ist, Ressourcen zu nutzen.

  • Amazon Macie – Amazon Macie automatisiert die Erkennung sensibler Daten wie persönlich identifizierbarer Informationen (PII) und Finanzdaten, um Ihnen ein besseres Verständnis der Daten zu bieten, die Ihre Organisation in Amazon S3 speichert.

  • Amazon S3 – Amazon Simple Storage Service (Amazon S3) ist ein hoch skalierbarer Objektspeicherservice, der für eine Vielzahl von Speicherlösungen verwendet werden kann, darunter Websites, mobile Anwendungen, Backups und Data Lakes.

  • AWS Security Hub – AWS Security Hub bietet Ihnen einen umfassenden Überblick über Ihren Sicherheitsstatus in AWS und hilft Ihnen dabei, Ihre Umgebung anhand von Sicherheitsstandards und bewährten Methoden zu überprüfen.

  • Amazon SNS – Amazon Simple Notification Service (Amazon SNS ) ist ein verwalteter Service, der die Nachrichtenzustellung von Publishern an Abonnenten (auch bekannt als Produzenten und Verbraucher) bereitstellt.

Polen

AufgabeBeschreibungErforderliche Fähigkeiten
Starten Sie die CloudFormation Vorlage Childaccount_IAM_role_All_Accounts.yaml, um die IAM-Rolle in der Region us-east-1 zu erstellen.

Um die erforderlichen IAM-Rollen und -Berechtigungen zu erstellen, müssen Sie diese Vorlage manuell in jedem Konto starten, nacheinander (zentralisiertes Protokollierungskonto, übergeordnetes Sicherheitskonto und alle anderen AWS-Konten in der Organisation) in der Region us-east-1. Die Childaccount_IAM_role_All_Accounts.yaml Vorlage befindet sich im -/templates/initial_deployment_templatesVerzeichnis des Pakets. Die IAM-Rolle wird verwendet, wenn API-Aufrufe für die Bereitstellung und Einrichtung des Rests der Architektur ausgeführt werden. Stellen Sie sicher, dass der Name der IAM-Rolle, die als Parameter übergeben wird, für alle Konten konsistent ist.

Cloud-Architekt
Geben Sie in den Vorlagenparametern den Namen der IAM-Rolle an.

Geben Sie die IAM-Rolle an CodeBuild, die im übergeordneten Sicherheitskonto in allen anderen untergeordneten Konten übernehmen kann. Der Standardrollenname ist security_execute_child_stack_role.

Cloud-Architekt
Geben Sie in den Parametern die Konto-ID für das übergeordnete Sicherheitskonto an.

Das übergeordnete Sicherheitskonto ist das Konto, in dem CodeBuild ausgeführt wird.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten
Starten Sie im zentralen Protokollierungskonto in us-east-1 die CloudFormation Vorlage S3Buckets-Centralized -LoggingAccount.yaml.

Um die S3-Buckets im zentralen Protokollierungskonto zu erstellen, starten Sie die S3Buckets-Centralized-LoggingAccount.yaml. Die Vorlage befindet sich im -/templates/initial_deployment_templatesVerzeichnis des Pakets. Die S3-Buckets speichern alle Protokolle, Vorlagen und Amazon S3-Zugriffsprotokolle. Notieren Sie sich alle S3-Bucket-Namen, mit denen Sie die Parameterdateien in den folgenden Schritten ändern.

Cloud-Architekt
Geben Sie in den Vorlagenparametern den Namen des S3-Buckets für den AWS-Protokollspeicher an.

Geben Sie einen Namen für den S3 Bucket Name for Centralized Logging in Logging Account Parameter ein. Dieser Bucket fungiert als zentraler Speicherort zum Speichern von AWS-Protokollen, z. B. Flow-Protokollen und CloudTrail Protokollen, von allen Konten aus. Notieren Sie sich sowohl den Bucket-Namen als auch den Amazon-Ressourcennamen (ARN).

Cloud-Architekt
Geben Sie den Namen des S3-Buckets zum Speichern von Zugriffsprotokollen an.

Geben Sie einen S3-Bucket-Namen für den S3 Bucket Name for Access Logs in Logging Account Parameter ein. Dieser S3-Bucket speichert Zugriffsprotokolle für Amazon S3.

Cloud-Architekt
Geben Sie den Namen des S3-Buckets zum Speichern von Vorlagen an.

Geben Sie einen S3-Bucket-Namen in den S3 Bucket Name for CloudFormation Template storage in Logging Account Parameter ein.

Cloud-Architekt
Geben Sie die Organisations-ID an.

Um Zugriff auf S3-Buckets innerhalb der Organisation zu gewähren, geben Sie die ID für die Organisation im Organization Id for Non-AMS accounts Parameter ein.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten
Starten Sie die CloudFormation Vorlage security-guard-rails-codepipeline-Centralized-SecurityAccount.yml.

Um die CI/CD-Pipeline bereitzustellen, starten Sie die security-guard-rails-codepipeline-Centralized-SecurityAccount.yml Vorlage manuell im übergeordneten Sicherheitskonto in us-east-1. Die Vorlage befindet sich im -/templates/initial_deployment_templatesVerzeichnis des Pakets. Diese Pipeline stellt die gesamte Infrastruktur in allen untergeordneten Konten bereit.

Cloud-Architekt
Geben Sie einen Namen für den S3-Bucket an, der Vorlagen im zentralen Protokollierungskonto speichert.

Geben Sie den Namen des S3-Buckets ein, den Sie für den S3 Bucket Name for the CloudFormation Template storage in Logging Account Parameter in Schritt 2 angegeben haben.

Cloud-Architekt
Geben Sie den Namen der IAM-Rolle an, die in den untergeordneten Konten verwendet werden soll.

Geben Sie den Namen ein, den Sie für den Name of the IAM role Parameter in Schritt 1 angegeben haben.

Cloud-Architekt
Geben Sie eine aktive E-Mail-Adresse für den Empfang von CodePipeline Fehlerbenachrichtigungen an.

Geben Sie die E-Mail-Adresse ein, die Sie für den Empfang von CodePipeline Fehlerbenachrichtigungen und anderen CloudWatch Alarmbenachrichtigungen verwenden möchten.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten
Ändern Sie Accountlist.json.

Fügen Sie der Accountlist.json Datei, die sich auf der obersten Ebene im Paket befindet, die übergeordnete Sicherheitskontonummer und die untergeordneten Kontonummern hinzu. Beachten Sie, dass das ChildAccountList Feld auch die übergeordnete Sicherheitskontonummer enthält. Sehen Sie sich das Beispiel in der -deployment-instructions.mdDatei im -Paket an.

Cloud-Architekt
Ändern von accounts.csv

Fügen Sie in der -accounts.csvDatei, die sich auf der obersten Ebene im -Paket befindet, alle untergeordneten Konten zusammen mit der bei den Konten registrierten E-Mail hinzu. Sehen Sie sich das Beispiel in der -deployment-instructions.mdDatei an.

Cloud-Architekt
Ändern Sie parameters.config.

Aktualisieren Sie in der parameters.config Datei , die sich im /templates Ordner befindet, die folgenden sechs Parameter:

  • pNotifyEmail: Die E-Mail-Adresse, die Sie beim Einrichten der Pipeline angegeben haben (siehe Schritt 3)

  • pstackNameLogging: Der Name des CloudFormation Stacks für die zentrale Protokollierung

  • pS3LogsBucket: Der Name des S3-Buckets, in dem Protokolle von allen Konten gespeichert werden (siehe Schritt 2)

  • pBucketName: Der ARN für den S3-Bucket, der zum Speichern der Protokolle verwendet wird

  • pTemplateBucketName: Der Name der S3-Buckets, in denen Vorlagen gespeichert werden (siehe Schritt 2)

  • pAllowedAccounts: Konto-IDs für die übergeordneten und untergeordneten Konten

Für die anderen Parameter können Sie die Standardwerte beibehalten. Ein Beispiel finden Sie in der -deployment-instructions.mdDatei im -Paket.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten
Greifen Sie auf das CodeCommit Repo zu, das Sie in Schritt 3 erstellt haben.

Notieren Sie sich im Abschnitt Outputs des CI/CD Infrastructure CloudFormation Stacks (Start in Schritt 3) den Namen der CodeCommit Repository-URL. Erstellen Sie Zugriff auf das Repository, damit die Dateien dorthin übertragen werden können, damit die Infrastruktur in allen Zielkonten bereitgestellt werden kann. Weitere Informationen finden Sie unter Einrichten von für AWS CodeCommit.

Cloud-Architekt
Übertragen Sie die Dateien in das CodeCommit Repository.

Installieren Sie Git auf Ihrem Computer. Führen Sie dann die Git-Befehle aus, um das leere Repository zu klonen, die Dateien von Ihrem Laptop in den Repository-Ordner zu kopieren und die Artefakte in das Repository zu verschieben. Suchen Sie nach den Git-Beispielbefehlen in der -deployment-instructions.mdDatei im -Paket. Grundlegende Git-Befehle finden Sie im Abschnitt Verwandte Ressourcen.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten
Bestätigen Sie den Status von CodePipeline und CodeBuild.

Nachdem Sie die Artefakte in das CodeCommit Repo übertragen haben, bestätigen Sie, dass die CodePipeline Pipeline, die Sie in Schritt 3 erstellt haben, initiiert wurde. Überprüfen Sie dann die CodeBuild Protokolle, um den Status oder die Fehler zu bestätigen.

Cloud-Architekt

Zugehörige Ressourcen

Anlagen

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