Voraussetzungen für die Integration von RDS-for-SQL-Server mit S3 - Amazon Relational Database Service

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 für die Integration von RDS-for-SQL-Server mit S3

Bevor Sie beginnen, suchen oder erstellen Sie den S3-Bucket, den Sie verwenden möchten. Fügen Sie weiterhin Berechtigungen hinzu, so dass die RDS DB-Instance auf den S3-Bucket zugreifen kann. Zur Konfiguration dieses Zugriffs erstellen Sie eine IAM-Richtlinie und eine IAM-Rolle.

So erstellen Sie eine IAM-Richtlinie für den Zugriff auf Amazon S3:
  1. Wählen Sie in der IAM Management-Konsole im Navigationsbereich Policies (Richtlinien).

  2. Erstellen Sie eine neue Richtlinie, und verwenden Sie die Registerkarte Visual editor für die folgenden Schritte.

  3. Geben Sie unter Service S3 ein, und wählen Sie dann den S3-Service.

  4. 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 zu D:\S3\

    • PutObject – erforderlich für das Hochladen von Dateien von D:\S3\ zu S3

    • ListMultipartUploadParts – erforderlich für das Hochladen von Dateien von D:\S3\ zu S3

    • AbortMultipartUpload – erforderlich für das Hochladen von Dateien von D:\S3\ zu S3

  5. 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. Geben Sie für beide den jeweiligen Amazon-Ressourcennamen (ARN) an.

    Geben Sie für Bucket den ARN für den Bucket an, den Sie verwenden möchten. Wenn Ihr Bucket beispielsweise den Namen amzn-s3-demo-bucket hat, setzen Sie den ARN auf arn:aws:s3:::amzn-s3-demo-bucket.

    Geben Sie für Object (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 ARNs Sie die spezifischen Buckets und Objekte an, auf die SQL Server zugreifen soll.

  6. 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 unter Erstellen von IAM-Richtlinien im IAM-Benutzerhandbuch.

So erstellen Sie eine IAM-Rolle, die die IAM-Richtlinie aus der vorherigen Prozedur verwendet:
  1. Wählen Sie in der IAM Management-Konsole im Navigationsbereich Roles (Rollen).

  2. Erstellen Sie eine neue IAM-Rolle, und wählen Sie die folgenden Optionen, wenn sie in der Konsole angezeigt werden:

    • AWS Service nicht zulässig

    • RDS

    • RDS – Add Role to Database (Rolle zu Datenbank hinzufügen)

    Wählen Sie dann unten Next permissions (Nächste Berechtigungen).

  3. Geben Sie für Attach permissions policies (Berechtigungsrichtlinien anfügen) den Namen der vorher erstellten IAM-Richtlinie ein. Wählen Sie dann eine Richtlinie aus der Liste aus.

  4. Befolgen Sie die Anweisungen in der Konsole, bis Sie die Rolle fertig erstellt haben.

    Vorstehendes ist eine verkürzte Anleitung zur Einrichtung einer Rolle. Wenn Sie eine ausführlichere Anleitung zum Erstellen einer Rolle wünschen, vgl. IAM-Rollen im IAM-Benutzerhandbuch.

Sie können Amazon RDS wie folgt Zugriff auf einen Amazon-S3-Bucket gewähren:

  1. Erstellen Sie eine IAM-Richtlinie, die Amazon RDS Zugriff auf einen S3-Bucket gewährt.

  2. Erstellen Sie eine IAM-Rolle, die Amazon RDS in Ihrem Auftrag annehmen kann, um auf Ihre S3-Buckets zuzugreifen.

    Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzer im IAM-Benutzerhandbuch.

  3. Fügen Sie die erstellte IAM-Richtlinie der IAM-Rolle an, die Sie erstellt haben.

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 zu D:\S3\

  • PutObject – erforderlich für das Hochladen von Dateien von D:\S3\ zu S3

  • ListMultipartUploadParts – erforderlich für das Hochladen von Dateien von D:\S3\ zu S3

  • AbortMultipartUpload – erforderlich für das Hochladen von Dateien von D:\S3\ zu S3

  1. Mit dem folgenden AWS CLI Befehl wird eine IAM-Richtlinie rds-s3-integration-policy mit diesen Optionen erstellt. Sie gewährt Zugriff auf einen Bucket namens amzn-s3-demo-bucket.

    Für LinuxmacOS, oderUnix:

    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/*" } ] }'

    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 dies für alle Anführungszeichen in JSON zu vermeiden, können Sie sie stattdessen in eine Datei speichern und als Parameter einführen.

    Erstellen Sie zuerst die policy.json-Datei mit der folgenden Berechtigungsrichtlinie:

    JSON
    { "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
  2. Notieren Sie nach dem Erstellen der Richtlinie den Amazon-Ressourcennamen (ARN) der Richtlinie. Sie benötigen den ARN bei einem 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.

    Für LinuxmacOS, oderUnix:

    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" } ] }'

    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 dies für alle Anführungszeichen in JSON zu vermeiden, können Sie sie stattdessen in eine Datei speichern und als Parameter einführen.

    Erstellen Sie zuerst die assume_role_policy.json-Datei mit der folgenden Richtlinie:

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    Verwenden Sie anschließend den folgenden Befehl zum Erstellen der IAM-Rolle:

    aws iam create-role ^ --role-name rds-s3-integration-role ^ --assume-role-policy-document file://file_path/assume_role_policy.json
    Beispiel die Verwendung des globalen Bedingungskontextschlüssels zum Erstellen der IAM-Rolle

    Wir empfehlen die Verwendung der globalen Bedingungskontextschlüssel aws:SourceArn und aws: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 Wert aws:SourceAccount und das Konto im Wert aws: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 globalen Bedingungskontextschlüssel aws:SourceArn 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 einbeziehen ARNs, wie im folgenden Beispiel gezeigt.

    Für LinuxmacOS, oderUnix:

    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" } } } ] }'

    Windows:

    Fügen Sie den globalen Bedingungskontextschlüssel zu assume_role_policy.json hinzu.

    JSON
    { "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" } } } ] }
IAM-Richtlinie an die IAM-Rolle anfügen
  • Mit dem folgenden AWS CLI Befehl wird die Richtlinie an die angegebene rds-s3-integration-role Rolle angehängt. Ersetzen Sie your-policy-arn durch den Richtlinien-ARN, den Sie im vorherigen Schritt notiert haben.

    Für LinuxmacOS, oderUnix:

    aws iam attach-role-policy \ --policy-arn your-policy-arn \ --role-name rds-s3-integration-role

    Windows:

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-integration-role