Daten aus einem Amazon Redshift Redshift-Cluster kontenübergreifend nach Amazon S3 entladen - 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.

Daten aus einem Amazon Redshift Redshift-Cluster kontenübergreifend nach Amazon S3 entladen

Erstellt von Andrew Kamel () AWS

Quellcode-Repository: -s3-python aws-unload-redshift-to

Umgebung: Produktion

Technologien: Datenbanken; Analytik; Serverlos

Arbeitslast: Open Source

AWSDienste: AWS Lambda; Amazon Redshift; Amazon S3; Secrets Manager AWS

Übersicht

Wenn Sie Anwendungen testen, ist es hilfreich, Produktionsdaten in Ihrer Testumgebung zu haben. Mithilfe von Produktionsdaten können Sie die Anwendung, die Sie entwickeln, genauer einschätzen.

Dieses Muster extrahiert Daten aus einem Amazon Redshift Redshift-Cluster in einer Produktionsumgebung in einen Amazon Simple Storage Service (Amazon S3) -Bucket in einer Entwicklungsumgebung auf Amazon Web Services (AWS).

Das Muster führt Schritt für Schritt die Einrichtung von beiden DEV PROD Konten durch, einschließlich der folgenden Schritte:

  • Erforderliche -Ressourcen

  • AWS Identity and Access Management (IAM) Rollen

  • Netzwerkanpassungen an Subnetzen, Sicherheitsgruppen und der Virtual Private Cloud (VPC) zur Unterstützung der Amazon Redshift Redshift-Verbindung

  • Eine AWS Lambda Beispielfunktion mit einer Python-Laufzeit zum Testen der Architektur

Um Zugriff auf den Amazon Redshift Redshift-Cluster AWS Secrets Manager zu gewähren, speichert das Muster die entsprechenden Anmeldeinformationen. Der Vorteil besteht darin, dass Sie über alle erforderlichen Informationen verfügen, um eine direkte Verbindung zum Amazon Redshift Redshift-Cluster herzustellen, ohne wissen zu müssen, wo sich der Amazon Redshift Redshift-Cluster befindet. Darüber hinaus können Sie die Verwendung des Geheimnisses überwachen.

Das in Secrets Manager gespeicherte Geheimnis umfasst den Host, den Datenbanknamen, den Port und die entsprechenden Anmeldeinformationen des Amazon Redshift Redshift-Clusters.

Informationen zu Sicherheitsaspekten bei der Verwendung dieses Musters finden Sie im Abschnitt Bewährte Methoden.

Voraussetzungen und Einschränkungen

Voraussetzungen

Einschränkungen

  • Abhängig von der Datenmenge, die Sie abfragen möchten, kann es bei der Lambda-Funktion zu einem Timeout kommen.

    Wenn Ihre Ausführung länger als das maximale Lambda-Timeout (15 Minuten) dauert, verwenden Sie einen asynchronen Ansatz für Ihren Lambda-Code. Das Codebeispiel für dieses Muster verwendet die psycopg2-Bibliothek für Python, die derzeit keine asynchrone Verarbeitung unterstützt.

  • Einige AWS-Services sind nicht in allen verfügbar. AWS-Regionen Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie AWS-Services unter Nach Regionen. Informationen zu bestimmten Endpunkten finden Sie auf der Seite Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.

Architektur

Das folgende Diagramm zeigt die Zielarchitektur mit Konten DEV und PROD Konten.

Das Lambda VPC im DEV Konto und das Amazon Redshift VPC im PROD Konto.

Das Diagramm zeigt den folgenden Workflow:

  1. Die Lambda-Funktion im DEV Konto übernimmt die IAM Rolle, die für den Zugriff auf die Amazon Redshift Redshift-Anmeldeinformationen in Secrets Manager im PROD Konto erforderlich ist.

    Die Lambda-Funktion ruft dann das Amazon Redshift Redshift-Clustergeheimnis ab.

  2. Die Lambda-Funktion im DEV Konto verwendet die Informationen, um über den Peered eine Verbindung zum Amazon Redshift Redshift-Cluster im PROD Konto herzustellen. VPCs

    Die Lambda-Funktion sendet dann einen Entladebefehl, um den Amazon Redshift Redshift-Cluster im Konto abzufragen. PROD

  3. Der Amazon Redshift Redshift-Cluster im PROD Konto übernimmt die entsprechende IAM Rolle für den Zugriff auf den S3-Bucket im DEV Konto.

    Der Amazon Redshift Redshift-Cluster entlädt die abgefragten Daten in den S3-Bucket im Konto. DEV

Daten von Amazon Redshift abfragen

Das folgende Diagramm zeigt die Rollen, die zum Abrufen der Amazon Redshift Redshift-Anmeldeinformationen und zum Herstellen einer Verbindung mit dem Amazon Redshift Redshift-Cluster verwendet werden. Der Workflow wird durch die Lambda-Funktion initiiert.

Der dreistufige Prozess zur kontenübergreifenden Übernahme von Rollen.

Das Diagramm zeigt den folgenden Workflow:

  1. Das CrossAccount-SM-Read-Role Im DEV Konto setzt das SM-Read-Role Im PROD Konto voraus.

  2. Die SM-Read-Role Rolle verwendet die angehängte Richtlinie, um das Geheimnis aus Secrets Manager abzurufen.

  3. Die Anmeldeinformationen werden für den Zugriff auf den Amazon Redshift Redshift-Cluster verwendet.

Daten auf Amazon S3 hochladen

Das folgende Diagramm zeigt den kontoübergreifenden Lese- und Schreibvorgang für das Extrahieren von Daten und das Hochladen auf Amazon S3. Der Workflow wird durch die Lambda-Funktion initiiert. Das Muster verkettet IAM Rollen in Amazon Redshift. Der Befehl unload, der vom Amazon Redshift Redshift-Cluster kommtCrossAccount-S3-Write-Role, geht von und dann von. S3-Write-Role Durch diese Rollenverkettung erhält Amazon Redshift Zugriff auf Amazon S3.

Die Rollen, die Anmeldeinformationen abrufen, auf Amazon Redshift zugreifen und Daten auf Amazon S3 hochladen.

Der Workflow umfasst die folgenden Schritte:

  1. Das CrossAccount-SM-Read-Role im DEV Konto setzt das SM-Read-Role im PROD Konto voraus.

  2. Der SM-Read-Role ruft die Amazon Redshift Redshift-Anmeldeinformationen von Secrets Manager ab.

  3. Die Lambda-Funktion stellt eine Verbindung zum Amazon Redshift Redshift-Cluster her und sendet eine Abfrage.

  4. Der Amazon Redshift Redshift-Cluster geht davon aus. CrossAccount-S3-Write-Role

  5. Der CrossAccount-S3-Write-Role geht davon aus, dass das S3-Write-Role im DEV Konto ist.

  6. Die Abfrageergebnisse werden in den S3-Bucket im DEV Konto entladen.

Tools

AWS-Services

  • AWS Key Management Service (AWS KMS) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen.

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

  • Amazon Redshift ist ein verwalteter Data-Warehouse-Service im Petabyte-Bereich in der Cloud. AWS

  • AWS Secrets Managerhilft Ihnen dabei, hartcodierte Anmeldeinformationen in Ihrem Code, einschließlich Kennwörtern, durch einen API Aufruf von Secrets Manager zu ersetzen, um das Geheimnis programmgesteuert abzurufen.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

Code-Repository

Der Code für dieses Muster ist im GitHub unload-redshift-to-s3-Python-Repository verfügbar.

Bewährte Methoden

Haftungsausschluss zur Sicherheit

Bevor Sie diese Lösung implementieren, sollten Sie die folgenden wichtigen Sicherheitsempfehlungen berücksichtigen:

  • Denken Sie daran, dass die Verbindung von Entwicklungs- und Produktionskonten den Umfang erhöhen und die allgemeine Sicherheitslage verringern kann. Wir empfehlen, diese Lösung nur vorübergehend einzusetzen, den erforderlichen Teil der Daten zu extrahieren und dann die bereitgestellten Ressourcen sofort zu vernichten. Um die Ressourcen zu vernichten, sollten Sie die Lambda-Funktion löschen, alle IAM Rollen und Richtlinien entfernen, die für diese Lösung erstellt wurden, und jeglichen Netzwerkzugriff widerrufen, der zwischen den Konten gewährt wurde.

  • Konsultieren Sie Ihre Sicherheits- und Compliance-Teams, bevor Sie Daten aus der Produktions- in die Entwicklungsumgebung kopieren. Persönlich identifizierbare Informationen (PII), geschützte Gesundheitsinformationen (PHI) und andere vertrauliche oder gesetzlich vorgeschriebene Daten sollten generell nicht auf diese Weise kopiert werden. Kopieren Sie nur öffentlich zugängliche, nicht vertrauliche Informationen (z. B. öffentliche Bestandsdaten aus einem Shop-Frontend). Erwägen Sie die Tokenisierung oder Anonymisierung von Daten oder die Generierung synthetischer Testdaten, anstatt nach Möglichkeit Produktionsdaten zu verwenden. Eines der AWS Sicherheitsprinzipien besteht darin, Menschen von Daten fernzuhalten. Mit anderen Worten, Entwickler sollten keine Operationen im Produktionskonto ausführen.

  • Beschränken Sie den Zugriff auf die Lambda-Funktion im Entwicklungskonto, da sie Daten aus dem Amazon Redshift Redshift-Cluster in der Produktionsumgebung lesen kann.

  • Um eine Unterbrechung der Produktionsumgebung zu vermeiden, sollten Sie die folgenden Empfehlungen umsetzen:

    • Verwenden Sie ein separates, dediziertes Entwicklungskonto für Test- und Entwicklungsaktivitäten.

    • Implementieren Sie strenge Netzwerkzugriffskontrollen und beschränken Sie den Datenverkehr zwischen Konten auf das Notwendige.

    • Überwachen und prüfen Sie den Zugriff auf die Produktionsumgebung und die Datenquellen.

    • Implementieren Sie Zugriffskontrollen mit den geringsten Rechten für alle beteiligten Ressourcen und Dienste.

    • Überprüfen Sie regelmäßig Anmeldeinformationen wie AWS Secrets Manager geheime Daten und IAM Rollenzugriffsschlüssel und wechseln Sie diese ab.

  • Informationen zu den in diesem Artikel verwendeten Diensten finden Sie in der folgenden Sicherheitsdokumentation:

Sicherheit hat beim Zugriff auf Produktionsdaten und Ressourcen oberste Priorität. Halten Sie sich stets an bewährte Verfahren, implementieren Sie Zugriffskontrollen mit geringsten Rechten und überprüfen und aktualisieren Sie Ihre Sicherheitsmaßnahmen regelmäßig.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein Geheimnis für den Amazon Redshift Redshift-Cluster.

Gehen Sie wie folgt vor, um das Geheimnis für den Amazon Redshift Redshift-Cluster zu erstellen:

  1. Melden Sie sich im PROD Konto bei an und öffnen Sie die AWS Management Console Secrets Manager Manager-Konsole unter https://console.aws.amazon.com/secretsmanager/.

  2. Wählen Sie Neues Geheimnis speichern aus.

  3. Wählen Sie Anmeldeinformationen für Amazon Redshift Data Warehouse aus.

  4. Geben Sie für Benutzername und Passwort Werte für Ihre Instance ein und bestätigen Sie den Wert für den Verschlüsselungsschlüssel, oder wählen Sie einen Wert aus.

  5. Wählen Sie das Amazon Redshift Data Warehouse aus, auf das Ihr Secret zugreifen soll.

  6. Geben Sie Redshift-Creds-Secret den geheimen Namen ein.

  7. Schließen Sie die verbleibenden Erstellungsschritte mit den Standardoptionen ab und wählen Sie dann Speichern aus.

  8. Sehen Sie sich Ihr Geheimnis an und notieren Sie sich den ARNGeheimwert, der zur Identifizierung des Geheimnisses generiert wurde.

DevOps Ingenieur

Erstellen Sie eine Rolle für den Zugriff auf Secrets Manager.

Gehen Sie wie folgt vor, um die Rolle zu erstellen:

  1. Öffnen Sie im PROD Konto die IAM Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie Policies (Richtlinien).

  3. Wählen Sie Create Policy (Richtlinie erstellen) aus.

  4. Wählen Sie die JSONRegisterkarte und geben Sie dann eine IAM Richtlinie wie die folgende ein:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "<Redshift-Creds-Secret-ARN>" ] }, { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } ] }

    Redshift-Creds-Secret-ARNErsetzen Sie es durch den Amazon-Ressourcennamen (ARN) des Secrets Manager Manager-Geheimnisses, das die Informationen und Anmeldeinformationen für den Amazon Redshift-Cluster enthält.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Rolle für den Zugriff auf den S3-Bucket.

Gehen Sie wie folgt vor, um die Rolle für den Zugriff auf den S3-Bucket zu erstellen:

  1. Öffnen Sie im DEV Konto die IAM Konsole.

  2.  Wählen Sie Policies (Richtlinien).

  3. Wählen Sie Create Policy (Richtlinie erstellen) aus.

  4.  Wählen Sie die JSONRegisterkarte und geben Sie dann eine IAM Richtlinie wie die folgende ein:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "kmsstmt", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": [ "<kms-key-arn>" ] }, { "Sid": "s3stmt", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::mybucket", "arn:aws:s3:::mybucket/*" ] } ] }

    mybucketErsetzen Sie es durch den Namen des S3-Buckets, auf den Sie zugreifen möchten. Wenn der S3-Bucket verschlüsselt ist, kms-key-arn ersetzen Sie ihn außerdem durch den ARN Schlüssel AWS Key Management Service (AWS KMS), der zur Verschlüsselung des S3-Buckets verwendet wurde. Andernfalls benötigen Sie den AWS KMS Abschnitt in der Richtlinie nicht.

  5. Wählen Sie Richtlinie überprüfen aus, geben Sie S3-Write-Policy den Namen der Richtlinie ein und wählen Sie dann Richtlinie erstellen aus.

  6. Wählen Sie im Navigationsbereich Rollen aus.

  7.  Wählen Sie Rolle erstellen aus.

  8. Wählen Sie für die Rolle „Vertrauenswürdige Entität“ die Option Benutzerdefinierte Vertrauensrichtlinie aus.

  9. Wählen Sie Weiter: Berechtigungen und dann die von Ihnen erstellte S3-Write-Policy-Richtlinie aus.

  10. Geben Sie S3-Write-Role den Rollennamen ein und wählen Sie dann Rolle erstellen aus.

DevOps Ingenieur

Erstellen Sie die Amazon Redshift Redshift-Rolle.

Gehen Sie wie folgt vor, um die Amazon Redshift Redshift-Rolle zu erstellen:

  1. Öffnen Sie im PROD Konto die IAM Konsole.

  2. Wählen Sie Policies (Richtlinien).

  3. Wählen Sie Create Policy (Richtlinie erstellen) aus.

  4. Wählen Sie die JSONRegisterkarte und geben Sie dann eine IAM Richtlinie wie die folgende ein:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountPolicy", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "S3-Write-Role-ARN" } ] }

    S3-Write-Role-ARNErsetzen Sie es durch das ARN für S3-Write-Role im DEV Konto.

  5. Wählen Sie Richtlinie überprüfen aus, geben Sie S3-Write-Role-Assume-Policy den Namen der Richtlinie ein, und wählen Sie dann Richtlinie erstellen aus.

  6. Wählen Sie im Navigationsbereich Roles (Rollen) und dann Create role (Rolle erstellen).

  7. Wählen Sie AWSService als vertrauenswürdigen Entitätstyp und dann Redshift, Redshift Customizable.

  8. Wählen Sie Weiter: Berechtigungen und dann die von Ihnen erstellte S3-Write-Role-Assume-Policy-Richtlinie aus.

  9. Geben Sie den Rollennamen ein CrossAccount-S3-Write-Role und wählen Sie dann Rolle erstellen aus.

  10. Ordnen Sie die IAM Rolle Ihrem Amazon Redshift Redshift-Cluster zu.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Stellen Sie die Lambda-Funktion bereit.

Gehen Sie wie folgt vor, um eine Lambda-Funktion im Peered VPC bereitzustellen:

  1. Öffnen Sie die Lambda-Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wählen Sie Funktionen.

  3. Wählen Sie Create function (Funktion erstellen).

  4. Geben Sie unter Basic information (Grundlegende Informationen) bei Function name (Funktionsname) einen Namen für Ihre Funktion ein.

  5. Wählen Sie für Runtime Python 3.8.

  6. Erweitern Sie Standardausführungsrolle ändern, und gehen Sie dann wie folgt vor:

    1. Wählen Sie Bestehende Rolle verwenden aus.

    2. Wählen Sie für Existing role die Lambda-Rolle CrossAccount-RM-Read-Role aus, die Sie zuvor erstellt haben.

  7. Erweitern Sie Erweiterte Einstellungen und gehen Sie wie folgt vor:

    1. Wählen Sie das VPC Kontrollkästchen Aktivieren aus.

    2. Wählen Sie für VPCdas DEV Konto den VPC Peering-Dienst aus.

    3. Wählen Sie für Subnetze das private Subnetz aus.

    4. Wählen Sie unter Security Groups (Sicherheitsgruppen) die standardmäßige Sicherheitsgruppe aus.

  8. Wählen Sie Funktion erstellen aus.

  9. Fügen Sie die psycopg2-Bibliothek als Ebene zur Lambda-Funktion hinzu.

    Hinweis: Sie können eine bereits bereitgestellte Ebene aus dem psycopg2-lambda-Layer-Repository verwenden. Stellen Sie sicher, dass Sie die auf Ihnen AWS-Region und Python URL basierende Runtime verwenden.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Importieren Sie die erforderlichen Ressourcen.

Führen Sie die folgenden Befehle aus, um die erforderlichen Ressourcen zu importieren:

import ast import boto3 import psycopg2 import base64 from botocore.exceptions import ClientError
App-Developer

Führen Sie die Lambda-Handler-Funktion aus.

Die Lambda-Funktion verwendet AWS Security Token Service (AWS STS) für den kontoübergreifenden Zugriff und die temporäre Verwaltung von Anmeldeinformationen. Die Funktion verwendet den AssumeRole API Vorgang, um vorübergehend die Berechtigungen der Rolle zu übernehmen. sm_read_role IAM

Verwenden Sie den folgenden Beispielcode, um die Lambda-Funktion auszuführen:

def lambda_handler(event, context): sts_client = boto3.client('sts') # Secrets Manager Configurations secret_name = "redshift_creds" sm_region = "eu-west-1" sm_read_role = "arn:aws:iam::PROD_ACCOUNT_NUMBER:role/SM-Read-Role" # S3 Bucket Configurations s3_bucket_path = "s3://mybucket/" s3_bucket_region = "eu-west-1" s3_write_role = "arn:aws:iam::DEV_ACCOUNT_NUMBER:role/S3-Write-Role" # Redshift Configurations sql_query = "select * from category" redshift_db = "dev" redshift_s3_write_role = "arn:aws:iam::PROD_ACCOUNT_NUMBER:role/CrossAccount-S3-Write-Role" chained_s3_write_role = "%s,%s" % (redshift_s3_write_role, s3_write_role) assumed_role_object = sts_client.assume_role( RoleArn=sm_read_role, RoleSessionName="CrossAccountRoleAssumption", ExternalId="YOUR_EXTERNAL_ID", ) credentials = assumed_role_object['Credentials'] secret_dict = ast.literal_eval(get_secret(credentials, secret_name, sm_region)) execute_query(secret_dict, sql_query, s3_bucket_path, chained_s3_write_role, s3_bucket_region, redshift_db) return { 'statusCode': 200 }
App-Developer

Hol dir das Geheimnis.

Verwenden Sie den folgenden Beispielcode, um das Amazon Redshift Redshift-Secret abzurufen:

def get_secret(credentials, secret_name, sm_region): # Create a Secrets Manager client session = boto3.session.Session() sm_client = session.client( service_name='secretsmanager', aws_access_key_id=credentials['AccessKeyId'], aws_secret_access_key=credentials['SecretAccessKey'], aws_session_token=credentials['SessionToken'], region_name=sm_region ) try: get_secret_value_response = sm_client.get_secret_value( SecretId=secret_name ) except ClientError as e: print(e) raise e else: if 'SecretString' in get_secret_value_response: return get_secret_value_response['SecretString'] else: return base64.b64decode(get_secret_value_response['SecretBinary'])
App-Developer

Führen Sie den Befehl unload aus.

Verwenden Sie den folgenden Beispielcode, um die Daten in den S3-Bucket zu entladen.

def execute_query(secret_dict, sql_query, s3_bucket_path, chained_s3_write_role, s3_bucket_region, redshift_db): conn_string = "dbname='%s' port='%s' user='%s' password='%s' host='%s'" \ % (redshift_db, secret_dict["port"], secret_dict["username"], secret_dict["password"], secret_dict["host"]) con = psycopg2.connect(conn_string) unload_command = "UNLOAD ('{}') TO '{}' IAM_ROLE '{}' DELIMITER '|' REGION '{}';" \ .format(sql_query, s3_bucket_path + str(datetime.datetime.now()) + ".csv", chained_s3_write_role, s3_bucket_region) # Opening a cursor and run query cur = con.cursor() cur.execute(unload_command) print(cur.fetchone()) cur.close() con.close()
App-Developer
AufgabeBeschreibungErforderliche Fähigkeiten

Löschen Sie die Lambda-Funktion.

Um ungeplante Kosten zu vermeiden, entfernen Sie die Ressourcen und die Verbindung zwischen den DEV Konten und. PROD

Gehen Sie wie folgt vor, um die Lambda-Funktion zu entfernen:

  1. Öffnen Sie die AWS Lambda Konsole unter. https://console.aws.amazon.com/lambda/

  2. Suchen Sie die Lambda-Funktion, die Sie erstellt haben, und wählen Sie sie aus.

  3. Wählen Sie Aktionen und anschließend Löschen aus.

  4. Bestätigen Sie das Löschen.

DevOps Ingenieur

Entfernen Sie die IAM Rollen und Richtlinien.

Entfernen Sie die IAM Rollen und Richtlinien aus den PROD Konten DEV und.

Gehen Sie im DEV Konto wie folgt vor:

  1. Öffnen Sie die IAM Konsole.

  2. Löschen Sie die folgenden Rollen:

    • S3-Write-Role

    • CrossAccount-RM-Read-Role(Lambda-Rolle)

  3. Löschen Sie die zugehörigen Richtlinien:

    • S3-Write-Policy

    • Die CrossAccount Richtlinie für die Übernahme von PROD Kontorollen

Gehen Sie im PROD Konto wie folgt vor:

  1. Öffnen Sie die IAM Konsole.

  2. Löschen Sie die folgenden Rollen:

    • SM-Read-Role

    • CrossAccount-S3-Write-Role

  3. Löschen Sie die zugehörigen Richtlinien:

    • Die CrossAccount Richtlinie für den Zugriff auf Secrets Manager

    • S3-Write-Role-Assume-Policy

DevOps Ingenieur

Löschen Sie das Geheimnis in Secrets Manager.

Gehen Sie wie folgt vor, um das Geheimnis zu löschen:

  1. Öffnen Sie im PROD Konto die Secrets Manager Manager-Konsole.

  2. Suchen Sie das angegebene Geheimnis und wählen Sie es ausRedshift-Creds-Secret.

  3. Wählen Sie Actions (Aktionen) aus, und klicken Sie dann auf Delete secret (Secret löschen).

  4. Bestätigen Sie das Löschen.

DevOps Ingenieur

VPCPeering- und Sicherheitsgruppenregeln entfernen.

Gehen Sie wie folgt vor, um VPC Peering- und Sicherheitsgruppenregeln zu entfernen:

  1. Öffnen Sie im PROD Konto die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Navigieren Sie zu Sicherheitsgruppen.

  3. Suchen Sie die Sicherheitsgruppe, die vom Amazon Redshift Redshift-Cluster verwendet wird.

  4. Bearbeiten Sie die Regeln für eingehende Nachrichten und entfernen Sie die Regel, die Verbindungen vom VPC Lambda des DEV Kontos zulässt.

  5. Navigieren Sie zu VPCPeering-Verbindungen und löschen Sie die Peering-Verbindung.

DevOps Ingenieur

Daten aus dem S3-Bucket entfernen.

Gehen Sie wie folgt vor, um die Daten aus Amazon S3 zu entfernen:

  1. Öffnen Sie im DEV Konto die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Suchen Sie den Bucket, den Sie für die Datenspeicherung verwendet haben.

  3. Löschen Sie die Objekte innerhalb des Buckets oder löschen Sie den gesamten Bucket, falls er nicht mehr benötigt wird.

DevOps Ingenieur

AWS KMS Schlüssel aufräumen.

Wenn Sie benutzerdefinierte AWS KMS Schlüssel für die Verschlüsselung erstellt haben, gehen Sie wie folgt vor:

  1. Öffnen Sie die AWS KMS Konsole unter https://console.aws.amazon.com/kms/.

  2. Suchen Sie nach allen Schlüsseln, die für dieses Muster erstellt wurden.

  3. Planen Sie das Löschen der Schlüssel ein. (Es gibt eine obligatorische Wartezeit für das Löschen von Schlüsseln).

DevOps Ingenieur

Überprüfen und löschen Sie CloudWatch Amazon-Protokolle.

Gehen Sie wie folgt vor, um die CloudWatch Protokolle zu löschen:

  1. Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Suchen Sie nach Protokollgruppen, die von Ihrer Lambda-Funktion oder Ihrem Amazon Redshift Redshift-Cluster erstellt wurden.

  3. Löschen Sie diese Protokollgruppen, wenn sie nicht mehr benötigt werden.

DevOps Ingenieur

Zugehörige Ressourcen

Zusätzliche Informationen

Nachdem Sie die Daten von Amazon Redshift nach Amazon S3 entladen haben, können Sie sie mit Amazon Athena analysieren.

Amazon Athena ist ein Big-Data-Abfrageservice, der nützlich ist, wenn Sie auf große Datenmengen zugreifen müssen. Sie können Athena verwenden, ohne Server oder Datenbanken bereitstellen zu müssen. Athena unterstützt komplexe Abfragen, und Sie können es für verschiedene Objekte ausführen.

Wie bei den meisten AWS-Services Fällen besteht der Hauptvorteil der Verwendung von Athena darin, dass es eine große Flexibilität bei der Ausführung von Abfragen ohne zusätzliche Komplexität bietet. Wenn Sie Athena verwenden, können Sie in Amazon S3 verschiedene Datentypen wie CSV und abfragenJSON, ohne den Datentyp zu ändern. Sie können Daten aus verschiedenen Quellen abfragen, auch aus externen AWS Quellen. Athena reduziert die Komplexität, da Sie keine Server verwalten müssen. Athena liest Daten direkt aus Amazon S3, ohne die Daten zu laden oder zu ändern, bevor Sie die Abfrage ausführen.