设置用于开发的 Amazon 临时凭证和 Amazon Web Services 区域 - Amazon SDK for Java 1.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

我们宣布了即将推出 end-of-support 的 Amazon SDK for Java (v1)。建议您迁移到 Amazon SDK for Java v2。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

设置用于开发的 Amazon 临时凭证和 Amazon Web Services 区域

要使用Amazon SDK for Java 连接到任何支持的服务,您必须提供 Amazon 临时凭证。Amazon SDK 和 CLI 使用提供程序链 在许多不同的位置(包括系统/用户环境变量和本地 Amazon 配置文件)查找 Amazon 临时凭证。

本主题提供有关使用Amazon SDK for Java 为本地应用程序开发设置 Amazon 临时凭证的基本信息。如果您需要设置用于 EC2 实例的凭证或如果您使用 Eclipse IDE 进行开发,请改为参考以下主题:

配置临时凭证

虽然可通过多种方式为 Amazon SDK for Java 配置临时凭证,但建议使用以下方式:

  • 在本地系统上的 Amazon 凭证配置文件中设置临时凭证,该配置文件位于:

    • ~/.aws/credentials (在 Linux、macOS 或 Unix) 上

    • Windows 上的 C:\Users\USERNAME\.aws\credentials

    有关如何获取临时凭证的说明,请参阅本指南中的为 SDK 设置临时凭证

  • 设置 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN 环境变量。

    要在 Linux、macOS 或 Unix 上设置这些变量,请使用 :

    export AWS_ACCESS_KEY_ID=your_access_key_id export AWS_SECRET_ACCESS_KEY=your_secret_access_key export AWS_SESSION_TOKEN=your_session_token

    要在 Windows 上设置这些变量,请使用 :

    set AWS_ACCESS_KEY_ID=your_access_key_id set AWS_SECRET_ACCESS_KEY=your_secret_access_key set AWS_SESSION_TOKEN=your_session_token
  • 对于 EC2 实例,请指定一个 IAM 角色,然后向该角色授予对 EC2 实例的访问权。有关其工作方式的详细探讨,请参阅《Amazon EC2 用户指南(适用于 Linux 实例)》中的适用于 Amazon EC2 的 IAM 角色

使用这些方法之一设置了 Amazon 临时凭证后,Amazon SDK for Java 将使用默认凭证提供程序链自动加载这些凭证。有关在 Java 应用程序中使用 Amazon 凭证的其他信息,请参阅使用 Amazon 凭证

刷新 IMDS 凭证

Amazon SDK for Java 支持选择每 1 分钟在后台刷新 IMDS 凭证一次,无论凭证到期时间如何。这可让您更频繁地刷新凭证,并减小未达到 IMDS 影响感知的 Amazon 可用性的几率。

1. // Refresh credentials using a background thread, automatically every minute. This will log an error if IMDS is down during 2. // a refresh, but your service calls will continue using the cached credentials until the credentials are refreshed 3. // again one minute later. 4. 5. InstanceProfileCredentialsProvider credentials = 6. InstanceProfileCredentialsProvider.createAsyncRefreshingProvider(true); 7. 8. AmazonS3Client.builder() 9. .withCredentials(credentials) 10. .build(); 11. 12. // This is new: When you are done with the credentials provider, you must close it to release the background thread. 13. credentials.close();

设置 Amazon Web Services 区域

您应使用Amazon SDK for Java 设置将用于访问 Amazon 服务的默认 Amazon Web Services 区域。要获得最佳网络性能,请选择在地理位置上靠近您(或您的客户)的区域。有关每项服务的区域列表信息,请参阅《Amazon Web Services General Reference》中的 Regions and Endpoints

注意

如果您 选择区域,则默认情况下将使用 us-east-1。

您可以使用类似的方法设置凭证以设置默认 Amazon 区域:

  • 在本地系统上的 Amazon 配置文件中设置 Amazon Web Services 区域,该文件位于:

    • Linux、macOS 或 Unix 上的 ~/.aws/config

    • Windows 上的 C:\Users\USERNAME\.aws\config

    此文件应包含以下格式的行:

    +

    [default] region = your_aws_region

    +

    用所需的 Amazon Web Services 区域(例如“us-east-1”)替换 your_aws_region

  • 设置 AWS_REGION 环境变量。

    在 Linux、macOS 或 Unix 上,请使用

    export AWS_REGION=your_aws_region

    在 Windows 上,请使用

    set AWS_REGION=your_aws_region

    其中,your_aws_region 是所需的 Amazon Web Services 区域名称。