【问题标题】:Why do I get a 403 error when attempting to access AWS S3 from EC2为什么我在尝试从 EC2 访问 AWS S3 时收到 403 错误
【发布时间】:2016-02-10 07:57:35
【问题描述】:

我想使用 Spring Cloud AWS 从 Spring Boot 应用程序访问 S3。我在桌面上对 S3 的访问工作正常,但是当我将应用程序捆绑为 WAR 文件并部署到 EC2 Tomcat 容器时,出现 403 异常:

Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: 4F0EBE3A853C6D99)
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1078) ~[aws-java-sdk-core-1.9.27.jar:na]
    at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:726) ~[aws-java-sdk-core-1.9.27.jar:na]
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:461) ~[aws-java-sdk-core-1.9.27.jar:na]
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:296) ~[aws-java-sdk-core-1.9.27.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3737) ~[aws-java-sdk-s3-1.9.27.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1028) ~[aws-java-sdk-s3-1.9.27.jar:na]
    at org.springframework.cloud.aws.core.io.s3.SimpleStorageResource.getObjectMetadata(SimpleStorageResource.java:182) ~[spring-cloud-aws-core-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.cloud.aws.core.io.s3.SimpleStorageResource.exists(SimpleStorageResource.java:112) ~[spring-cloud-aws-core-1.0.2.RELEASE.jar:1.0.2.RELEASE]

我有一个 application.yml,我在其中定义了对 AWS 的访问:

cloud:
    aws:
        region:
            static: eu-west-1
            auto: false
        credentials:
            accessKey: myaccesskey
            secretKey: somereallylongkeyhere
            instanceProfile: true

这在我的桌面上运行良好。我需要做什么才能完成这项工作?我已尝试打开我在 S3 中可以看到的所有权限,但我似乎无法解决这个问题。

【问题讨论】:

  • 听起来您配置了 AWS 凭证,因此很可能是您的 EC2 实例的网络配置存在问题。您的实例是否有公共 IP 地址?您的实例是否属于具有受限出站规则的安全组?
  • 是的,它有一个公共 IP 和完整的入站/出站访问权限。 403 让我觉得它是一个凭证问题 - 当资源文件被打包到 WAR 中时,它们会发生什么有趣的事情吗?

标签: amazon-web-services amazon-s3 amazon-ec2 spring-boot


【解决方案1】:

我有一个类似的问题,罪魁祸首是过时的系统时钟。 EC2 实例有时会漂移,IAM API 对此非常敏感。相关信息可以在这里找到:https://github.com/boto/boto/issues/2885

【讨论】:

  • 请分享来自该链接的一些信息。否则,当链接被删除时,您的帖子将变得毫无用处
猜你喜欢
  • 2021-12-01
  • 2013-05-25
  • 2019-12-21
  • 2015-07-31
  • 2020-02-13
  • 2015-04-09
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
相关资源
最近更新 更多