AWS SDK for Java 1.x于2025年12月31日达到支撑终止状态。我们建议您迁移到 AWS SDK for Java 2.x 以继续获得新功能、可用性改进和安全更新。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 AWS 临时证书和 AWS 区域 用于开发
要使用连接到任何支持的服务 AWS SDK for Java,您必须提供 AWS 临时证书。 AWS SDKs 和 CLIs 使用提供者链在许多不同的位置查找 AWS 临时证书,包括 system/user 环境变量和本地 AWS 配置文件。
本主题提供有关使用设置用于本地应用程序开发的 AWS 临时证书的基本信息 AWS SDK for Java。如果您需要设置用于 EC2 实例的凭证或如果您使用 Eclipse IDE 进行开发,请改为参考以下主题:
-
使用 EC2 实例时,创建一个 IAM 角色,然后授予您的 EC2 实例访问该角色的权限,如上的 “使用 IAM 角色授予 AWS 资源访问权限” 中所示 Amazon EC2。
-
使用在 Eclipse 中设置 AWS 凭据。AWS Toolkit for Eclipse
有关更多信息,请参阅《AWS Toolkit for Eclipse 用户指南》中的 “设置 AWS 凭据”。
配置临时凭证
您可以通过多种 AWS SDK for Java 方式为配置临时证书,但以下是推荐的方法:
-
在本地系统的凭 AWS 证配置文件中设置临时证书,该文件位于:
-
~/.aws/credentials(在 Linux、macOS 或 Unix) 上 -
Windows 上的
C:\Users\USERNAME\.aws\credentials
有关如何获取临时凭证的说明,请参阅本指南中的为 SDK 设置临时凭证。
-
-
设置
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_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 角色。
使用其中一种方法设置 AWS 临时证书后,将使用默认的凭证提供程序链自动加载这些证书。 AWS SDK for Java 有关在 Java 应用程序中使用 AWS 凭据的更多信息,请参阅使用 AWS 凭据。
刷新 IMDS 凭证
AWS SDK for Java 支持选择加入每隔 1 分钟在后台刷新 IMDS 凭证,无论凭证到期时间如何。这使您可以更频繁地刷新凭证,并减少未到达 IMDS 影响感知 AWS 可用性的可能性。
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();
设置 AWS 区域
您应该设置一个默认值 AWS 区域 ,该默认值将用于访问 AWS 服务 AWS SDK for Java。要获得最佳网络性能,请选择在地理位置上靠近您(或您的客户)的区域。有关每项服务的区域列表,请参阅 Amazon Web Services 一般参考中的区域和终端节点。
注意
如果您未 选择区域,则默认情况下将使用 us-east-1。
您可以使用与设置凭据类似的方法来设置默认 AWS 区域:
-
AWS 区域 在本地系统的 AWS 配置文件中进行设置,该文件位于:
-
Linux、macOS 或 Unix 上的 ~/.aws/config
-
Windows 上的 C:\Users\USERNAME\.aws\config
此文件应包含以下格式的行:
+
[default] region = your_aws_region+
用你想要的 AWS 区域 (例如 “us-east-1”)代替你的 _aws_region。
-
-
设置
AWS_REGION环境变量。在 Linux、macOS 或 Unix 上,请使用
:export AWS_REGION=your_aws_region在 Windows 上,请使用
:set AWS_REGION=your_aws_region其中 y our_aws_region 是所需的名称。 AWS 区域