[英]How to unload table data in redshift to s3 bucket in excel format
[英]Unload from Redshift to an S3 bucket of a box
我正在尝试将数据从一个框中的Redshift集群卸载到另一个框中的S3存储桶。 我已经成功发送了文件。 但是,由于存储桶所有者不是我要发送的文件的所有者,因此他无法访问该文件。 由于这是Redshift的直接卸载操作,因此我认为我无法指定允许存储桶所有者获得适当权限的条件。
甚至有可能实现(而不必使用同一帐户从Redshift卸载),如果可以-怎么做?
谢谢!
(尝试#2 ...)
好的,看来您的情况是:
UNLOAD
Amazon S3中没有“文件所有者”的概念。 相反,有:
只要这些权限中的至少一个授予访问权限,并且其中没有一个明确拒绝访问,则用户将能够访问文件。
如果用户报告无法查看文件,请确保已通过上述方法之一授予了ListBucket
和GetObject
权限。
听起来您的情况是:
UNLOAD
命令将数据从Amazon Redshift导出到您拥有的Amazon S3存储桶 可以通过几种方式授予访问Amazon S3中的对象的权限:
aws s3 cp
命令。 “存储桶策略”选项似乎最适合您的情况。 要启用它,请在存储桶上创建一个策略,该策略授予对要放置文件的特定目录的访问权,例如:
{
"Id": "Policy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Sid1",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::MY-BUCKET",
"Principal": {
"AWS": [
"arn:aws:iam::123456789012:user/username"
]
}
},
{
"Sid": "Sid2",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::MY-BUCKET/PATH/*",
"Principal": {
"AWS": [
"arn:aws:iam::123456789012:user/username"
]
}
}
]
}
策略中的ARN
是指您授予访问权限的人员的帐户ID和用户名。 然后,他们可以使用AWS CLI列出存储桶的内容并下载内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.