通过COPY操作为任何人提供Redshift可访问S3文件的最佳实践

时间:2017-07-04 11:52:43

标签: amazon-s3 amazon-redshift

我想发布一个教程,其中Redshift使用来自示例tsv文件S3的数据。理想情况下,我希望它是逐步遵循练习所需的简单复制粘贴操作,类似于Load Sample Data from Amazon S3中的操作。问题在于使用COPY命令的第一个数据导入任务,因为它仅支持S3或基于EMR的加载。

这似乎是一个简单的要求,但没有无忧无虑的方式来真正使用Redshift COPY(我可以使文件可用于浏览器下载没有任何问题,但COPY需要CREDENTIALS参数...)

Redshift COPY Authorization parameters的各种选项非常丰富:

  • 我应该问用户Create an IAM Role for Amazon Redshift 本人呢?
  • 我应该自己创建并发布IAM角色ARN吗?听起来最麻烦 免费(复制粘贴),但安全明智听起来不太好......?我是否需要限制S3权限以限制仅访问该角色的特定文件?
  • 我应该尝试临时访问吗?

1 个答案:

答案 0 :(得分:0)

你是对的:

  • 可以通过COPY命令
  • 从Amazon S3将数据导入Amazon Redshift
  • COPY命令需要权限才能访问存储在Amazon S3中的数据。这可以通过以下方式授予:
    • 与IAM用户关联的凭据(访问密钥+密钥),或
    • IAM角色

您无法为人员创建角色并让他们使用它,因为他们的Amazon Redshift群集将在不同的AWS账户中运行,而不是您的IAM角色。您可以授予信任访问权限,以便其他帐户可以使用该角色,但这不一定是明智之举。

至于凭证,他们可以使用自己或您提供的凭证。他们可以在IAM控制台中访问自己的Access Key + Secret Key。

如果您希望提供要使用的凭据,您可以创建一个只有权限 的IAM用户才能访问他们需要的Amazon S3文件。发布AWS凭证通常是不明智的,因为它们可能会暴露安全漏洞,所以在执行此操作之前应该仔细考虑。

在一天结束时,最好向他们展示正确的流程,以便他们了解如何获取自己的凭据。安全性在云中非常重要,因此除了Amazon Redshift本身之外,您还将教授它们良好的安全性实践。