我正在寻找在S3 S3中没有帐户的第三方访问AWS S3时需要遵循的最佳实践的解决方案。
在我的情况下,有REST接口需要提供图像链接。这些图像驻留在AWS S3上。根据调用者的身份,我们可以通过这种方式授予用户访问权限。我不想让存储桶的访问级别公开。
假如我们收到来自用户X的电话(可能是我们要求他们设置新的标题)我们允许他们访问存储桶。
由于此API是企业版,并且我们有合作伙伴使用此API,因此我们只希望一些已识别的呼叫者能够访问这些图片。
任何指针都会有很多帮助。
答案 0 :(得分:1)
Signed S3 URL's,如果API在EC2,lambda等上运行,则只能通过IAM role访问您的API。
您的API将执行身份验证和授权,然后向调用者提供已签名的s3网址以下载图像。
为对象创建预签名URL时,必须提供安全凭据,指定存储桶名称,对象密钥,指定HTTP方法(下载对象的GET)以及到期日期和时间。预签名URL仅在指定的持续时间内有效。
任何收到预签名网址的人都可以访问该对象。对于 例如,如果您的存储桶中有视频,而且存储桶和存储桶都有 该对象是私有的,您可以与他人分享视频 生成预签名网址。