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.
Voraussetzungen RDS für die Integration von SQL Server mit S3
Bevor Sie beginnen, suchen oder erstellen Sie den S3-Bucket, den Sie verwenden möchten. Fügen Sie außerdem Berechtigungen hinzu, damit die RDS DB-Instance auf den S3-Bucket zugreifen kann. Um diesen Zugriff zu konfigurieren, erstellen Sie sowohl eine IAM Richtlinie als auch eine IAM Rolle.
Um eine IAM Richtlinie für den Zugriff auf Amazon S3 zu erstellen
-
Wählen Sie in der IAMManagement Console
im Navigationsbereich Policies aus. -
Erstellen Sie eine neue Richtlinie, und verwenden Sie die Registerkarte Visual editor für die folgenden Schritte.
-
Geben Sie unter Service
S3
ein, und wählen Sie dann den S3-Service. -
Wählen Sie unter Actions (Aktionen) Folgendes, um den Zugang zu gewähren, den Ihre DB-Instance benötigt.
-
ListAllMyBuckets
– erforderlich -
ListBucket
– erforderlich -
GetBucketACL
– erforderlich -
GetBucketLocation
– erforderlich -
GetObject
– erforderlich für das Herunterladen von Dateien von S3 zuD:\S3\
-
PutObject
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3 -
ListMultipartUploadParts
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3 -
AbortMultipartUpload
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3
-
-
Für Resources (Ressourcen) hängen die angezeigten Optionen davon ab, welche Aktionen Sie im vorherigen Schritt ausgewählt haben. Möglicherweise sehen Sie Optionen für Bucket, Object (Objekt) oder beide. Fügen Sie für jeden von ihnen den entsprechenden Amazon-Ressourcennamen (ARN) hinzu.
Fügen Sie für Bucket den ARN für den Bucket hinzu, den Sie verwenden möchten. Zum Beispiel, wenn Ihr Bucket benannt ist
amzn-s3-demo-bucket
, setzen Sie das ARN aufarn:aws:s3:::
.amzn-s3-demo-bucket
Geben Sie für Objekt den ARN für den Bucket ein und wählen Sie dann eine der folgenden Optionen:
-
Um Zugriff auf alle Dateien in dem angegebenen Bucket zu gewähren, wählen Sie Any (Beliebig) für Bucket name (Name des Buckets) und Object name (Name des Objekts).
-
Um Zugriff auf bestimmte Dateien oder Ordner im Bucket zu gewähren, geben Sie ARNs die spezifischen Buckets und Objekte an, auf die der SQL Server zugreifen soll.
-
-
Befolgen Sie die Anweisungen in der Konsole, bis Sie die Richtlinie fertig erstellt haben.
Vorstehendes ist eine verkürzte Anleitung zur Einrichtung einer Richtlinie. Ausführlichere Anweisungen zum Erstellen von IAM Richtlinien finden Sie im IAMBenutzerhandbuch unter IAMRichtlinien erstellen.
Um eine IAM Rolle zu erstellen, die die IAM Richtlinie aus dem vorherigen Verfahren verwendet
-
Wählen Sie in der IAMManagement Console
im Navigationsbereich Rollen aus. -
Erstellen Sie eine neue IAM Rolle und wählen Sie die folgenden Optionen, sobald sie in der Konsole angezeigt werden:
-
AWS Service nicht zulässig
-
RDS
-
RDS— Rolle zur Datenbank hinzufügen
Wählen Sie dann unten Next permissions (Nächste Berechtigungen).
-
-
Geben Sie für Richtlinien zum Anhängen von Berechtigungen den Namen der IAM Richtlinie ein, die Sie zuvor erstellt haben. Wählen Sie dann eine Richtlinie aus der Liste aus.
-
Befolgen Sie die Anweisungen in der Konsole, bis Sie die Rolle fertig erstellt haben.
Vorstehendes ist eine verkürzte Anleitung zur Einrichtung einer Rolle. Ausführlichere Anweisungen zum Erstellen von IAMRollen finden Sie im IAMBenutzerhandbuch unter Rollen.
Gehen Sie wie folgt vor, um Amazon RDS Zugriff auf einen Amazon S3-Bucket zu gewähren:
-
Erstellen Sie eine IAM Richtlinie, die Amazon RDS Zugriff auf einen S3-Bucket gewährt.
-
Erstellen Sie eine IAM Rolle, die Amazon in Ihrem Namen übernehmen RDS kann, um auf Ihre S3-Buckets zuzugreifen.
Weitere Informationen finden Sie im Benutzerhandbuch unter Erstellen einer Rolle zur Delegierung von Berechtigungen an einen IAM IAMBenutzer.
-
Hängen Sie die von Ihnen erstellte IAM Richtlinie an die von Ihnen erstellte IAM Rolle an.
So erstellen Sie die IAM-Richtlinie
Schließen Sie die jeweiligen Aktionen ein, um den Zugriff zu gewähren, den Ihre DB-Instance erfordert:
-
ListAllMyBuckets
– erforderlich -
ListBucket
– erforderlich -
GetBucketACL
– erforderlich -
GetBucketLocation
– erforderlich -
GetObject
– erforderlich für das Herunterladen von Dateien von S3 zuD:\S3\
-
PutObject
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3 -
ListMultipartUploadParts
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3 -
AbortMultipartUpload
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3
-
Mit dem folgenden AWS CLI Befehl wird eine IAM Richtlinie
rds-s3-integration-policy
mit diesen Optionen erstellt. Er gewährt Zugriff auf einen Bucket mit dem Namenamzn-s3-demo-bucket
.Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws iam create-policy \ --policy-name
rds-s3-integration-policy
\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/key_prefix
/*" } ] }'Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
Achten Sie darauf, dass Sie die Zeilenenden so ändern, dass Ihre Schnittstelle sie unterstützt (
^
anstelle von\
). Unter Windows müssen Sie dazu alle doppelten Anführungszeichen mit dem Escape-Zeichen versehe\
. Um zu vermeiden, dass Sie die Anführungszeichen in der umgehen müssenJSON, können Sie es stattdessen in einer Datei speichern und diese als Parameter übergeben.Erstellen Sie zuerst die
policy.json
-Datei mit der folgenden Berechtigungsrichtlinie:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/key_prefix
/*" } ] }Verwenden Sie dann den folgenden Befehl, um die Richtlinie zu erstellen:
aws iam create-policy ^ --policy-name
rds-s3-integration-policy
^ --policy-document file://file_path
/assume_role_policy.json -
Notieren Sie sich nach der Erstellung der Richtlinie den Amazon-Ressourcennamen (ARN) der Richtlinie. Sie benötigen den ARN für einen späteren Schritt.
So erstellen Sie die IAM-Rolle
-
Der folgende AWS CLI Befehl erstellt die
rds-s3-integration-role
IAM Rolle für diesen Zweck.Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws iam create-role \ --role-name
rds-s3-integration-role
\ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
Achten Sie darauf, dass Sie die Zeilenenden so ändern, dass Ihre Schnittstelle sie unterstützt (
^
anstelle von\
). Unter Windows müssen Sie dazu alle doppelten Anführungszeichen mit dem Escape-Zeichen versehe\
. Um zu vermeiden, dass Sie die Anführungszeichen in der umgehen müssenJSON, können Sie es stattdessen in einer Datei speichern und diese als Parameter übergeben.Erstellen Sie zuerst die
assume_role_policy.json
-Datei mit der folgenden Richtlinie:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Verwenden Sie dann den folgenden Befehl, um die IAM Rolle zu erstellen:
aws iam create-role ^ --role-name
rds-s3-integration-role
^ --assume-role-policy-document file://file_path
/assume_role_policy.jsonBeispiel der Verwendung des Kontextschlüssels für globale Bedingungen, um die IAM Rolle zu erstellen
Wir empfehlen die Verwendung der globalen Bedingungskontextschlüssel
aws:SourceArn
undaws:SourceAccount
in ressourcenbasierten Richtlinien, um die Berechtigungen des Services auf eine bestimmte Ressource zu beschränken. Dies ist der effektivste Weg, um sich vor dem verwirrtes Stellvertreterproblem zu schützen.Sie können beide globalen Bedingungskontextschlüssel verwenden und der Wert
aws:SourceArn
enthält die Konto-ID. Stellen Sie in diesen Fällen sicher, dass der Wertaws:SourceAccount
und das Konto im Wertaws:SourceArn
dieselbe Konto-ID verwenden, wenn sie in derselben Richtlinienanweisung verwendet werden.-
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.
Stellen Sie in der Richtlinie sicher, dass Sie den
aws:SourceArn
globalen Bedingungskontextschlüssel mit dem vollständigen Amazon-Ressourcennamen (ARN) der Ressourcen verwenden, die auf die Rolle zugreifen. Stellen Sie bei der S3-Integration sicher, dass Sie die DB-Instance einbeziehenARNs, wie im folgenden Beispiel gezeigt.Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws iam create-role \ --role-name
rds-s3-integration-role
\ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region
:my_account_ID
:db:db_instance_identifier
" } } } ] }'Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
Fügen Sie den globalen Bedingungskontextschlüssel zu
assume_role_policy.json
hinzu.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:
Region
:my_account_ID
:db:db_instance_identifier
" } } } ] } -
Um die IAM Richtlinie an die IAM Rolle anzuhängen
-
Mit dem folgenden AWS CLI Befehl wird die Richtlinie an die angegebene
rds-s3-integration-role
Rolle angehängt.
Ersetzen Sie sie durch die RichtlinieARN, die Sie in einem vorherigen Schritt notiert haben.your-policy-arn
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-namerds-s3-integration-role
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-namerds-s3-integration-role