我想安全地将图像存储在 Amazon S3 或 AWS 中的其他地方。
我正在寻找类似于FireBase用户安全的解决方案。
在Firebase中,我想要实现的目标将是这样的:
// Only a user or admin can read and write their passport
match /users/{userId}/passport.png {
allow read: if request.auth != null && request.auth.uid == userId || request.auth.admin == true ;
allow write: if request.auth != null && request.auth.uid == userId || request.auth.admin == true;
}
谢谢!
S3 有很多途径可以探索,我在下面分解了它们。
授权
AWS 中的权限主要通过 IAM 控制。您将使用权限集创建策略,然后将其附加到 AWS 中的用户、组或角色。您的应用程序将使用用户或角色与 S3 API 通信。
S3 还支持存储桶策略,这些策略允许进一步基于条件的要求,例如源(VPC 终端节点、IP 地址等(,以锁定其他委托人(例如您的 IAM 用户甚至其他账户(可以使用的最大权限。
如果您需要锁定特定对象,则可以使用 S3 ACL 来应用权限。
传输中加密
S3 支持传输中加密。使用 S3 的 HTTPs 终端节点,您可以确保您的数据在遍历互联网时被加密。如果您希望将此通信保密,则可以使用 VPC 终端节点将所有通信保留在 AWS 主干中,从而增强此过程。
静态加密
S3 有许多加密静态数据的方法。选项如下:
- 上交所-S3
- 上交所-公里管理系统
- 上交所-C
- 客户端加密