【发布时间】:2017-05-13 20:46:45
【问题描述】:
我需要限制对对象存储中文件的访问。
是否可以只为选定的 IP 打开对象存储 CDN?
或者是否存在任何其他方法允许从对象存储下载文件而无需从所选 IP 进行身份验证?
【问题讨论】:
我需要限制对对象存储中文件的访问。
是否可以只为选定的 IP 打开对象存储 CDN?
或者是否存在任何其他方法允许从对象存储下载文件而无需从所选 IP 进行身份验证?
【问题讨论】:
Softlayer 的对象存储基于 OpenStack。据我所知,在 OpenStack 中没有只允许访问特定 IP 的选项。
您可以使用temporal URLs 允许不经身份验证下载文件,但它没有任何限制 IP 的选项(至少我不知道)。
我认为您可以向 openstack 论坛询问 IP 限制。如果这在 OpenStack 中是可能的,那么在 softlayer 对象存储中也应该是可能的。
问候
【讨论】:
由于 Object Storage 使用 s3,所以可以限制对象本身的 ACL。 例如,如果您使用的是 Amazon 的 Java SDK,您可以这样做:
AccessControlList acl = new AccessControlList();
acl.grantPermission(new CanonicalGrantee("d25639fbe9c19cd30a4c0f43fbf00e2d3f96400a9aa8dabfbbebe1906Example"), Permission.ReadAcp);
acl.grantPermission(GroupGrantee.AllUsers, Permission.Read);
acl.grantPermission(new EmailAddressGrantee("user@email.com"), Permission.WriteAcp);
File file = new File(uploadFileName);
s3client.putObject(new PutObjectRequest(bucketName, keyName, file).withAccessControlList(acl));
http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-java-sdk.html
【讨论】: