我们有一个 Java 产品,它可以从 Amazon S3 放置和获取数据。我们已经通过使用 Amazon SDK for Java 成功实现了一个负责该任务的类。
但是,据我所知,要通过库与 Amazon S3 交互,您必须AmazonS3Client
通过提供访问密钥和密钥来实例化一个对象。
即使这种技术可以通过使用 Amazon IAM 相对安全,并将密钥的访问权限限制在您想要提取和放置数据的特定 S3 存储桶中,但从某种意义上说,它仍然是一个安全漏洞,有人可以反编译您的应用程序以提取密钥并使用它们来访问您的存储桶的数据。
有没有更安全的方法来做到这一点?我们可以避免在应用程序中嵌入 AWS 凭证吗?我们可以对我们的服务器进行 REST 调用以对请求进行签名(并保持密钥保密)吗?