是否可以使用credentials参数和KMS_KEY_ID参数编写卸载命令?运行以下代码后出现以下错误:
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 :(得分:0)
没有。如果使用KMS_KEY_ID,则必须使用IAM角色或ACCESS_KEY_ID和SECRET_ACCESS_KEY。不支持使用CREDENTIALS。
注意:我觉得有两种方法可以指定访问密钥。一个支持KMS_KEY_ID,另一个不支持。 CREDENTIALS子句允许通过额外的“token = xxx”使用临时凭证,这是我看到的唯一区别。
我建议使用IAM角色,而不是使用Redshift语句指定您的凭据。