【问题标题】:Access denied error while runnig Redshift COPY command using Temp credential使用临时凭证运行 Redshift COPY 命令时访问被拒绝错误
【发布时间】:2016-02-19 14:49:42
【问题描述】:

我正在尝试使用临时凭据(从实例元数据中读取)运行 Redshift COPY 命令。 为 s3 资源分配给我的 EC2 实例的角色具有以下访问权限

"Effect": "Allow",
"Action": [
        "s3:List*",
        "s3:Get*",
        "s3:PutObject*",
        "s3:DeleteObject*"
],

但是当我运行应用程序时,我得到了

错误:S3ServiceException:访问被拒绝,状态 403,错误访问被拒绝。

根据文档,空调应该具有对我在本例中提供的 S3 存储桶的 LIST 和 GET 访问权限。

为什么会失败?

【问题讨论】:

  • 我厌倦了为运行 EC2 实例的角色授予完整的 s3 权限,但仍然遇到相同的错误。

标签: amazon-s3 amazon-redshift access-denied


【解决方案1】:

使用临时凭证时,仅使用 aws_access_key_id 和 aws_secret_access_key 是不够的。您还应该使用它们随附的令牌。欲了解更多信息,请阅读:

http://docs.aws.amazon.com/redshift/latest/dg/r_copy-temporary-security-credentials.html

【讨论】:

  • 问题不在于凭据。我将令牌作为凭据的一部分传递。
  • 另外,您是否授予对存储桶内对象的访问权限?
  • 什么权限?我需要公开这些对象吗?
  • 假设我们有一个名为 mybucket 的存储桶。您需要将权限添加到存储桶本身 mybucket: {read...} 和存储桶内容 mybucket/*: {read....}
猜你喜欢
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-18
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
  • 2020-07-16
相关资源
最近更新 更多