2017-12-01 2 views
0

Kann ein Entladebefehl mit dem Argument credentials und dem Argument KMS_KEY_ID geschrieben werden? Ich erhalte die folgende Fehlermeldung nach dem nachfolgenden Code ausgeführt wird:Redshift Entladen mit KMS-Verschlüsselung und Anmeldeinformationen?

unload ('select top 10 * from testtable') 
to 's3://mybucket/test.txt' 
KMS_KEY_ID '123456789' 
encrypted 
credentials 'aws_access_key_id=ZYZYZYZYZ;aws_secret_access_key=as098dfas9dfa9sd09a8fa0sd'; 


    error: Invalid credentials. Must be of the format: credentials 'aws_iam_role=...;master_symmetric_key=...' or 'aws_access_key_id=...;aws_secret_access_key=...[;token=...];master_symmetric_key=...' 
    code:  8001 
    context: 
    query:  0 
    location: aws_credentials_parser.cpp:114 
    process: padbmaster [pid=47590] 
+0

FYI - PUT IHRES ACCESS KEY UND GEHEIM HIER NICHT –

Antwort

0

Nr Wenn Sie KMS_KEY_ID verwenden, dann müssen Sie eine IAM-Rolle oder ACCESS_KEY_ID und SECRET_ACCESS_KEY verwenden. Die Verwendung von CREDENTIALS wird nicht unterstützt.

Hinweis: Ich finde es sehr interessant, dass es zwei Möglichkeiten gibt, um Zugriffsschlüssel zu spezifizieren. Einer wird mit KMS_KEY_ID unterstützt und der andere nicht. Die CREDENTIALS-Klausel ermöglicht die Verwendung von temporären Anmeldeinformationen über das zusätzliche "token = xxx", was der einzige Unterschied ist, den ich sehe.

Ich empfehle die Verwendung von IAM-Rollen und keine Angabe Ihrer Anmeldeinformationen mit Redshift-Anweisungen.

Authorization Parameters

+0

Enthält diese davon ausgehen, dass die KMS-Schlüssel in das gleiche Konto wie Ihre Redshift Cluster enthalten sein sollte? – econgineer

+0

Ich bin mir nicht sicher. Ich denke, dass der KMS-Schlüssel im selben Konto und in derselben Region sein muss. –

Verwandte Themen