Voraussetzungen RDS für die Integration von 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 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
  1. Wählen Sie in der IAMManagement Console im Navigationsbereich Policies aus.

  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. 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.

  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 im IAMBenutzerhandbuch unter IAMRichtlinien erstellen.

Um eine IAM Rolle zu erstellen, die die IAM Richtlinie aus dem vorherigen Verfahren verwendet
  1. Wählen Sie in der IAMManagement Console im Navigationsbereich Rollen aus.

  2. 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).

  3. 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.

  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. 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:

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

  2. 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.

  3. 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 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. Er gewährt Zugriff auf einen Bucket mit dem Namen amzn-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
  2. 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.json
    Beispiel 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 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 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. your-policy-arnErsetzen Sie sie durch die RichtlinieARN, die Sie in einem vorherigen Schritt notiert haben.

    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-name rds-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-name rds-s3-integration-role