首页 > 解决方案 > 从 Java 程序访问 Amazon S3

问题描述

我有一个 Java 程序,它需要访问 Amazon S3 才能将一些文件放在那里。请注意,这个 Java 程序正在我的桌面上运行(而不是在 EC2 中)。使用凭证访问 Amazon S3 的最佳安全方式是什么?以下是我知道的方式。

  1. 使用访问令牌和秘密

    一种。在 sdk 属性文件中

    湾。作为环境变量

    C。在命令行系统属性中

    d。程序中直接硬编码

当然,出于安全原因,我更喜欢选项 b 和 c。

  1. 这里是否有基于角色的权限?我的理解是这是不可能的,因为我的 Java 程序在 AWS 不知道的外部机器上运行。

  2. 还有其他可能的访问方式吗?

提前致谢。

标签: amazon-web-servicesamazon-s3amazon-iamcloud-security

解决方案


使用 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 启动和运行 - 包括设置您的凭证。

开始使用适用于 Java 2.x 的 AWS 开发工具包

Amazon S3 Java API 具有诸如pubObject之类的方法,可让您将对象放入 Amazon S3 存储桶中。


推荐阅读