当我在java中将我的userdocumentseoMap到userdocumentsdto时,我得到了像https://s3.amazonaws.com/approves3/44/IMG_0189.jpg这样的文档上传URL。任何人都可以打开此链接,无论用户是否是我网站的成员。这不安全。如何保护?
userdocumentseo
userdocumentsdto
https://s3.amazonaws.com/approves3/44/IMG_0189.jpg
e0bqpujr1#
AWS提供good documentation,说明如何使用CloudFront为S3资产实施身份验证。
vfwfrxfs2#
此答案假定您只允许应用程序用户访问资源。如果不是这样,你可能需要问更具体的问题。这个链接可以打开任何人是否用户是我的网站的成员如果您将资源公开,则基本上允许任何未经身份验证的访问。不管你的应用程序或不。保护资源的默认(建议)方法是将对象设为私有,并使应用程序创建一个签名的(临时)URL。https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/examples-s3-presign.html
GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket(bucketName) .key(keyName) .build(); GetObjectPresignRequest getObjectPresignRequest = GetObjectPresignRequest.builder() .signatureDuration(Duration.ofMinutes(60)) .getObjectRequest(getObjectRequest) .build(); PresignedGetObjectRequest presignedGetObjectRequest = presigner.presignGetObject(getObjectPresignRequest); String theUrl = presignedGetObjectRequest.url().toString();
2条答案
按热度按时间e0bqpujr1#
AWS提供good documentation,说明如何使用CloudFront为S3资产实施身份验证。
vfwfrxfs2#
此答案假定您只允许应用程序用户访问资源。如果不是这样,你可能需要问更具体的问题。
这个链接可以打开任何人是否用户是我的网站的成员
如果您将资源公开,则基本上允许任何未经身份验证的访问。不管你的应用程序或不。
保护资源的默认(建议)方法是将对象设为私有,并使应用程序创建一个签名的(临时)URL。
https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/examples-s3-presign.html