Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
Autorisierungsparameter
Der COPY-Befehl benötigt eine Autorisierung für den Zugriff auf Daten in anderen AWS-Ressourcen, einschließlich Amazon S3, Amazon EMR, Amazon DynamoDB und Amazon EC2. Sie gewähren diese Autorisierung durch die Referenzierung einer IAM-Rolle (AWS Identity and Access Management), die mit Ihrem Cluster verbunden ist (rollenbasierte Zugriffskontrolle). Sie können Ihre Ladedaten auf Amazon S3 verschlüsseln.
In den folgenden Themen finden Sie weitere Details und Beispiele für Authentifizierungsoptionen:
Verwenden Sie eines der folgenden Verfahren, um eine Autorisierung für den COPY-Befehl bereitzustellen:
Verwenden des Parameters IAM_ROLE
IAM_ROLE
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der COPY-Befehl ausgeführt wird.
Verwenden Sie den Amazon-Ressourcennamen (ARN) für eine IAM-Rolle, die von Ihrem Cluster für Authentifizierung und Autorisierung verwendet wird. Wenn Sie IAM_ROLE angeben, können Sie ACCESS_KEY_ID und SECRET_ACCESS_KEY, SESSION_TOKEN oder CREDENTIALS nicht verwenden.
Im Folgenden wird die Syntax für den Parameter IAM_ROLE gezeigt.
IAM_ROLE { default | 'arn:aws:iam::<AWS-Konto-id>:role/<role-name>' }
Weitere Informationen finden Sie unter Rollenbasierte Zugriffskontrolle.
Verwenden der Parameter ACCESS_KEY_ID und SECRET_ACCESS_KEY
ACCESS_KEY_ID, SECRET_ACCESS_KEY
Diese Autorisierungsmethode wird nicht empfohlen.
Anmerkung
Es wird nach nachdrücklich empfohlen, eine rollenbasierte Authentifizierung durch Angabe des Parameters IAM_ROLE zu verwenden, statt die Zugriffsanmeldeinformationen in Textform bereitzustellen. Weitere Informationen finden Sie unter Rollenbasierte Zugriffskontrolle.
SESSION_TOKEN
Das Sitzungstoken, das für temporäre Zugriffsanmeldeinformationen verwendet wird. Wenn SESSION_TOKEN angegeben wird, müssen Sie auch ACCESS_KEY_ID und SECRET_ACCESS_KEY verwenden, um temporäre Zugriffsschlüssel-Anmeldeinformationen bereitzustellen. Wenn Sie SESSION_TOKEN angeben, können Sie IAM_ROLE oder CREDENTIALS nicht verwenden. Weitere Informationen finden Sie unter Temporäre Sicherheitsanmeldeinformationen im IAM-Benutzerhandbuch.
Anmerkung
Es wird nach nachdrücklich empfohlen, eine rollenbasierte Authentifizierung zu verwenden, statt temporäre Sicherheitsanmeldeinformationen zu erstellen. Wenn Sie eine Autorisierung unter Verwendung einer IAM-Rolle ausführen, erstellt Amazon Redshift automatisch für jede Sitzung temporäre Benutzeranmeldeinformationen. Weitere Informationen finden Sie unter Rollenbasierte Zugriffskontrolle.
Im Folgenden wird die Syntax für den Parameter SESSION_TOKEN mit den Parametern ACCESS_KEY_ID und SECRET_ACCESS_KEY gezeigt.
ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>' SESSION_TOKEN '<temporary-token>';
Wenn Sie SESSION_TOKEN angeben, können Sie CREDENTIALS oder IAM_ROLE nicht verwenden.
Verwenden des Parameters CREDENTIALS
CREDENTIALS
Eine Klausel, die die Methode angibt, die Ihr Cluster für den Zugriff auf andere AWS-Ressourcen verwendet, die Datendateien oder Manifestdateien enthalten. Sie können den Parameter CREDENTIALS nicht mit IAM_ROLE oder ACCESS_KEY_ID und SECRET_ACCESS_KEY verwenden.
Im Folgenden wird die Syntax für den Parameter CREDENTIALS gezeigt.
[WITH] CREDENTIALS [AS] 'credentials-args'
Anmerkung
Um die Flexibilität zu verbessern, wird die Verwendung des Parameters IAM_ROLE anstelle des Parameters CREDENTIALS empfohlen.
Wenn der Parameter ENCRYPTED verwendet wird, stellt die Zeichenfolge credentials-args auch den Verschlüsselungsschlüssel bereit.
Die Zeichenfolge credentials-args unterscheidet zwischen Groß- und Kleinschreibung und darf keine Leerzeichen enthalten.
Die Schlüsselwörter WITH und AS sind optional und werden ignoriert.
Sie können entweder role-based access control oder key-based access control angeben. In beiden Fällen müssen die IAM-Rolle oder der Benutzer die nötigen Berechtigungen besitzen, um auf die angegebenen AWS-Ressourcen zuzugreifen. Weitere Informationen finden Sie unter IAM-Berechtigungen für COPY, UNLOAD und CREATE LIBRARY.
Anmerkung
Um Ihre AWS-Anmeldeinformationen und sensible Daten zu schützen, wird nachdrücklich die Verwendung der rollenbasierten Zugriffssteuerung empfohlen.
Um die rollenbasierte Zugriffssteuerung anzugeben, stellen Sie die Zeichenfolge credentials-args im folgenden Format bereit.
'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'
Um temporäre Token-Anmeldeinformationen zu verwenden, müssen Sie die temporäre Zugriffschlüssel-ID, den temporären geheimen Zugriffschlüssel und das temporäre Token bereitstellen. Die credentials-args-Zeichenfolge hat das folgende Format.
CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>'
Ein COPY-Befehl mit einer rollenbasierten Zugriffssteuerung mit temporären Anmeldeinformationen würde der folgenden Beispielanweisung ähnlich sein:
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key-id>;token=<temporary-token>'
Weitere Informationen finden Sie unter Temporäre Sicherheitsanmeldeinformationen.
Wenn der Parameter ENCRYPTED verwendet wird, hat die Zeichenfolge credentials-args das folgende Format, wobei<root-key> der Wert des Root-Schlüssels ist, der verwendet wurde, um die Dateien zu verschlüsseln.
CREDENTIALS '<credentials-args>;master_symmetric_key=<root-key>'
Ein COPY-Befehl mit einer rollenbasierten Zugriffssteuerung mit einem Verschlüsselungsschlüssel würde der folgenden Beispielanweisung ähnlich sein:
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' CREDENTIALS 'aws_iam_role=arn:aws:iam::<account-id>:role/<role-name>;master_symmetric_key=<root-key>'