gpt4 book ai didi

java - 拒绝访问(服务: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: xxxxxxxxxxxxx)

转载 作者:行者123 更新时间:2023-12-01 10:02:40 28 4
gpt4 key购买 nike

我正在尝试使用在ec2上运行的tomcat上部署的应用程序访问s3存储桶。

我可以看到很多与此相关的帖子,但看起来大多数人都提示没有适当的访问权限。我可以正确访问所有存储桶,可以使用其他应用程序(例如jenkins s3插件)从另一个应用程序上传文件,而不会出现任何问题。我不知道为什么只有在tomcat上部署的Java Web应用程序才会发生这种情况。我已确认以下事项。

  • 使用IAM角色创建了ec2实例。
  • IAM角色具有对存储桶的写入权限。木偶脚本能够写入存储桶。
  • 尝试与其他应用程序一起检查IAM角色,并且在没有任何问题的情况下工作正常。

  • 根据我的理解,如果我在创建S3存储桶客户端(AmazonS3Client)时未指定任何凭证,它将默认使用IAM角色身份验证。

    这是我编写的用于测试权限的示例函数。
    public boolean checkWritePermission(String bucketName) {
    AmazonS3Client amazonS3Client=new AmazonS3Client();
    LOG.info("Checking bucket write permission.....");
    boolean hasWritePermissions = false;
    final ObjectMetadata metadata = new ObjectMetadata();
    metadata.setContentLength(0);
    // Create empty content
    final InputStream emptyContent = new ByteArrayInputStream(new byte[0]);
    // Create a PutObjectRequest with test object
    final PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName,
    "TestDummy.txt", emptyContent, metadata);
    try {
    if (amazonS3Client.putObject(putObjectRequest) != null) {
    LOG.info("Permissions validated!");
    // User has write permissions, TestPassed.
    hasWritePermissions = true;

    }
    }
    catch (AmazonClientException s3Ex) {
    LOG.warn("Write permissions not available!", s3Ex.getMessage());
    LOG.error("Write permissions not available!", s3Ex);
    }
    return hasWritePermissions;
    }

    com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: xxxxxxxxxxxxxx).

    最佳答案

    不确定您是否已解决此问题;但是,如果您在存储分区上使用自定义KMS key ,并且您尝试访问的文件已使用该自定义 key 加密,则也会引发此错误。

    由于您仍然可以在S3存储桶中列出对象,因此有时会隐藏此问题。确保您的IAM策略包含kms解密权限。

    关于java - 拒绝访问(服务: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: xxxxxxxxxxxxx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39702234/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com