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.
Einrichten des Zugriffs auf einen Amazon S3-Bucket
Um Daten zu Amazon S3 zu exportieren, erteilen Sie Ihrer PostgreSQL-DB-Instance die Berechtigung, auf den Amazon S3-Bucket zuzugreifen, in den die Dateien aufgenommen werden sollen.
Führen Sie dazu die folgenden Schritte aus.
So erteilen Sie einer PostgreSQL-DB-Instance Zugriff auf Amazon S3 über eine IAM-Rolle
-
Erstellen Sie eine IAM-Richtlinie.
Diese Richtlinie enthält die Bucket- und Objektberechtigungen, die Ihrer PostgreSQL-DB-Instance den Zugriff auf Amazon S3 ermöglichen.
Führen Sie beim Erstellen dieser Richtlinie die folgenden Schritte aus:
-
Nehmen Sie die folgenden erforderlichen Aktionen in die Richtlinie auf, um die Übertragung von Dateien aus Ihrer PostgreSQL-DB-Instance in einen Amazon S3-Bucket zu gestatten:
-
s3:PutObject
-
s3:AbortMultipartUpload
-
-
Geben Sie den Amazon-Ressourcennamen (ARN) ein, der den Amazon S3-Bucket und die Objekte im Bucket identifiziert. Das ARN-Format für den Zugriff auf Amazon S3 lautet:
arn:aws:s3:::
amzn-s3-demo-bucket
/*
Weitere Informationen zum Erstellen einer IAM-Richtlinie für Amazon RDS for PostgreSQL finden Sie unter Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff. Siehe auch Tutorial: Erstellen und Anfügen Ihrer ersten vom Kunden verwalteten Richtlinie im IAM-Benutzerhandbuch.
Mit dem folgenden AWS CLI Befehl wird eine IAM-Richtlinie
rds-s3-export-policy
mit diesen Optionen erstellt. Sie gewährt Zugriff auf einen Bucket namensamzn-s3-demo-bucket
.Warnung
Es wird empfohlen, die Datenbank innerhalb einer privaten VPC einzurichten, deren Endpunktrichtlinien für den Zugriff auf bestimmte Buckets konfiguriert sind. Weitere Informationen finden Sie unter Verwenden von Endpunktrichtlinien für Amazon S3 im Amazon VPC Benutzerhandbuch.
Es wird dringend empfohlen, keine Richtlinie mit Zugriff auf alle Ressourcen zu erstellen. Dieser Zugriff kann eine Bedrohung für die Datensicherheit darstellen. Wenn Sie eine Richtlinie erstellen, die
S3:PutObject
Zugriff auf alle Ressourcen mit"Resource":"*"
gewährt, kann ein Benutzer mit Exportberechtigungen Daten in alle Buckets in Ihrem Konto exportieren. Darüber hinaus kann der Benutzer Daten in jeden öffentlich beschreibbaren Bucket in Ihrer AWS -Region exportieren.Notieren Sie nach dem Erstellen der Richtlinie den Amazon-Ressourcennamen (ARN) der Richtlinie. Sie benötigen den ARN für einen nachfolgenden Schritt, in dem Sie die Richtlinie an eine IAM-Rolle anhängen.
aws iam create-policy --policy-name rds-s3-export-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3export", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
/*" ] } ] }' -
-
Erstellen Sie eine IAM-Rolle.
Sie tun dies, damit Amazon RDS in Ihrem Namen diese IAM-Rolle übernehmen kann, um auf Ihre Amazon S3-Buckets zuzugreifen. Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzer im IAM-Benutzerhandbuch.
Wir empfehlen die Verwendung von
aws:SourceArn
undaws:SourceAccount
globaler Bedingungskontext-Schlüssel in ressourcenbasierten Richtlinien, um die Berechtigungen des Dienstes auf eine bestimmte Ressource zu beschränken. Dies ist der effektivste Weg, um sich vor dem verwirrtes Stellvertreterproblem zu schützen.Wenn Sie sowohl globale Kontextschlüssel nutzen und der
aws:SourceArn
-Wert enthält die Konto-ID, muss deraws:SourceAccount
-Wert und das Konto imaws:SourceArn
-Wert die gleiche Konto-ID verwenden, wenn er in der gleichen Richtlinienanweisung verwendet wird.Verwenden von
aws:SourceArn
wenn Sie einen serviceübergreifenden Zugriff für eine einzelne Ressource wünschen.-
Verwenden von
aws:SourceAccount
wenn Sie zulassen möchten, dass eine Ressource in diesem Konto mit der betriebsübergreifenden Verwendung verknüpft wird.
Verwenden Sie in der Richtlinie den
aws:SourceArn
globalen Kontextschlüssel mit dem vollständigen ARN der Ressource. Das folgende Beispiel zeigt, wie Sie dazu den AWS CLI Befehl verwenden, um eine Rolle mit dem Namenrds-s3-export-role
zu erstellen.Beispiel
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws iam create-role \ --role-name rds-s3-export-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
111122223333
", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname
" } } } ] }'Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws iam create-role ^ --role-name rds-s3-export-role ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
111122223333
", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname
" } } } ] }' -
Fügen Sie die erstellte IAM-Richtlinie der IAM-Rolle an, die Sie erstellt haben.
Mit dem folgenden AWS CLI Befehl wird die zuvor erstellte Richtlinie an die Rolle
rds-s3-export-role.
Replace
mit dem Richtlinien-ARN angehängt, den Sie in einem früheren Schritt notiert haben.your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role -
Fügen Sie die IAM-Rolle der DB Instance hinzu. Sie tun dies, indem Sie das AWS Management Console oder verwenden AWS CLI, wie im Folgenden beschrieben.
So fügen Sie eine IAM-Rolle für eine PostgreSQL DB--Instance über die Konsole hinzu:
Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie den Namen der PostgreSQL DB--Instance aus, um ihre Details anzuzeigen.
-
Wählen Sie auf der Registerkarte Connectivity & security (Konnektivität und Sicherheit) im Bereich Manage IAM roles (IAM-Rollen verwalten) die Rolle aus, die unter Add IAM roles to this instance (IAM-Rollen zu dieser Instance hinzufügen) hinzugefügt werden soll.
-
Wählen Sie unter Funktion die Option s3Export aus.
-
Wählen Sie Rolle hinzufügen.
So fügen Sie eine IAM-Rolle für eine PostgreSQL-DB-Instance mithilfe der CLI hinzu
-
Verwenden Sie den folgenden CLI-Befehl, um die IAM-Rolle zur RDS for PostgreSQL DB-Instance mit dem Namen
my-db-instance
hinzuzufügen. Ersetzen Sie
durch den Rollen-ARN, den Sie im vorherigen Schritt notiert haben. Verwenden Sieyour-role-arn
s3Export
für den Wert der--feature-name
-Option.Beispiel
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws rds add-role-to-db-instance \ --db-instance-identifier
my-db-instance
\ --feature-name s3Export \ --role-arnyour-role-arn
\ --regionyour-region
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
my-db-instance
^ --feature-name s3Export ^ --role-arnyour-role-arn
^ --regionyour-region