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
Ein aktives AWS-Konto
AWS Lambda installiert
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.

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
Aufgabe | Beschreibung | Erforderliche 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.
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 DevOps |
Aufgabe | Beschreibung | Erforderliche 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.
| 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. |
| 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.
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche 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.
Diese Richtlinie wird dann durch die CloudTrail 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