【发布时间】:2016-06-07 01:58:08
【问题描述】:
有没有办法提供多个凭据或指定除s3:// Redshift COPY 路径以外的其他内容来加载 JSONPaths 文件?
我对不受我控制的存储桶具有只读访问权限,在此示例中为 someone_elses_bucket。 Redshift 的文档指出 JSON 的唯一 2 个选项是“自动”或 s3 路径:
COPY example
FROM 's3://someone_elses_bucket/data'
CREDENTIALS 'aws_access_key_id=someone_elses_bucket_foo;aws_secret_access_key=someone_elses_bucket_bar'
DATEFORMAT AS 'auto'
TRUNCATECOLUMNS
JSON 's3://my_bucket/redshift_json.json' GZIP;
由于我无权访问someone_elses_bucket,我不得不将 JSONPaths 文件放入我的帐户中。但我收到S3ServiceException:Access Denied,Status 403,Error AccessDenied 错误。我存储桶中的文件对公众开放。要么我做错了,要么 COPY 在另一个账户上使用我的 IAM 角色来限制我的访问。无论如何,我无法提供 JSONPaths 文件,因此无法摄取我的格式化数据。 auto 不起作用。
这是我的存储桶策略,允许访问我在 'someone_elses_bucket' 上的帐户(本示例中替换了帐号):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:user/jerdak"
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my_bucket"
]
}
]
}
【问题讨论】:
标签: amazon-web-services amazon-redshift