Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Blockieren Sie den öffentlichen Zugriff auf Amazon RDS mithilfe von Cloud Custodian - 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.

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.

Blockieren Sie den öffentlichen Zugriff auf Amazon RDS mithilfe von Cloud Custodian

Erstellt von Abhay Kumar (AWS) und Dwarika Patra (AWS)

Übersicht

Viele Unternehmen führen ihre Workloads und Services auf mehreren Cloud-Anbietern aus. In diesen Hybrid-Cloud-Umgebungen erfordert die Cloud-Infrastruktur zusätzlich zur Sicherheit, die von den einzelnen Cloud-Anbietern bereitgestellt wird, eine strenge Cloud-Governance. Eine Cloud-Datenbank wie Amazon Relational Database Service (Amazon RDS) ist ein wichtiger Dienst, der auf etwaige Zugriffs- und Berechtigungsschwachstellen überwacht werden muss. Sie können zwar den Zugriff auf die Amazon RDS-Datenbank einschränken, indem Sie eine Sicherheitsgruppe konfigurieren, aber Sie können eine zweite Schutzebene hinzufügen, um Aktionen wie den öffentlichen Zugriff zu verbieten. Wenn Sie sicherstellen, dass der öffentliche Zugang gesperrt ist, können Sie die Einhaltung der Allgemeinen Datenschutzverordnung (DSGVO), des Health Insurance Portability and Accountability Act (HIPAA), des National Institute of Standards and Technology (NIST) und des Payment Card Industry Data Security Standard (PCI DSS) besser einhalten.

Cloud Custodian ist eine Open-Source-Regel-Engine, mit der Sie Zugriffsbeschränkungen für Amazon Web Services (AWS) -Ressourcen wie Amazon RDS durchsetzen können. Mit Cloud Custodian können Sie Regeln festlegen, die die Umgebung anhand definierter Sicherheits- und Compliance-Standards validieren. Sie können Cloud Custodian verwenden, um Ihre Cloud-Umgebungen zu verwalten, indem Sie dazu beitragen, die Einhaltung von Sicherheitsrichtlinien, Tag-Richtlinien und die Müllsammlung ungenutzter Ressourcen sowie das Kostenmanagement sicherzustellen. Mit Cloud Custodian können Sie eine einzige Oberfläche für die Implementierung von Governance in einer Hybrid-Cloud-Umgebung verwenden. Sie könnten beispielsweise die Cloud Custodian-Schnittstelle verwenden, um mit AWS und Microsoft Azure zu interagieren und so den Aufwand für die Arbeit mit Mechanismen wie AWS Config, AWS-Sicherheitsgruppen und Azure-Richtlinien zu reduzieren.

Dieses Muster enthält Anweisungen zur Verwendung von Cloud Custodian auf AWS, um die Einschränkung des öffentlichen Zugriffs auf Amazon RDS-Instances durchzusetzen.

Voraussetzungen und Einschränkungen

Voraussetzungen

Architektur

Zieltechnologie-Stack

  • Amazon RDS

  • AWS CloudTrail

  • AWS Lambda

  • Cloud Custodian

Zielarchitektur

Das folgende Diagramm zeigt, wie Cloud Custodian die Richtlinie für Lambda bereitstellt, AWS das CreateDBInstance Ereignis CloudTrail initiiert und die Lambda-Funktion in Amazon RDS PubliclyAccessible auf false gesetzt hat.

Verwendung von Cloud Custodian auf AWS, um den öffentlichen Zugriff auf Amazon RDS-Instances einzuschränken.

Tools

AWS-Services

  • AWS CloudTrail unterstützt Sie bei der Prüfung der Unternehmensführung, der Einhaltung von Vorschriften und des Betriebsrisikos Ihres AWS-Kontos.

  • AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.

  • AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWS Lambda ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

  • Amazon Relational Database Service (Amazon RDS) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.

Andere Tools

  • Cloud Custodian vereint die Tools und Skripte, die viele Unternehmen zur Verwaltung ihrer Public-Cloud-Konten verwenden, in einem Open-Source-Tool. Es verwendet eine Engine für statuslose Regeln zur Definition und Durchsetzung von Richtlinien mit Metriken, strukturierten Ergebnissen und detaillierten Berichten für die Cloud-Infrastruktur. Sie lässt sich eng in eine serverlose Runtime integrieren, um Problembehebung und Reaktion in Echtzeit bei geringem Betriebsaufwand zu ermöglichen.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie AWS CLI.

Folgen Sie den Anweisungen in der AWS-Dokumentation, um AWS CLI zu installieren.

AWS-Administrator

Richten Sie AWS-Anmeldeinformationen ein.

Konfigurieren Sie die Einstellungen, die die AWS-CLI für die Interaktion mit AWS verwendet, einschließlich der AWS-Region und des Ausgabeformats, das Sie verwenden möchten.

$>aws configure AWS Access Key ID [None]: <your_access_key_id> AWS Secret Access Key [None]: <your_secret_access_key> Default region name [None]: Default output format [None]:

Weitere Informationen finden Sie in der AWS-Dokumentation.

AWS-Administrator

Erstellen Sie eine IAM-Rolle.

Führen Sie den folgenden Befehl aus, um eine IAM-Rolle mit der Lambda-Ausführungsrolle zu erstellen.

aws iam create-role --role-name lambda-ex --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}
AWS DevOps

AWS-CLI einrichten

AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie AWS CLI.

Folgen Sie den Anweisungen in der AWS-Dokumentation, um AWS CLI zu installieren.

AWS-Administrator

Richten Sie AWS-Anmeldeinformationen ein.

Konfigurieren Sie die Einstellungen, die die AWS-CLI für die Interaktion mit AWS verwendet, einschließlich der AWS-Region und des Ausgabeformats, das Sie verwenden möchten.

$>aws configure AWS Access Key ID [None]: <your_access_key_id> AWS Secret Access Key [None]: <your_secret_access_key> Default region name [None]: Default output format [None]:

Weitere Informationen finden Sie in der AWS-Dokumentation.

AWS-Administrator

Erstellen Sie eine IAM-Rolle.

Führen Sie den folgenden Befehl aus, um eine IAM-Rolle mit der Lambda-Ausführungsrolle zu erstellen.

aws iam create-role --role-name lambda-ex --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}
AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie Cloud Custodian.

Um Cloud Custodian für Ihr Betriebssystem und Ihre Umgebung zu installieren, folgen Sie den Anweisungen in der Cloud Custodian-Dokumentation.

DevOps Ingenieur

Überprüfen Sie das Cloud Custodian-Schema.

Verwenden Sie den folgenden Befehl, um die vollständige Liste der Amazon RDS-Ressourcen anzuzeigen, für die Sie Richtlinien ausführen können.

custodian schema aws.rds
DevOps Ingenieur

Erstellen Sie die Cloud Custodian-Richtlinie.

Speichern Sie den Code, der sich unter der Cloud Custodian-Richtliniendatei im Abschnitt Zusätzliche Informationen befindet, mit einer YAML-Erweiterung.

DevOps Ingenieur

Definieren Sie Cloud Custodian-Aktionen, um das Kennzeichen „Öffentlich zugänglich“ zu ändern.

  1. Suchen Sie den Depotbankcode (z. B./Users/abcd/custodian/lib/python3.9/site-packages/c7n/resources/rds.py).

  2. Suchen Sie die RDSSetPublicAvailability Klasse in und ändern Sie diese Klasserds.py, indem Sie den Code verwenden, der sich in der Datei c7n resources rds.py im Abschnitt Zusätzliche Informationen befindet.

DevOps Ingenieur

Führen Sie einen Probelauf durch.

(Optional) Verwenden Sie den folgenden Befehl, um zu überprüfen, welche Ressourcen durch die Richtlinie identifiziert werden, ohne Aktionen für die Ressourcen auszuführen.

custodian run -dryrun <policy_name>.yaml -s <output_directory>
DevOps Ingenieur

Richten Sie Cloud Custodian ein

AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie Cloud Custodian.

Um Cloud Custodian für Ihr Betriebssystem und Ihre Umgebung zu installieren, folgen Sie den Anweisungen in der Cloud Custodian-Dokumentation.

DevOps Ingenieur

Überprüfen Sie das Cloud Custodian-Schema.

Verwenden Sie den folgenden Befehl, um die vollständige Liste der Amazon RDS-Ressourcen anzuzeigen, für die Sie Richtlinien ausführen können.

custodian schema aws.rds
DevOps Ingenieur

Erstellen Sie die Cloud Custodian-Richtlinie.

Speichern Sie den Code, der sich unter der Cloud Custodian-Richtliniendatei im Abschnitt Zusätzliche Informationen befindet, mit einer YAML-Erweiterung.

DevOps Ingenieur

Definieren Sie Cloud Custodian-Aktionen, um das Kennzeichen „Öffentlich zugänglich“ zu ändern.

  1. Suchen Sie den Depotbankcode (z. B./Users/abcd/custodian/lib/python3.9/site-packages/c7n/resources/rds.py).

  2. Suchen Sie die RDSSetPublicAvailability Klasse in und ändern Sie diese Klasserds.py, indem Sie den Code verwenden, der sich in der Datei c7n resources rds.py im Abschnitt Zusätzliche Informationen befindet.

DevOps Ingenieur

Führen Sie einen Probelauf durch.

(Optional) Verwenden Sie den folgenden Befehl, um zu überprüfen, welche Ressourcen durch die Richtlinie identifiziert werden, ohne Aktionen für die Ressourcen auszuführen.

custodian run -dryrun <policy_name>.yaml -s <output_directory>
DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Stellen Sie die Richtlinie mithilfe von Lambda bereit.

Verwenden Sie den folgenden Befehl, um die Lambda-Funktion zu erstellen, mit der die Richtlinie ausgeführt wird.

custodian run -s policy.yaml

Diese Richtlinie wird dann durch die CloudTrail CreateDBInstance AWS-Veranstaltung initiiert.

Aus diesem Grund setzt AWS Lambda für Instances, die den Kriterien entsprechen, das Kennzeichen für öffentlich zugänglich auf False.

DevOps Ingenieur

Stellen Sie die Richtlinie bereit

AufgabeBeschreibungErforderliche Fähigkeiten

Stellen Sie die Richtlinie mithilfe von Lambda bereit.

Verwenden Sie den folgenden Befehl, um die Lambda-Funktion zu erstellen, mit der die Richtlinie ausgeführt wird.

custodian run -s policy.yaml

Diese Richtlinie wird dann durch die CloudTrail CreateDBInstance AWS-Veranstaltung initiiert.

Aus diesem Grund setzt AWS Lambda für Instances, die den Kriterien entsprechen, das Kennzeichen für öffentlich zugänglich auf False.

DevOps Ingenieur

Zugehörige Ressourcen

Zusätzliche Informationen

YAML-Datei mit der Cloud-Custodian-Richtlinie

policies: - name: "block-public-access" resource: rds description: | This Enforcement blocks public access for RDS instances. mode: type: cloudtrail events: - event: CreateDBInstance # Create RDS instance cloudtrail event source: rds.amazonaws.com ids: requestParameters.dBInstanceIdentifier role: arn:aws:iam::1234567890:role/Custodian-compliance-role filters: - type: event key: 'detail.requestParameters.publiclyAccessible' value: true actions: - type: set-public-access state: false

Datei rds.py für c7n-Ressourcen

@actions.register('set-public-access') class RDSSetPublicAvailability(BaseAction): schema = type_schema( "set-public-access", state={'type': 'boolean'}) permissions = ('rds:ModifyDBInstance',) def set_accessibility(self, r): client = local_session(self.manager.session_factory).client('rds') waiter = client.get_waiter('db_instance_available') waiter.wait(DBInstanceIdentifier=r['DBInstanceIdentifier']) client.modify_db_instance( DBInstanceIdentifier=r['DBInstanceIdentifier'], PubliclyAccessible=self.data.get('state', False)) def process(self, rds): with self.executor_factory(max_workers=2) as w: futures = {w.submit(self.set_accessibility, r): r for r in rds} for f in as_completed(futures): if f.exception(): self.log.error( "Exception setting public access on %s \n %s", futures[f]['DBInstanceIdentifier'], f.exception()) return rds

Integration von Security Hub

Cloud Custodian kann in AWS Security Hub integriert werden, um Sicherheitsergebnisse zu senden und Abhilfemaßnahmen zu ergreifen. Weitere Informationen finden Sie unter Ankündigung der Integration von Cloud Custodian mit AWS Security Hub.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.