我使用GoLang Fyne
and创建了一个桌面应用程序RClone
。我将使用RClonesync
和mount
S3 的功能,我不想将AWS access key
and存储Secret key
在我的桌面应用程序(最终用户桌面应用程序)或本地配置文件中。如何保护 RClone 以使其无需我将访问密钥 ID 和密钥 ID 存储在用户计算机或桌面应用程序(硬编码)中即可工作?S3 访问密钥和秘密密钥必须仅存储在我的服务器中。
我的方法:
- 桌面应用程序登录:修改我的后端登录 api 逻辑,使其返回加密的 AWS 访问密钥和 Secret。AWS 访问密钥和访问密钥将在桌面应用程序的运行时解密。
- 从我的登录 API 返回 AWS 签名并在 RClone/Desktop 应用程序 ( https://github.com/rclone/rclone/blob/master/backend/s3/v2sign.go ) 中使用该签名并使用该签名调用 s3 API (授权标头)。
- 无论如何我可以生成一个无风险的 AWS 访问令牌和密钥,它只能访问 AWS S3 存储桶中的一个文件夹?
RClone S3 连接代码:https ://github.com/rclone/rclone/tree/master/backend/s3