【问题标题】:Elixir ex_aws AWS S3 Delete Object Returns 403 Access DeinedElixir exaws AWS S3 Delete Object Returns 403 Access Denied
【发布时间】:2018-01-11 19:20:30
【问题描述】:

我在 Elixir 中使用 ex_aws 库来尝试删除一个 S3 存储桶中的对象,但是,我收到 403,拒绝访问 生产中的响应,我不知道为什么会发生这种情况。 作为一个相关问题,使用不同的存储桶和环境,我收到 204 响应,但对象并未实际上被删除。

存储桶的策略对象具有必要的权限,例如:

{
    "Sid": "BucketACL",
    "Effect": "Allow",
    "Principal": {
        "AWS": "${my-apps-arn}"
    },
    "Action": "*",
    "Resource": "${my-buckets-arn}/*"
}

我什至尝试添加一个额外的存储桶 ACL 语句,该语句明确 添加s3:DeleteObject 操作,并允许它。

存储桶没有版本控制,所以我不认为这意味着我需要添加 拨打DeleteObjectVersion或类似电话。

非常感谢任何帮助或建议让我朝着正确的方向前进。

编辑:

还值得一提的是,my-apps-arn 是应用程序的单独 IAM 用户,其内联策略类似于:

{
    "Statement": [
        {
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "${my-bucket-arn}",
                "${my-bucket-arn}/*"
            ],
            "Effect": "Allow"
        }
    ]
}

** 编辑 2 **

更多信息,以下代码是我如何制作 请求:

:app_name
|> Application.get_env(:aws_bucket_name)
|> S3.delete_object(path)
|> ExAws.request()

其中path设置为要删除的对象。

相关EX_AWS配置变量设置如下:

config :ex_aws,
  access_key_id: ["${aws_key_id}"],
  secret_access_key: ["${aws_secret_key}"],
  s3: [
    host: "${s3-bucket-url}",
    region: "${region}"
  ]

此外,作为带外建议,我已尝试删除 通过 AWS CLI 工具使用相同凭证的对象,并且位于 事实上能够删除对象。所以这可能是一个客户问题之后 全部。

【问题讨论】:

  • 可能有很多东西。当您说主体是您的应用程序时,您的意思是什么?那是 IAM 角色还是 IAM 用户?还是您的 AWS 账户 ARN?如果它是 IAM 角色,我怀疑该角色未附加到您的实例。
  • @user602525:my-apps-arn 是应用程序的独立 IAM 用户。 Elixir 应用程序被赋予了一个访问密钥和秘密,因此,据我所知,它不应该是/a 角色未附加到实例的问题。用户还会获得一个内联策略,允许其访问存储桶。
  • 你能用 curl 删除吗?
  • 你试过用System.get_env/1访问操作系统变量吗?
  • @PatNowak:我不确定从System.get_env/1 访问变量会如何改变任何事情。需要明确的是,上面的符号只是一种非正式的方式来表示我正在替换 actual 值以实现安全性并匿名源,代码非常直接地使用这些值。

标签: amazon-s3 permissions elixir amazon-iam


【解决方案1】:

我后来改用aws_auth,它正确地为我签名请求并允许我删除 S3 中的对象。可能是ex_aws 中存在错误,或者更有可能是我试图错误地使用它。不过,使用aws_auth 更简单,更支持应用程序的工作流程,我会坚持下去。

【讨论】:

    猜你喜欢
    • 2022-12-27
    • 2017-07-27
    • 1970-01-01
    • 2021-04-26
    • 2021-03-30
    • 2020-09-05
    • 2022-06-10
    • 2013-07-26
    • 2015-08-08
    相关资源
    最近更新 更多