amazon-web-services - 带有预签名URL的S3 PUT请求拒绝访问

标签 amazon-web-services amazon-s3

我正在尝试使用预先签名的URL将文件直接上传到S3存储桶,但在PUT请求上出现AccessDenied(禁止访问403)错误。

存储桶的CORS配置中允许PUT请求。

我还需要通过允许s3:PutObjects3:PutObjectAcl操作来更新存储桶策略吗?

P.S.忘记添加。我已经尝试过将s3:PutObjects3:PutObjectAclPrincipal: *添加在一起,在这种情况下,上传工作正常,但是如何限制上传的访问权限?它应该仅适用于预签名的URL,对吗?

最佳答案

好的,我想出了解决方法。步骤如下:

  • Principal: *替换"Principal": {"AWS":"arn:aws:iam::USER-ID:user/username"}。您可以在Amazon IAM部分中找到所需的用户凭证,而不是USER-ID:user/username。在此处阅读有关Principal的更多信息:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html
  • 确保您在Principal中指定的用户具有所需存储桶的s3:PutObjects3:PutObjectAcl权限。
  • 检查您的Lambda的功能权限。对于所需的存储桶,它还应该具有s3:PutObjects3:PutObjectAcl。您可以在IAM角色页面(如果您为Lambda函数创建了单独的角色)上或通过函数设计器页面(只读)进行检查

  • enter image description here

    关于amazon-web-services - 带有预签名URL的S3 PUT请求拒绝访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48340823/

    相关文章:

    amazon-web-services - 如何在AWS CloudWatch中解析混合文本和JSON日志条目以进行Log Metric Filter

    amazon-web-services - AWS Elastic Beanstalk 甚至一次都不会部署我的 Rails 应用程序

    amazon-web-services - S3 静态网站 : Return HTTP 410

    javascript - 获取图像 Node js的主色

    amazon-web-services - 在 CloudFormation 中获取 AWS::MSK::Configuration 的最新版本

    amazon-web-services - 在本地在 IntelliJ 中使用 Java 运行 AWS Lambda - 函数调用容器没有响应(Docker 有问题?)

    amazon-web-services - 持续监控 AWS 资源存在情况

    php - 亚马逊 S3 SDK : Change filename on download?

    hadoop - Lzo 文件不会在配置单元作业中拆分

    amazon-web-services - 用于 NodeJS 的 AWS-SDK : how to get credentials being used in program