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.
Berechtigungen für den Zugriff auf andere AWS -Ressourcen
Um Daten zwischen Ihrem Cluster und einer anderen AWS Ressource wie Amazon S3, Amazon DynamoDB, Amazon oder Amazon zu verschiebenEMR, muss Ihr Cluster über die Berechtigung verfügenEC2, auf die Ressource zuzugreifen und die erforderlichen Aktionen auszuführen. Um beispielsweise Daten aus Amazon S3 zu laden, COPY müssen Sie LIST Zugriff auf den Bucket und GET Zugriff auf die Bucket-Objekte haben. Weitere Informationen zu den mindestens erforderlichen Berechtigungen finden Sie unter IAMBerechtigungen für COPYUNLOAD, und CREATE LIBRARY.
Um die Autorisierung für den Zugriff auf die Ressource zu erhalten, muss Ihr Cluster authentifiziert werden. Sie können eine der beiden folgenden Authentifizierungsmethoden verwenden:
-
Rollenbasierte Zugriffskontrolle— Für die rollenbasierte Zugriffskontrolle geben Sie eine Rolle AWS Identity and Access Management (IAM) an, die Ihr Cluster für die Authentifizierung und Autorisierung verwendet. Um Ihre AWS Anmeldeinformationen und vertraulichen Daten zu schützen, empfehlen wir dringend, die rollenbasierte Authentifizierung zu verwenden.
-
Schlüsselbasierte Zugriffssteuerung— Für die schlüsselbasierte Zugriffskontrolle geben Sie die Zugangsdaten ( AWS Zugriffsschlüssel-ID und geheimer Zugriffsschlüssel) für einen Benutzer als Klartext an.
Rollenbasierte Zugriffskontrolle
Bei der rollenbasierten Zugriffskontrolle übernimmt Ihr Cluster vorübergehend eine IAM Rolle in Ihrem Namen. Anschließend kann Ihr Cluster auf der Basis der Autorisierungen, die der Rolle gewährt wurden, auf die erforderlichen AWS -Ressourcen zugreifen.
Das Erstellen einer IAM Rolle ähnelt dem Erteilen von Berechtigungen für einen Benutzer, da es sich um eine AWS Identität mit Berechtigungsrichtlinien handelt, die festlegen, wofür die Identität zuständig ist und welche nicht. AWS Eine Rolle ist jedoch nicht einem einzigen Benutzer zugeordnet, sondern kann von allen Entitäten angenommen werden, die diese Rolle benötigen. Einer Rolle sind auch keine Anmeldeinformationen (Passwort oder Zugriffsschlüssel) zugeordnet. Wenn eine Rolle mit einem Cluster verknüpft ist, werden die Zugriffsschlüssel stattdessen dynamisch erstellt und dem Cluster bereitgestellt.
Wir empfehlen die Verwendung einer rollenbasierten Zugriffskontrolle, da sie zusätzlich zum Schutz Ihrer Anmeldeinformationen eine sicherere und detailliertere Steuerung des Zugriffs auf AWS Ressourcen und vertrauliche Benutzerdaten ermöglicht. AWS
Die rollenbasierte Authentifizierung bietet folgende Vorteile:
-
Sie können AWS IAM Standardtools verwenden, um eine IAM Rolle zu definieren und die Rolle mehreren Clustern zuzuordnen. Wenn Sie die Zugriffsrichtlinie für eine Rolle ändern, werden die Änderungen automatisch auf alle Cluster angewendet, die diese Rolle verwenden.
-
Sie können detaillierte IAM Richtlinien definieren, die bestimmten Clustern und Datenbankbenutzern Berechtigungen für den Zugriff auf bestimmte AWS Ressourcen und Aktionen gewähren.
-
Ihr Cluster erhält temporäre Sitzungsanmeldeinformationen zur Laufzeit. Die Anmeldeinformationen werden wie benötigt aktualisiert, bis die Operation abgeschlossen ist. Wenn Sie schlüsselbasierte temporäre Anmeldeinformationen verwenden, schlägt die Operation fehl, wenn die temporären Anmeldeinformationen ablaufen, bevor die Operation abgeschlossen ist.
-
Ihre Zugriffsschlüssel-ID und Ihre geheime Zugriffsschlüssel-ID werden nicht in Ihrem SQL Code gespeichert oder übertragen.
Um die rollenbasierte Zugriffskontrolle zu verwenden, müssen Sie zunächst eine IAM Rolle mit dem Amazon Redshift Redshift-Servicerollentyp erstellen und die Rolle dann Ihrem Cluster zuordnen. Die Rolle muss mindestens die in aufgelisteten Berechtigungen besitzen IAMBerechtigungen für COPYUNLOAD, und CREATE LIBRARY. Schritte zum Erstellen einer IAM Rolle und zum Anhängen dieser Rolle an Ihren Cluster finden Sie unter Autorisieren von Amazon Redshift, in Ihrem Namen auf andere AWS Services zuzugreifen im Amazon Redshift Management Guide.
Sie können einem Cluster eine Rolle hinzufügen oder die mit einem Cluster verknüpften Rollen mithilfe der Amazon Redshift Management Console anzeigen,CLI, oderAPI. Weitere Informationen finden Sie unter Zuordnen einer IAM Rolle zu einem Cluster im Amazon Redshift Management Guide.
Wenn Sie eine IAM Rolle erstellen, wird ein Amazon-Ressourcenname (ARN) für die Rolle IAM zurückgegeben. Um eine IAM Rolle anzugeben, geben Sie der Rolle entweder ARN den IAM_ROLE Parameter oder den CREDENTIALS Parameter an.
Angenommen, die folgende Rolle ist dem Cluster angefügt.
"IamRoleArn": "arn:aws:iam::0123456789012:role/MyRedshiftRole"
Das folgende COPY Befehlsbeispiel verwendet den ROLE Parameter IAM _ zusammen mit dem ARN im vorherigen Beispiel für die Authentifizierung und den Zugriff auf Amazon S3.
copy customer from 's3://amzn-s3-demo-bucket/mydata' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Das folgende COPY Befehlsbeispiel verwendet den CREDENTIALS Parameter, um die IAM Rolle anzugeben.
copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::0123456789012:role/MyRedshiftRole';
Darüber hinaus kann ein Superuser Datenbankbenutzern und -gruppen das ASSUMEROLE Recht gewähren, Zugriff auf eine Rolle für COPY Operationen zu gewähren. Weitere Informationen finden Sie unter GRANT.
Schlüsselbasierte Zugriffssteuerung
Bei der schlüsselbasierten Zugriffskontrolle geben Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel für einen IAM Benutzer an, der berechtigt ist, auf die AWS Ressourcen zuzugreifen, die die Daten enthalten. Sie können entweder die Parameter ACCESS_KEY_ID and SECRET_ACCESS_KEY zusammen verwenden oder den Parameter CREDENTIALS verwenden.
Anmerkung
Wir empfehlen dringend, eine IAM Rolle für die Authentifizierung zu verwenden, anstatt eine Klartext-Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel anzugeben. Wenn Sie sich für eine schlüsselbasierte Zugriffskontrolle entscheiden, verwenden Sie niemals Ihre AWS Kontoanmeldeinformationen (Root). Erstellen Sie immer einen IAM Benutzer und geben Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel dieses Benutzers an. Die Schritte zum Erstellen eines IAM Benutzers finden Sie unter Einen IAM Benutzer in Ihrem AWS Konto erstellen.
Um sich mit ACCESS _ KEY _ID und _ _ zu authentifizieren, SECRET ersetzen ACCESS Sie KEY <access-key-id>
and <secret-access-key>
durch die Zugriffsschlüssel-ID eines autorisierten Benutzers und den vollständigen geheimen Zugriffsschlüssel, wie im Folgenden dargestellt.
ACCESS_KEY_ID '
<access-key-id>
' SECRET_ACCESS_KEY '<secret-access-key>
';
Um sich mit dem CREDENTIALS Parameter zu authentifizieren, ersetzen Sie <access-key-id>
and <secret-access-key>
durch die Zugriffsschlüssel-ID eines autorisierten Benutzers und den vollständigen geheimen Zugriffsschlüssel, wie im Folgenden dargestellt.
CREDENTIALS 'aws_access_key_id=
<access-key-id>
;aws_secret_access_key=<secret-access-key>
';
Der IAM Benutzer muss mindestens über die unter aufgeführten Berechtigungen verfügenIAMBerechtigungen für COPYUNLOAD, und CREATE LIBRARY.
Temporäre Sicherheitsanmeldeinformationen
Wenn Sie die schlüsselbasierte Zugriffssteuerung verwenden, können Sie den Zugriff weiter einschränken, den Benutzer auf Ihre Daten haben, indem Sie temporäre Sicherheitsanmeldeinformationen verwenden. Die rollenbasierte Authentifizierung verwendet automatisch temporäre Anmeldeinformationen.
Anmerkung
Es wird nachdrücklich empfohlen, die role-based access control zu verwenden, statt temporäre Anmeldeinformationen zu erstellen und Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel in Form von reinem Text bereitzustellen. Die rollenbasierte Zugriffssteuerung verwendet automatisch temporäre Anmeldeinformationen.
Temporäre Sicherheitsanmeldeinformationen bieten erweiterte Sicherheit, da sie nur kurzlebig sind und nach ihrem Ablauf nicht erneut verwendet werden können. Die Zugriffsschlüssel-ID und der geheime Zugriffsschlüssel, die mit dem Token generiert werden, können nicht ohne das Token verwendet werden. Ein Benutzer, der diese temporären Sicherheitsanmeldeinformationen besitzt, kann auf Ihre Ressourcen nur solange zugreifen, bis die Anmeldeinformationen ablaufen.
Um Benutzern temporären Zugriff auf Ihre Ressourcen zu gewähren, rufen Sie AWS Security Token Service (AWS STS) API operationen auf. Die AWS STS API Operationen geben temporäre Sicherheitsanmeldedaten zurück, die aus einem Sicherheitstoken, einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel bestehen. Sie geben die temporären Sicherheitsanmeldeinformationen an die Benutzer aus, die temporären Zugriff auf Ihre Ressourcen benötigen. Bei diesen Benutzern kann es sich um bestehende IAM Benutzer oder um AWS Nichtbenutzer handeln. Weitere Informationen zum Erstellen temporärer Sicherheitsanmeldedaten finden Sie unter Verwenden temporärer Sicherheitsanmeldedaten im IAM Benutzerhandbuch.
Sie können die ACCESS_KEY_ID and SECRET_ACCESS_KEY-Parameter zusammen mit dem Parameter SESSION_TOKEN oder dem Parameter CREDENTIALS verwenden. Sie müssen auch die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel bereitstellen, die mit dem Token bereitgestellt wurden.
Um sich mit ACCESS _ KEY _ID, _ _ und SECRET ACCESS SESSION _ TOKEN zu authentifizierenKEY, ersetzen Sie <temporary-access-key-id>
,
<temporary-secret-access-key>
, und <temporary-token>
wie im Folgenden gezeigt.
ACCESS_KEY_ID '
<temporary-access-key-id>
' SECRET_ACCESS_KEY '<temporary-secret-access-key>
' SESSION_TOKEN '<temporary-token>
';
Um sich zu authentifizierenCREDENTIALS, fügen session_token=
Sie die Zeichenfolge für die Anmeldeinformationen wie folgt hinzu. <temporary-token>
CREDENTIALS 'aws_access_key_id=
<temporary-access-key-id>
;aws_secret_access_key=<temporary-secret-access-key>
;session_token=<temporary-token>
';
Das folgende Beispiel zeigt einen COPY Befehl mit temporären Sicherheitsanmeldeinformationen.
copy table-name from 's3://objectpath' access_key_id '
<temporary-access-key-id>
' secret_access_key '<temporary-secret-access-key>
' session_token '<temporary-token>
';
Im folgenden Beispiel wird die LISTING Tabelle mit temporären Anmeldeinformationen und Dateiverschlüsselung geladen.
copy listing from 's3://amzn-s3-demo-bucket/data/listings_pipe.txt' access_key_id '
<temporary-access-key-id>
' secret_access_key '<temporary-secret-access-key>
' session_token '<temporary-token>
' master_symmetric_key '<root-key>
' encrypted;
Im folgenden Beispiel wird die LISTING Tabelle mithilfe des CREDENTIALS Parameters mit temporären Anmeldeinformationen und Dateiverschlüsselung geladen.
copy listing from 's3://amzn-s3-demo-bucket/data/listings_pipe.txt' credentials 'aws_access_key_id=
<temporary-access-key-id>
;aws_secret_access_key=<temporary-secret-access-key>
;session_token=<temporary-token>
;master_symmetric_key=<root-key>
' encrypted;
Wichtig
Die temporären Sicherheitsanmeldedaten müssen für die gesamte Dauer des COPY UNLOAD OR-Vorgangs gültig sein. Wenn die temporären Sicherheitsanmeldeinformationen während der Operation ablaufen, schlägt der Befehl fehl und für die Transaktion wird ein Rollback ausgeführt. Wenn temporäre Sicherheitsanmeldedaten beispielsweise nach 15 Minuten ablaufen und der COPY Vorgang eine Stunde dauert, schlägt der COPY Vorgang fehl, bevor er abgeschlossen ist. Wenn Sie den rollenbasierten Zugriff verwenden, werden die temporären Sicherheitsanmeldeinformationen automatisch aktualisiert, bis die Operation abgeschlossen ist.
IAMBerechtigungen für COPYUNLOAD, und CREATE LIBRARY
Die IAM Rolle oder der Benutzer, auf die der CREDENTIALS Parameter verweist, muss mindestens über die folgenden Berechtigungen verfügen:
-
Für COPY von Amazon S3 aus, Zugriff auf LIST den Amazon S3 S3-Bucket und GET die Amazon S3 S3-Objekte, die geladen werden, sowie die Manifestdatei, falls eine verwendet wird.
-
Für COPY von Amazon S3EMR, Amazon und Remote-Hosts (SSH) mit JSON -formatierten Daten Zugriff auf LIST und GET die JSONPaths Datei auf Amazon S3, falls eine verwendet wird.
-
Für COPY from DynamoDB, Zugriff auf SCAN und DESCRIBE die DynamoDB-Tabelle, die geladen wird.
-
Für COPY aus einem EMR Amazon-Cluster, Genehmigung für die
ListInstances
Aktion auf dem EMR Amazon-Cluster. -
Für UNLOAD Amazon S3, GETLIST, und PUT Berechtigungen für den Amazon S3 S3-Bucket, in den die Datendateien entladen werden.
-
Für CREATE LIBRARY aus Amazon S3, Genehmigung für LIST den Amazon S3 S3-Bucket und GET die Amazon S3 S3-Objekte, die importiert werden.
Anmerkung
Wenn Sie beim Ausführen einesS3ServiceException: Access
Denied
, oder CREATE LIBRARY -Befehls die Fehlermeldung erhalten COPYUNLOAD, verfügt Ihr Cluster nicht über die erforderlichen Zugriffsberechtigungen für Amazon S3.
Sie können IAM Berechtigungen verwalten, indem Sie eine IAM Richtlinie an eine IAM Rolle anhängen, die Ihrem Cluster, einem Benutzer oder der Gruppe zugeordnet ist, zu der Ihr Benutzer gehört. Zum Beispiel gewährt die AmazonS3ReadOnlyAccess
verwaltete Richtlinie Amazon S3 S3-Ressourcen LIST und GET Berechtigungen. Weitere Informationen zu IAM Richtlinien finden Sie unter IAMRichtlinien verwalten im IAMBenutzerhandbuch.