当前位置: 首页 > 知识库问答 >
问题:

对具有预签名URL的S3 PUT请求的访问被拒绝

锺离德运
2023-03-14

我正试图用预签名的URL直接上传一个文件到S3 bucket,但在PUT请求上出现AccessDenied(403 Plibended)错误。

附注。忘了补充。我已经尝试添加s3:putObjects3:putObjectacl以及principal:*并且在本例中上载工作正常,但是如何限制上载的访问?它应该只适用于预签名的URL,对吗?

共有1个答案

范弘亮
2023-03-14

好吧,我想好了怎么修了。以下是步骤:

  1. 主体:*替换为“主体”:{“aws”:“arn:aws:iam::user-id:user/username”}。而不是user-id:user/username,放入您可以在Amazon IAM部分找到的需要的用户凭据。欲了解有关主体的更多信息,请访问:https://docs.aws.amazon.com/iam/latest/userguide/reference_policies_elements_principal.html.
  2. 请确保您在principal中指定的用户对所需的存储桶具有s3:putObjects3:putObjectacl权限。
  3. 检查lambda的函数权限。它还应该具有s3:putObjects3:putObjectacl作为所需的桶。您可以在IAM角色页面(如果您为Lambda函数创建了单独的角色)或通过函数设计器页面(只读)
  4. 进行检查
 类似资料:
  • 我设置了以下信息: 创建了AWS S3存储桶并将一些映像上载到特定文件夹 创建了AWS CloudFront web发行版: 来源域名:从列表中选择的S3 bucket 限制存储桶访问:是 来源访问标识:选定的已有标识 授予桶的读取权限:是,更新桶策略 拒绝访问

  • 我正在按照这个链接创建我的第一个docker映像,它成功了,现在我正在尝试从这个链接将此映像推送到我的docker存储库中。但是每当我试图将此映像推送到存储库时,我都会遇到此类错误。 注意:我已成功登录docker

  • 我按照这个链接创建我的第一个docker映像,它成功了,现在我正试图从这个链接将这个映像推送到我的docker存储库中。但每当我试图将此图像推入存储库时,就会出现这种类型的错误。 有人能给我一些关于这个问题的提示吗?任何帮助都将不胜感激。 注意:我已成功登录docker

  • 我正在开发一个必须访问访问者文件系统的Java小程序,所以我压缩了我的

  • 问题内容: 通过将此Applet与JDBC结合使用,我将获得以下错误 问题答案: 如果不采取措施为小程序赋予适当的权限,您将无法在小程序中运行JDBC。Oracle 的本教程详细介绍了该主题。

  • 我正试图使用一个以S3 bucket为起点的Cloudfront私有发行版来提供内容。 我的存储桶中有一个图像文件,用于测试目的,其权限设置为私有。我已经设置了我的存储桶策略,因此Cloudfront Origin Access Idbody具有获得权限 当我将Cloudfront发行版设置为public(不使用签名URL)时,它可以正常工作。该对象不能通过直接S3链接访问,但可以使用Cloudf