amazon-web-services - 从 Java 程序访问 Amazon S3
问题描述
我有一个 Java 程序,它需要访问 Amazon S3 才能将一些文件放在那里。请注意,这个 Java 程序正在我的桌面上运行(而不是在 EC2 中)。使用凭证访问 Amazon S3 的最佳安全方式是什么?以下是我知道的方式。
使用访问令牌和秘密
一种。在 sdk 属性文件中
湾。作为环境变量
C。在命令行系统属性中
d。程序中直接硬编码
当然,出于安全原因,我更喜欢选项 b 和 c。
这里是否有基于角色的权限?我的理解是这是不可能的,因为我的 Java 程序在 AWS 不知道的外部机器上运行。
还有其他可能的访问方式吗?
提前致谢。
解决方案
使用 AWS SDK for Java V2 时,请参阅AWS SDK for Java Developer Guide V2。本开发人员指南包含大量可以回答此类问题的信息。
要了解凭据的工作原理,请参阅此主题:
Github 中的所有 AWS 示例都假定凭证是从凭证文件加载的。如文档中所述,凭证文件位于
- Windows - C:\Users<yourUserName>.aws\credentials
- Linux、macOS、Unix - ~/.aws/credentials
请参阅本主题,该主题将向您展示如何使用 Amazon S3 API 启动和运行 - 包括设置您的凭证。
Amazon S3 Java API 具有诸如pubObject之类的方法,可让您将对象放入 Amazon S3 存储桶中。
推荐阅读
- javascript - javascript在特定日期之前和之后获取2天
- c# - .NET/C# 客户端证书身份验证和模拟
- macos - 如何从分离的硬盘中检索 os_log 消息?
- linux - 正确捕获退出代码并在故障点退出脚本
- python - 使用 Selenium 和 CSS 查找阴影 DOM 文本
- google-cloud-platform - GCP BigQuery 日历表 - 去年的对应日期
- javascript - Label 在属性类型中时如何变化。示例代码如下
- excel - 在 Excel VBA 创建的 Word 文档中插入水印
- c# - C# - kernel32.dll 的 GetProcedureAddress 问题
- c++ - Code::Block - windows.h 无法正常工作