Amazon S3-Integration
Sie können Dateien zwischen Ihrer DB-Instance von RDS for Oracle und einem Amazon-S3-Bucket übertragen. Sie können die Amazon-S3-Integration mit Oracle-Database-Funktionen wie Oracle Data Pump nutzen. Beispielsweise können Sie Data-Pump-Dateien von Amazon S3 auf Ihre RDS für Oracle DB-Instance herunterladen. Weitere Informationen finden Sie unter Importieren von Daten zu Oracle in Amazon RDS.
Anmerkung
Die DB-Instance und der Amazon-S3-Bucket müssen sich in der gleichen AWS-Region befinden.
Themen
Konfigurieren von IAM-Berechtigungen für die Integration von RDS for Oracle in Amazon S3
Damit RDS for Oracle in Amazon S3 integriert werden kann, benötigt Ihre DB-Instance Zugriff auf einen Amazon-S3-Bucket. Die von Ihrer DB-Instance verwendete Amazon VPC muss keinen Zugriff auf die Amazon S3-Endpunkte ermöglichen.
RDS for Oracle unterstützt das Hochladen von Dateien von einer DB-Instance in einem Konto auf einen Amazon-S3-Bucket in einem anderen Konto. Wenn zusätzliche Schritte erforderlich sind, werden diese in den folgenden Abschnitten vermerkt.
Themen
- Schritt 1: Erstellen einer IAM-Richtlinie für Ihre Amazon-RDS-Rolle
- Schritt 2: (Optional) Erstellen einer IAM-Richtlinie für Ihren Amazon-S3-Bucket
- Schritt 3: Erstellen einer IAM-Rolle für Ihre DB-Instance und Anfügen Ihrer Richtlinie
- Schritt 4: So ordnen Sie Ihre IAM-Rolle Ihrer DB-Instance von RDS für Oracle zu
Schritt 1: Erstellen einer IAM-Richtlinie für Ihre Amazon-RDS-Rolle
In diesem Schritt erstellen Sie eine AWS Identity and Access Management (IAM)-Richtlinie mit den erforderlichen Berechtigungen, um Dateien von Ihrem Amazon-S3-Bucket auf Ihre RDS-DB-Instance zu übertragen. In diesem Schritt wird davon ausgegangen, dass Sie bereits einen S3-Bucket erstellt haben.
Notieren Sie sich vor dem Erstellen der Richtlinie die folgenden Informationen:
-
Amazon-Ressourcenname (ARN) Ihres Buckets
-
Der ARN für Ihren AWS KMS-Schlüssel, wenn Ihr Bucket SSE-KMS- oder SSE-S3-Verschlüsselung verwendet
Anmerkung
Eine DB-Instance von RDS für Oracle kann nicht auf mit SSE-C verschlüsselte Amazon-S3-Buckets zugreifen.
Weitere Informationen finden Sie unter Schutz von Daten durch serverseitige Verschlüsselung im Amazon Simple Storage Service User Guide.
So erstellen Sie eine IAM-Richtlinie, die Amazon RDS Zugriff auf Ihren Amazon-S3-Bucket gewährt
-
Öffnen Sie die IAM-Managementkonsole
. -
Wählen Sie unter Zugriffsverwaltung Richtlinien aus.
-
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
Wählen Sie auf der Registerkarte Visueller Editor die Option Service auswählen und dann S3 aus.
-
Wählen Sie unter Actions (Aktionen) die Option Expand all (Alle expandieren). Wählen Sie dann die Bucket-Berechtigungen und Objektberechtigungen aus, die benötigt werden, um Dateien aus einem Amazon S3-Bucket Amazon RDS zu übertragen. Führen Sie beispielsweise folgende Schritte aus:
-
Erweitern Sie Liste und wählen Sie dann ListBucket aus.
-
Erweitern Sie Lesen und wählen Sie dann GetObject aus.
-
Erweitern Sie Write (Schreiben) und wählen Sie dann PutObject und DeleteObject aus.
-
Erweitern Sie Permissions management (Berechtigungsverwaltung) und dann PutObjectAcl. Diese Berechtigung ist erforderlich, wenn Sie planen, Dateien in einen Bucket hochzuladen, der einem anderen Konto gehört, und dieses Konto die volle Kontrolle über den Bucket-Inhalt benötigt.
Objektberechtigungen sind Berechtigungen für Objektoperationen in Amazon S3. Sie müssen sie für Objekte in einem Bucket und nicht für den Bucket selbst erteilen. Weitere Informationen finden Sie unter Berechtigungen für Objektoperationen.
-
-
Wählen Sie Ressourcen aus und gehen Sie wie folgt vor:
-
Wählen Sie Spezifisch aus.
-
Wählen Sie für Bucket die Option ARN hinzufügen aus. Geben Sie Ihren Bucket-ARN ein. Der Bucket-Name wird automatisch ausgefüllt. Wählen Sie dann Add (Hinzufügen).
-
Wenn die Ressource Objekt angezeigt wird, wählen Sie entweder ARN hinzufügen aus, um Ressourcen manuell hinzuzufügen, oder klicken Sie auf Beliebige.
Anmerkung
Sie können für Amazon-Ressourcenname (ARN) einen spezifischen ARN-Wert einstellen, um Amazon RDS nur den Zugriff auf spezifische Dateien oder Order in einem Amazon S3-Bucket zu gewähren. Weitere Informationen über das Definieren von Zugriffsrichtlinien für Amazon S3 finden Sie unter Verwaltung der Zugriffsberechtigungen zu Ihren Amazon S3-Ressourcen.
-
-
(Optional) Wählen Sie Zusätzliche Berechtigungen hinzufügen, um Ressourcen zur Richtlinie hinzuzufügen. Führen Sie beispielsweise folgende Schritte aus:
-
Wenn Ihr Bucket mit einem benutzerdefinierten KMS-Schlüssel verschlüsselt ist, wählen Sie für den Service KMS aus.
-
Wählen Sie für Manuelle Aktionen Folgendes aus:
-
Encrypt
-
Erneut verschlüsseln aus und Erneut verschlüsseln in
-
Decrypt
-
DescribeKey
-
GenerateDataKey
-
-
Wählen Sie für Ressourcen die Option Spezifisch aus.
-
Wählen Sie unter Schlüssel die Option ARN hinzufügen aus. Geben Sie den ARN Ihres benutzerdefinierten Schlüssels als Ressource ein und wählen Sie Hinzufügen aus.
Weitere Informationen finden Sie unter Schützen von Daten mit serverseitiger Verschlüsselung mit KMS-Schlüsseln, die in AWS Key Management Service(SSE-KMS) gespeichert sind, im Amazon Simple Storage Service User Guide.
-
Wenn Sie möchten, dass Amazon RDS auf andere Buckets zugreifen kann, fügen Sie die ARNs für diese Buckets hinzu. Alternativ können Sie auch Zugriff auf alle Buckets und Objekte in Amazon S3 erlauben.
-
-
Wählen Sie Next: Tags (Weiter: Tags) und danach Next: Review (Weiter: Prüfen) aus.
-
Geben Sie unter Name einen Namen für Ihre IAM-Richtlinie ein, z. B.
rds-s3-integration-policy
. Sie verwenden diesen Namen, wenn Sie eine IAM-Rolle erstellen, um sie Ihrer DB-Instance zuzuweisen. Sie können auch einen optionalen Wert für Description (Beschreibung) hinzufügen. -
Wählen Sie Create Policy (Richtlinie erstellen) aus.
Erstellen Sie eine AWS Identity and Access Management-(IAM)-Richtlinie, die Amazon RDS Zugriff auf einen Amazon-S3-Bucket gewährt. Nachdem Sie die Richtlinie erstellt haben, notieren Sie den ARN der Richtlinie. Sie benötigen den ARN bei einem nachfolgenden Schritt.
Schließen Sie basierend auf dem erforderlichen Zugriffstyp die entsprechenden Aktionen ein:
-
GetObject
– Erforderlich für die Übertragung von Dateien aus einem Amazon S3-Bucket zu Amazon RDS. -
ListBucket
– Erforderlich für die Übertragung von Dateien aus einem Amazon S3-Bucket zu Amazon RDS. -
PutObject
– Erforderlich für die Übertragung von Dateien von Amazon RDS in einen Amazon S3-Bucket.
Der folgende AWS CLI-Befehl erstellt eine IAM-Richtlinie namens
mit diesen Optionen. Sie gewährt Zugriff auf einen Bucket namens rds-s3-integration-policy
.your-s3-bucket-arn
Beispiel
Für Linux, macOS oder Unix:
aws iam create-policy \ --policy-name
rds-s3-integration-policy
\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration
", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::your-s3-bucket-arn
", "arn:aws:s3:::your-s3-bucket-arn/*
" ] } ] }'
Das folgende Beispiel enthält Berechtigungen für benutzerdefinierte KMS-Schlüssel.
aws iam create-policy \ --policy-name
rds-s3-integration-policy
\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration
", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt", "kms:GenerateDataKey", "kms:DescribeKey", ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::your-s3-bucket-arn
", "arn:aws:s3:::your-s3-bucket-arn/*
", "arn:aws:kms:::your-kms-arn
" ] } ] }'
Für Windows:
aws iam create-policy ^ --policy-name
rds-s3-integration-policy
^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration
", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::your-s3-bucket-arn
", "arn:aws:s3:::your-s3-bucket-arn/*
" ] } ] }'
Das folgende Beispiel enthält Berechtigungen für benutzerdefinierte KMS-Schlüssel.
aws iam create-policy ^ --policy-name
rds-s3-integration-policy
^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration
", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt", "kms:GenerateDataKey", "kms:DescribeKey", ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::your-s3-bucket-arn
", "arn:aws:s3:::your-s3-bucket-arn/*
", "arn:aws:kms:::your-kms-arn
" ] } ] }'
Schritt 2: (Optional) Erstellen einer IAM-Richtlinie für Ihren Amazon-S3-Bucket
Dieser Schritt ist nur unter den folgenden Bedingungen erforderlich:
-
Sie planen, Dateien von einem Konto (Konto A) in einen Amazon-S3-Bucket hochzuladen und von einem anderen Konto (Konto B) auf sie zuzugreifen.
-
Konto B ist Eigentümer des Buckets.
-
Konto B benötigt die volle Kontrolle über Objekte, die in den Bucket geladen wurden.
Wenn die vorhergehenden Bedingungen nicht auf Sie zutreffen, fahren Sie mit Schritt 3: Erstellen einer IAM-Rolle für Ihre DB-Instance und Anfügen Ihrer Richtlinie fort.
Zum Erstellen Ihrer Bucket-Richtlinie müssen Sie über Folgendes verfügen:
-
Konto-ID für Konto A
-
Benutzername für Konto A
-
ARN-Wert für den Amazon-S3-Bucket in Konto B
Eine Bucket-Richtlinie erstellen oder bearbeiten
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon S3-Konsole unter https://console.aws.amazon.com/s3/
. -
Wählen Sie in der Liste Buckets den Namen des Buckets aus, für den Sie eine Bucket-Richtlinie erstellen wollen oder dessen Bucket-Richtlinie Sie bearbeiten wollen.
-
Wählen Sie Permissions (Berechtigungen).
-
Wählen Sie unter Bucket policy (Bucket-Richtlinie) Edit (Bearbeiten) aus. Dies öffnet die Seite Bucket-Richtlinie bearbeiten.
-
Untersuchen Sie auf der Seite Edit bucket policy (Bucket-Richtlinie bearbeiten) Policy examples (Richtlinienbeispiele) im Amazon-S3-Benutzerhandbuch, wählen Sie Policy generator (Richtliniengenerator) aus, um automatisch eine Richtlinie zu generieren, oder bearbeiten Sie die JSON im Abschnitt Policy (Richtlinie).
Wenn Sie Richtliniengenerator wählen, wird der AWS-Richtliniengenerator in einem neuen Fenster geöffnet:
-
Wählen Sie auf der Seite AWS-Richtliniengenerator unter Richtlinientyp auswählen die Option S3-Bucket-Richtlinie aus.
-
Fügen Sie eine Anweisung hinzu, indem Sie die Informationen in die bereitgestellten Felder eingeben, und wählen Sie dann Anweisung hinzufügen. Wiederholen Sie diesen Vorgang für so viele Anweisungen, wie Sie hinzufügen möchten. Weitere Informationen zu diesen Feldern finden Sie in der Referenz zu den IAM-JSON-Richtlinienelementen im IAM-Benutzerhandbuch.
Anmerkung
Der Einfachheit halber zeigt die Seite Bucket-Richtlinie bearbeiten den Bucket-ARN (Amazon-Ressourcenname) des aktuellen Buckets über dem Richtlinientextfeld an. Sie können diesen ARN zur Verwendung in den Anweisungen auf der Seite AWS-Richtliniengenerator kopieren.
-
Wenn Sie mit dem Hinzufügen von Anweisungen fertig sind, wählen Sie Generieren von Richtlinien.
-
Kopieren Sie den generierten Richtlinientext, wählen Sie Schließen und kehren Sie zur Seite Bucket-Richtlinie bearbeiten in der Amazon-S3-Konsole zurück.
-
-
Bearbeiten Sie im Feld Richtlinie die vorhandene Richtlinie oder fügen Sie die Bucket-Richtlinie aus dem Richtliniengenerator ein. Beheben Sie Sicherheitswarnungen, Fehler, allgemeine Warnungen und Vorschläge bevor Sie Ihre Richtlinie speichern.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account-A-ID
:account-A-user
" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::account-B-bucket-arn
", "arn:aws:s3:::account-B-bucket-arn
/*" ] } ] } -
Wählen Sie Speichern Sie die Änderungen, wodurch Sie zu der Seite Bucket-Berechtigungen zurückkehren.
Schritt 3: Erstellen einer IAM-Rolle für Ihre DB-Instance und Anfügen Ihrer Richtlinie
In diesem Schritt wird davon ausgegangen, dass Sie die IAM-Richtlinie in Schritt 1: Erstellen einer IAM-Richtlinie für Ihre Amazon-RDS-Rolle erstellt haben. In diesem Schritt erstellen Sie eine Rolle für Ihre DB-Instance von RDS for Oracle und fügen dann Ihre Richtlinie an die Rolle an.
So erstellen Sie eine IAM-Rolle, um Amazon RDS Zugriff auf einen Amazon-S3-Bucket zu gewähren
-
Öffnen Sie die IAM-Managementkonsole
. -
Wählen Sie im Navigationsbereich Roles aus.
-
Wählen Sie Create role (Rolle erstellen) aus.
-
Wählen Sie einen AWS-Service aus.
-
Wählen Sie unter Anwendungsfälle für andere AWS-Services: die Option RDS und dann RDS – Rolle zur Datenbank hinzufügen aus. Wählen Sie anschließend Next (Weiter).
-
Geben Sie für Suchen unter Berechtigungsrichtlinien anfügen den Namen der von Ihnen in Schritt 1: Erstellen einer IAM-Richtlinie für Ihre Amazon-RDS-Rolle erstellten IAM-Richtlinie ein. Wählen Sie die Richtlinie aus, wenn sie in der Liste erscheint. Wählen Sie anschließend Next (Weiter).
-
Geben Sie unter Rollenname einen Namen für Ihre IAM-Rolle ein, z. B.
rds-s3-integration-role
. Sie können auch einen optionalen Wert für Description (Beschreibung) hinzufügen. -
Wählen Sie Create role (Rolle erstellen) aus.
So erstellen Sie eine Rolle und fügen ihr eine Richtlinie an
-
Erstellen Sie eine IAM-Rolle, die Amazon RDS in Ihrem Auftrag annehmen kann, um auf Ihre Amazon S3-Buckets zuzugreifen.
Wir empfehlen die Verwendung der globalen Bedingungskontextschlüssel
aws:SourceArn
undaws:SourceAccount
in ressourcenbasierten Vertrauensbeziehungen, 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 Anweisung 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 Vertrauensbeziehung sicher, dass Sie den globalen Bedingungskontextschlüssel
aws:SourceArn
mit dem vollständigen Amazon-Ressourcennamen (ARN) der Ressourcen verwenden, die auf die Rolle zugreifen.Der folgende AWS CLI-Befehl erstellt zu diesem Zweck die Rolle namens
.rds-s3-integration-role
Beispiel
Für 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:SourceAccount":my_account_ID
, "aws:SourceArn": "arn:aws:rds:Region
:my_account_ID
:db:dbname
" } } } ] }'Für Windows:
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:SourceAccount":my_account_ID
, "aws:SourceArn": "arn:aws:rds:Region
:my_account_ID
:db:dbname
" } } } ] }'Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzer im IAM-Benutzerhandbuch.
-
-
Notieren Sie nach dem Erstellen der Rolle den ARN der Rolle. Sie benötigen den ARN bei einem nachfolgenden Schritt.
-
Fügen Sie die erstellte Richtlinie an die erstellte Rolle an.
Der folgende AWS CLI-Befehl fügt die Richtlinie an die Rolle
an.rds-s3-integration-role
Beispiel
Für Linux, macOS oder Unix:
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-namerds-s3-integration-role
Für Windows:
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-namerds-s3-integration-role
Ersetzen Sie
durch den Richtlinien-ARN, den Sie im vorherigen Schritt notiert haben.your-policy-arn
Schritt 4: So ordnen Sie Ihre IAM-Rolle Ihrer DB-Instance von RDS für Oracle zu
Der letzte Schritt bei der Konfiguration der Berechtigungen für die Amazon S3-Integration ist die Zuordnung Ihrer IAM-Rolle zu Ihrer DB-Instance. Beachten Sie die folgenden Voraussetzungen:
-
Sie müssen Zugriff auf eine IAM-Rolle haben, der die Amazon-S3-Berechtigungsrichtlinie angefügt ist.
-
Sie können jeweils nur eine IAM-Rolle Ihrer DB-Instance von RDS für Oracle hinzufügen.
-
Ihre DB-Instance muss sich im Status Verfügbar befinden.
So ordnen Sie Ihre IAM-Rolle Ihrer DB-Instance von RDS for Oracle zu
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie aus dem Navigationsbereich Datenbanken aus.
-
Wählen Sie den Namen der DB-Instance von RDS für Oracle aus, um deren Details anzuzeigen.
-
Auf derKonnektivität & SicherheitScrollen Sie nach unten zumIAM-Rollen verwaltenunten auf der Seite.
-
Wählen Sie unter IAM-Rollen zu dieser Instance hinzufügen die Rolle aus, die Sie in Schritt 3: Erstellen einer IAM-Rolle für Ihre DB-Instance und Anfügen Ihrer Richtlinie erstellt haben.
-
Wählen Sie unter Feature (Funktion) die Option S3_INTEGRATION aus.
-
Wählen Sie Rolle hinzufügen.
Der folgende AWS CLI-Befehl fügt die Rolle zu einer Oracle-DB-Instance mit dem Namen
hinzu.mydbinstance
Beispiel
Für Linux, macOS oder Unix:
aws rds add-role-to-db-instance \ --db-instance-identifier
mydbinstance
\ --feature-name S3_INTEGRATION \ --role-arnyour-role-arn
Für Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name S3_INTEGRATION ^ --role-arnyour-role-arn
Ersetzen Sie
durch den Rollen-ARN, den Sie im vorherigen Schritt notiert haben. Für die Option your-role-arn
S3_INTEGRATION
muss --feature-name
angegeben werden.
Hinzufügen der Amazon S3-Integrationsoption
Für die Integration von Amazon RDS für Oracle in Amazon S3 muss Ihre DB-Instance einer Optionsgruppe zugeordnet sein, in der die Option S3_INTEGRATION
enthalten ist.
So konfigurieren Sie eine Optionsgruppe für die Amazon S3-Integration
-
Erstellen Sie eine neue Optionsgruppe oder identifizieren Sie eine vorhandene Optionsgruppe, der Sie die Option
S3_INTEGRATION
hinzufügen können.Weitere Informationen zum Erstellen einer Optionsgruppe finden Sie unter Erstellen einer Optionsgruppe.
-
Fügen Sie die Option
S3_INTEGRATION
zur Optionsgruppe hinzu.Weitere Informationen zum Hinzufügen einer Option zu einer Optionsgruppe finden Sie unter Hinzufügen einer Option zu einer Optionsgruppe.
-
Erstellen Sie eine neue DB-Instance von RDS für Oracle und ordnen Sie ihr die Optionsgruppe zu oder ändern Sie eine DB-Instance von RDS für Oracle, sodass ihr die Optionsgruppe zugeordnet wird.
Weitere Informationen zum Erstellen einer DB-Instance finden Sie unter Erstellen einer Amazon RDS-DB-Instance.
Informationen zum Ändern einer DB-Instance finden Sie unter Ändern einer Amazon RDS-DB-Instance.
So konfigurieren Sie eine Optionsgruppe für die Amazon S3-Integration
-
Erstellen Sie eine neue Optionsgruppe oder identifizieren Sie eine vorhandene Optionsgruppe, der Sie die Option
S3_INTEGRATION
hinzufügen können.Weitere Informationen zum Erstellen einer Optionsgruppe finden Sie unter Erstellen einer Optionsgruppe.
-
Fügen Sie die Option
S3_INTEGRATION
zur Optionsgruppe hinzu.Der folgende AWS CLI-Befehl fügt beispielsweise die Option
S3_INTEGRATION
zur Optionsgruppemyoptiongroup
hinzu.Beispiel
Für Linux, macOS oder Unix:
aws rds add-option-to-option-group \ --option-group-name
myoptiongroup
\ --options OptionName=S3_INTEGRATION,OptionVersion=1.0Für Windows:
aws rds add-option-to-option-group ^ --option-group-name
myoptiongroup
^ --options OptionName=S3_INTEGRATION,OptionVersion=1.0 -
Erstellen Sie eine neue DB-Instance von RDS für Oracle und ordnen Sie ihr die Optionsgruppe zu oder ändern Sie eine DB-Instance von RDS für Oracle, sodass ihr die Optionsgruppe zugeordnet wird.
Weitere Informationen zum Erstellen einer DB-Instance finden Sie unter Erstellen einer Amazon RDS-DB-Instance.
Informationen über das Ändern einer DB-Instance von RDS für Oracle DB finden Sie unter Ändern einer Amazon RDS-DB-Instance.
Übertragen von Dateien zwischen Amazon RDS for Oracle und einem Amazon S3-Bucket
Wenn Sie Dateien zwischen einer DB-Instance von RDS für Oracle und einem Amazon-S3-Bucket übertragen möchten, können Sie das Amazon-RDS-Paket rdsadmin_s3_tasks
verwenden. Sie können Dateien beim Hochladen mit GZIP komprimieren und beim Herunterladen dekomprimieren.
Anmerkung
Die Verfahren in rdsadmin_s3_tasks
laden die Dateien in einem Verzeichnis hoch bzw. herunter. Bei diesen Operationen werden keine Unterverzeichnisse berücksichtigt.
Themen
Hochladen von Dateien aus Ihrer DB-Instance von RDS for Oracle in einen Amazon-S3-Bucket
Verwenden Sie zum Hochladen von Dateien aus Ihrer Oracle DB-Instance in einen Amazon-S3-Bucket das Verfahren rdsadmin.rdsadmin_s3_tasks.upload_to_s3
. Sie können beispielsweise Oracle Recovery Manager (RMAN)-Sicherungsdateien oder Oracle-Data-Pump-Dateien hochladen. Die maximale Objektgröße in einem Amazon S3-Bucket beträgt 5 TB. Weitere Informationen zur Arbeit mit Objekten finden Sie im Amazon Simple Storage Service User Guide. Weitere Informationen zur Durchführung von RMAN-Sicherungen finden Sie unter Ausführen allgemeiner RMAN-Aufgaben für Oracle DB-Instances.
Die Prozedur rdsadmin.rdsadmin_s3_tasks.upload_to_s3
hat die folgenden Parameter.
Parametername | Datentyp | Standard | Erforderlich | Beschreibung |
---|---|---|---|---|
|
VARCHAR2 |
– |
Erforderlich |
Der Name des Amazon S3-Buckets, in den die Dateien hochgeladen werden sollen. |
|
VARCHAR2 |
– |
Erforderlich |
Der Name des Oracle-Verzeichnisobjekts, aus dem Dateien hochgeladen werden sollen. Das Verzeichnis kann jedes beliebige vom Benutzer erstellte Verzeichnisobjekt oder das Data Pump-Verzeichnis, z. B. , sei AnmerkungSie können nur Dateien aus dem angegebenen Verzeichnis hochladen. Sie können keine Dateien in Unterverzeichnisse des angegebenen Verzeichnisses hochladen. |
|
VARCHAR2 |
– |
Erforderlich |
Ein Amazon S3-Dateinamenspräfix, zu dem Dateien hochgeladen werden. Ein leeres Präfix lädt alle Dateien zur obersten Ebene im angegebenen Amazon S3-Bucket hoch und fügt kein Präfix an die Dateinamen an. Bei dem Präfix |
|
VARCHAR2 |
– |
Erforderlich |
Ein Dateinamenspräfix, dem Dateinamen entsprechen müssen, damit die Dateien hochgeladen werden. Ein leeres Präfix lädt alle Dateien im angegebenen Verzeichnis hoch. |
|
NUMBER |
|
optional |
Der Grad der GZIP-Komprimierung. Der Bereich gültiger Werte lautet
|
|
VARCHAR2 |
– |
optional |
Die Einstellung der Zugriffssteuerung für den Bucket. Die einzigen gültigen Werte sind null und |
Der Rückgabewert für die rdsadmin.rdsadmin_s3_tasks.upload_to_s3
-Prozedur ist eine Aufgaben-ID.
Das folgende Beispiel lädt alle Dateien im Verzeichnis
in den Amazon S3-Bucket DATA_PUMP_DIR
hoch. Die Dateien werden nicht komprimiert.mys3bucket
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
mys3bucket
', p_prefix => '', p_s3_prefix => '', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;
Das folgende Beispiel lädt alle Dateien mit dem Präfix
im Verzeichnis db
in den Amazon S3-Bucket DATA_PUMP_DIR
hoch. Amazon RDS wendet die höchste Stufe der GZIP-Komprimierung auf die Dateien an.mys3bucket
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
mys3bucket
', p_prefix => 'db
', p_s3_prefix => '', p_directory_name => 'DATA_PUMP_DIR
', p_compression_level =>9
) AS TASK_ID FROM DUAL;
Das folgende Beispiel lädt alle Dateien im Verzeichnis
in den Amazon S3-Bucket DATA_PUMP_DIR
hoch. Die Dateien werden in einen mys3bucket
dbfiles
-Ordner hochgeladen. In diesem Beispiel ist der GZIP-Komprimierungsgrad 1
, was die schnellste Komprimierungsstufe ist.
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
mys3bucket
', p_prefix => '', p_s3_prefix => 'dbfiles/
', p_directory_name => 'DATA_PUMP_DIR
', p_compression_level =>1
) AS TASK_ID FROM DUAL;
Das folgende Beispiel lädt alle Dateien im Verzeichnis
in den Amazon S3-Bucket DATA_PUMP_DIR
hoch. Die Dateien werden in einen mys3bucket
dbfiles
-Order hochgeladen und ora
wird an den Anfang eines jeden Dateinamens hinzugefügt. Es erfolgt keine Komprimierung.
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
mys3bucket
', p_prefix => '', p_s3_prefix => 'dbfiles/ora
', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;
Im folgenden Beispiel wird davon ausgegangen, dass der Befehl in Konto A ausgeführt wird, aber Konto B die vollständige Kontrolle über den Bucket-Inhalt benötigt. Der Befehl rdsadmin_s3_tasks.upload_to_s3
überträgt alle Dateien im
-Verzeichnis auf den Bucket namens DATA_PUMP_DIR
. Die Zugriffskontrolle ist auf s3bucketOwnedByAccountB
FULL_CONTROL
eingestellt, damit Konto B auf die Dateien im Bucket zugreifen kann. Der GZIP-Komprimierungsgrad ist 6
, was Geschwindigkeit und Dateigröße ausgleicht.
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => '
s3bucketOwnedByAccountB
', p_prefix => '', p_s3_prefix => '', p_directory_name => 'DATA_PUMP_DIR
', p_bucket_owner_full_control => 'FULL_CONTROL', p_compression_level =>6
) AS TASK_ID FROM DUAL;
In jedem Beispiel gibt die Anweisung SELECT
die ID der Aufgabe in einem VARCHAR2
-Datentyp zurück.
Sie können das Ergebnis anzeigen, indem Sie die Ausgabedatei der Aufgabe anzeigen.
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-
task-id
.log'));
Ersetzen Sie
durch die von der Prozedur zurückgegebene Aufgaben-ID.task-id
Anmerkung
Die Aufgaben werden asynchron ausgeführt.
Hochladen von Dateien aus einem Amazon S3-Bucket zu einer Oracle-DB-Instance
Verwenden Sie zum Herunterladen von Dateien aus einem Amazon-S3-Bucket zu einer RDS-für-Oracle-Instance das Amazon-RDS-Verfahren rdsadmin.rdsadmin_s3_tasks.download_from_s3
.
Wenn Sie Dateien über das download_from_s3
-Verfahren herunterladen, beachten Sie Folgendes:
-
Das Downloadlimit liegt bei 2000 Dateien pro Prozeduraufruf. Wenn Sie mehr als 2000 Dateien von Amazon S3 herunterladen müssen, teilen Sie den Download in separate Aktionen mit maximal 2000 Dateien pro Prozeduraufruf auf.
-
Wenn in Ihrem Download-Ordner eine Datei vorhanden ist und Sie versuchen, eine Datei mit demselben Namen herunterzuladen überspringt
download_from_s3
den Download. Zum Entfernen einer Datei aus dem Download-Verzeichnis verwenden Sie UTL_FILE.FREMOVE, das auf der Oracle-Website zu finden ist.
Die Prozedur download_from_s3
hat die folgenden Parameter.
Parametername | Datentyp | Standard | Erforderlich | Beschreibung |
---|---|---|---|---|
|
VARCHAR2 |
– |
Erforderlich |
Der Name des Amazon S3-Buckets, aus dem die Dateien heruntergeladen werden sollen. |
|
VARCHAR2 |
– |
Erforderlich |
Der Name des Oracle-Verzeichnisobjekts, in das die Dateien heruntergeladen werden sollen. Das Verzeichnis kann jedes beliebige vom Benutzer erstellte Verzeichnisobjekt oder das Data Pump-Verzeichnis, z. B. , sei |
|
VARCHAR2 |
FALSE |
Optional |
Ein Flag, das bestimmt, ob die Aufgabe einen Fehler auslöst, wenn keine Objekte im Amazon-S3-Bucket dem Präfix entsprechen. Wenn dieser Parameter nicht festgelegt oder auf FALSE (Standard) eingestellt ist, gibt die Aufgabe eine Meldung aus, dass keine Objekte gefunden wurden, löst jedoch keine Ausnahme oder einen Fehler aus. Wenn dieser Parameter TRUE ist, löst die Aufgabe eine Ausnahme und einen Fehler aus. Beispiele für Präfixspezifikationen, die bei Übereinstimmungsprüfungen problematisch sein können, sind Leerzeichen in Präfixen wie in |
|
VARCHAR2 |
– |
Erforderlich |
Ein Dateinamenspräfix, dem Dateinamen entsprechen müssen, damit die Dateien heruntergeladen werden. Wenn das Präfix leer ist, werden alle Dateien auf der höchsten Verzeichnisebene des angegebenen Amazon S3-Buckets heruntergeladen, nicht jedoch Dateien in Unterordnern in diesem Bucket. Das Verfahren lädt Amazon S3-Objekte nur aus dem Ordner der ersten Ebene mit dem entsprechenden Präfix herunter. Verschachtelte Verzeichnisstrukturen, die dem angegebenen Präfix entsprechen, werden nicht heruntergeladen. Angenommen, ein Amazon S3-Bucket hat die Ordnerstruktur Wenn Sie stattdessen das Präfix |
|
VARCHAR2 |
– |
Optional |
Das Dekomprimierungsformat. Gültige Werte sind |
Der Rückgabewert für die rdsadmin.rdsadmin_s3_tasks.download_from_s3
-Prozedur ist eine Aufgaben-ID.
Das folgende Beispiel lädt alle Dateien namens
im Amazon-S3-Bucket in das mys3bucket
-Verzeichnis herunter. Die Dateien werden nicht komprimiert, daher wird keine Dekomprimierung angewendet.DATA_PUMP_DIR
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => '
mys3bucket
', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;
Das folgende Beispiel lädt alle Dateien mit dem Präfix
im Amazon S3-Bucket db
in das Verzeichnis mys3bucket
herunter. Die Dateien werden mit GZIP komprimiert, daher wird Dekomprimierung angewendet. Der Parameter DATA_PUMP_DIR
p_error_on_zero_downloads
aktiviert die Präfixfehlerüberprüfung. Wenn das Präfix also mit keiner Datei im Bucket übereinstimmt, löst die Aufgabe eine Ausnahme und einen Fehler aus.
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => '
mys3bucket
', p_s3_prefix => 'db
', p_directory_name => 'DATA_PUMP_DIR
', p_decompression_format => 'GZIP
', p_error_on_zero_downloads => 'TRUE
') AS TASK_ID FROM DUAL;
Das folgende Beispiel lädt alle Dateien im Ordner
im Amazon S3-Bucket myfolder/
in das Verzeichnis mys3bucket
herunter. Verwenden Sie zur Angabe des Amazon-S3-Ordners den Parameter DATA_PUMP_DIR
p_s3_prefix
. Die hochgeladenen Dateien werden mit GZIP komprimiert, beim Download aber nicht dekomprimiert.
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => '
mys3bucket
', p_s3_prefix => 'myfolder/
', p_directory_name => 'DATA_PUMP_DIR
', p_decompression_format => 'NONE
') AS TASK_ID FROM DUAL;
Das folgende Beispiel lädt die Datei
im Amazon-S3-Bucket mydumpfile.dmp
ins Verzeichnis mys3bucket
herunter. Es erfolgt keine Dekomprimierung.DATA_PUMP_DIR
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => '
mys3bucket
', p_s3_prefix => 'mydumpfile.dmp
', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;
In jedem Beispiel gibt die Anweisung SELECT
die ID der Aufgabe in einem VARCHAR2
-Datentyp zurück.
Sie können das Ergebnis anzeigen, indem Sie die Ausgabedatei der Aufgabe anzeigen.
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-
task-id
.log'));
Ersetzen Sie
durch die von der Prozedur zurückgegebene Aufgaben-ID.task-id
Anmerkung
Die Aufgaben werden asynchron ausgeführt.
Sie können mithilfe des Oracle-Verfahrens UTL_FILE.FREMOVE
Dateien aus einem Verzeichnis entfernen. Weitere Informationen finden Sie unter FREMOVE Procedure
Überwachen des Status einer Dateiübertragung
Dateiübertragungsaufgaben veröffentlichen Amazon RDS-Ereignisse, wenn sie starten und wenn sie abgeschlossen werden. Die Ereignisnachricht enthält die Aufgaben-ID für die Dateiübertragung. Informationen zum Anzeigen dieser Grenze finden Sie unter Anzeigen von Amazon RDS-Ereignissen.
Sie können den Status einer laufenden Aufgabe in einer bdump-Datei einsehen. Die bdump-Dateien befinden sich im Verzeichnis /rdsdbdata/log/trace
. Jeder bdump-Dateiname weist das folgende Format auf.
dbtask-
task-id
.log
Ersetzen Sie
durch die ID der Aufgabe, die Sie überwachen möchten.task-id
Anmerkung
Die Aufgaben werden asynchron ausgeführt.
Sie können das gespeicherte Verfahren rdsadmin.rds_file_util.read_text_file
zur Ansicht des Inhalts der bdump-Dateien verwenden. Beispiel: Die folgende Abfrage gibt den Inhalt der bdump-Datei
zurück.dbtask-1234567890123-1234.log
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','
dbtask-1234567890123-1234.log
'));
Das folgende Beispiel zeigt die Protokolldatei für eine fehlgeschlagene Übertragung.
TASK_ID -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1234567890123-1234 TEXT -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2023-04-17 18:21:33.993 UTC [INFO ] File #1: Uploading the file /rdsdbdata/datapump/A123B4CDEF567890G1234567890H1234/sample.dmp to Amazon S3 with bucket name mys3bucket and key sample.dmp. 2023-04-17 18:21:34.188 UTC [ERROR] RDS doesn't have permission to write to Amazon S3 bucket name mys3bucket and key sample.dmp. 2023-04-17 18:21:34.189 UTC [INFO ] The task failed.
Fehlerbehebung für die Amazon-S3-Integration
Tipps zur Fehlerbehebung finden Sie im AWS re:Post-Artikel Wie behebe ich Probleme, wenn ich Amazon RDS für Oracle in Amazon S3 integriere?
Entfernen der Amazon S3-Integrationsoption
Sie können die Amazon S3-Integrationsoption aus einer DB-Instance entfernen.
Um die Amazon S3-Integrationsoption aus einer DB-Instance zu entfernen, führen Sie einen der folgenden Schritte durch:
-
Um die Amazon S3-Integrationsoption aus mehreren DB-Instances zu entfernen, entfernen Sie die Option
S3_INTEGRATION
aus der Optionsgruppe, der die DB-Instances angehören. Diese Änderung wirkt sich auf alle DB-Instances aus, die die betreffende Optionsgruppe verwenden. Weitere Informationen finden Sie unter Entfernen einer Option aus einer Optionsgruppe. -
Um die Amazon S3-Integrationsoption aus einer einzelnen DB-Instance zu entfernen, ändern Sie die Instance und geben Sie eine andere Optionsgruppe an, in der die Option
S3_INTEGRATION
nicht enthalten ist. Sie können die (leere) Standardoptionsgruppe oder eine andere benutzerdefinierte Optionsgruppe angeben. Weitere Informationen finden Sie unter Ändern einer Amazon RDS-DB-Instance.