Bei der Referenzierung von RDS-Daten
-Es gibt keinen Datums- und Zeitdump-Job usw. ・ Es gibt keine Lesereplik ・ Für die Anmeldung im kommerziellen Umfeld sind keine Fragen gestellt und eine Genehmigung erforderlich
Aus irgendeinem Grund war es manchmal schwierig, direkt in den Inhalt des RDS zu schauen. Zu diesem Zeitpunkt war es möglich, den Snapshot nach S3 nach Amazon RDS zu exportieren und mit Athena darauf zu verweisen, sodass ich tatsächlich den S3-Export des RDS-Snapshots mit Lambda versuchte.
Exportieren Sie RDS-Snapshots nach S3 in Lambda. Da die exportierten Daten von KMS verschlüsselt werden, muss auch der KMS-Schlüssel vorbereitet werden.
-RDS und Snapshots wurden erstellt. -Der Exportziel S3-Bucket wurde erstellt.
Erstellen Sie eine Richtlinie für den Zugriff auf S3 über die Snapshot-Exportaufgabe mit dem folgenden JSON.
(Ressource your-s3-Bucket
gibt den S3-Bucket an, in den exportiert werden soll.)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:PutObject*",
"s3:GetObject*",
"s3:DeleteObject*"
],
"Resource": [
"arn:aws:s3:::your-s3-bucket",
"arn:aws:s3:::your-s3-bucket/*"
]
}
]
}
Erstellen Sie eine Rolle und hängen Sie die oben erstellte Richtlinie an. Bearbeiten Sie unter "Vertrauensbeziehung bearbeiten" das Dokument zur Zugriffssteuerungsrichtlinie wie folgt. (Service wird zu "export.rds.amazonaws.com")
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "export.rds.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Erstellen Sie einen Schlüssel in KMS, um die exportierten Daten zu verschlüsseln.
Erstellen Sie eine Rolle für "AWSLambdaBasicExecutionRole", die gleichzeitig mit dem Erstellen einer Lambda-Funktion erstellt werden kann. Erstellen Sie die folgende Richtlinie, die für den Snapshot-Export separat erforderlich ist, und hängen Sie sie an die oben genannte Rolle an.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:PassRole",
"rds:StartExportTask"
],
"Resource": "*"
}
]
}
pyhton:lambda_handler.py
import json
import boto3
from datetime import datetime
SOURCE_ARN="YOUR_SOURCE_ARN"
S3_BUCKET_NAME="YOUR_S3_BUCKET_NAME"
IAM_ROLE_ARN="YOUR_IAM_ROLE_ARN"
KMS_KEY_ID="YOUR_KMS_KEY_ID"
client = boto3.client('rds')
def lambda_handler(event, context):
export_task_identifier="mysnapshot" + datetime.now().strftime("%Y%m%d%H%M%S")
response = client.start_export_task(
ExportTaskIdentifier=export_task_identifier,
SourceArn=SOURCE_ARN,
S3BucketName=S3_BUCKET_NAME,
IamRoleArn=IAM_ROLE_ARN,
KmsKeyId=KMS_KEY_ID,
)
-Stellen Sie die folgenden Variablen im Code entsprechend Ihrer Umgebung ein.
Variablennamen | Wert |
---|---|
SOURCE_ARN | ARN des zu exportierenden RDS-Snapshots |
S3_BUCKET_NAME | Name des Ausgabe-S3-Buckets |
IAM_ROLE_ARN | ARN der Rolle, die beim Exportieren von in Schritt 1 erstelltem S3 verwendet wird |
KMS_KEY_ID | ARN des erstellten KMS-Schlüssels |
Kennung exportieren Geben Sie einen Namen ein, um den Export zu identifizieren. Dieser Name muss unter allen Snapshot-Exporten des AWS-Kontos in der aktuellen AWS-Region eindeutig sein.
Fügen Sie die in Schritt 3 in Lambda verwendete Rolle dem Schlüsselbenutzer des in Schritt 2 erstellten Schlüssels hinzu.
Wenn Sie dies nicht tun, wird beim Ausführen von Lambda der Fehler "Ein Fehler ist aufgetreten (KMSKeyNotAccessibleFault)" angezeigt.
Führen Sie nach dieser Arbeit Lambda aus, um den RDS-Snapshot nach S3 zu exportieren.
Wenn Sie den Snapshot nur nach S3 exportieren möchten, können Sie dasselbe mit der Verwaltungskonsole tun. Ich wollte jedoch die Datenquelle zu einem System-Snapshot machen und die Daten zu Datum und Uhrzeit aktualisieren. Deshalb habe ich versucht, sie auf Lambda auszuführen.
Es wäre schön, wenn RDS auf der Verwaltungskonsole überprüft werden könnte, wenn es sich um eine kleine Referenz wie DynamoDB handelt, aber ich war der Meinung, dass die Methode zum Verweisen auf diesen Snapshot auch eine sichere und einfache Methode ist.
Dieser Artikel wurde unter Bezugnahme auf die folgenden Informationen verfasst.
Recommended Posts