java - 签名的 Amazon s3 URL 可以安全共享吗?

标签 java amazon-s3 aws-sdk

我正在使用 Java 中的 aws sdk 从给定存储桶生成签名对象 URL。这些对象是我想使用以下代码生成签名 URL 的图像。

 URL url = amazonS3Client.generatePresignedUrl(generatePresignedUrlRequest);

以下是生成的 url 的示例

enter image description here

在 URL 中,最终用户和开发人员可以看到 AWS3AccessKeyId 和签名。有人有机会使用 url 中的信息对对象生成 PUT、DELTE 等操作吗?向我不认识的用户提供这些网址是否安全?

背景

我喜欢与人们分享图像和其他对象 URL,他们会在自己的网站中使用它们。例如,在网站中显示图像的 url,或用户可以从中下载文件的 url。

最佳答案

不,他们将无法使用这些 URL 执行您允许之外的任何操作。因此,如果您生成预签名 url 来获取特定的 S3 对象,他们将只能使用它来获取该 S3 对象。他们无法对 URL 进行逆向工程以使自己能够访问其他存储桶或对象。

关于java - 签名的 Amazon s3 URL 可以安全共享吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36849183/

相关文章:

java - 压缩数据并将其上传到 S3,而不将全部内容保存在内存中

java - 重用 PreparedStatement 实例的正确方法?

.net - 如何删除存储桶中某个对象的所有 "children"?

java - 自定义注释不适用于 spring Beans

amazon-s3 - 如何定义 AWS 策略声明的委托(delegate)人?

amazon-web-services - 在 React-Native 中使用 AWS Amplify 显示来自 S3 的图像

java - S3(java sdk)中Transfer Manager复制和复制s3 Client的Object功能之间的区别

java - java.lang.NoClassDefFoundError:无法解决以下问题:Lcom/fasterxml/jackson/databind/ObjectMapper

java - Geotools 找不到 HSQL EPSG DB,引发错误 : NoSuchAuthorityCodeException

java - 在 Java 中如何将对象标记为已完成(以便不会第二次调用 finalize 方法)?