自2024年7月31日起, Amazon SDK for Java 1.x已进入维护模式,并将于2025年12月31日end-of-support
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置用于开发的 Amazon 临时凭证和 Amazon Web Services 区域
要使用Amazon SDK for Java 连接到任何支持的服务,您必须提供 Amazon 临时凭证。Amazon SDK 和 CLI 使用提供程序链 在许多不同的位置(包括系统/用户环境变量和本地 Amazon 配置文件)查找 Amazon 临时凭证。
本主题提供有关使用Amazon SDK for Java 为本地应用程序开发设置 Amazon 临时凭证的基本信息。如果您需要设置用于 EC2 实例的凭证或如果您使用 Eclipse IDE 进行开发,请改为参考以下主题:
-
在使用 EC2 实例时,您需要创建一个 IAM 角色,然后向该角色授予对 EC2 实例的访问权,如使用 IAM 角色授予对 Amazon EC2 上的 Amazon 资源的访问权中所述。
-
使用 Amazon Toolkit for Eclipse
在 Eclipse 中设置 Amazon 凭证。有关更多信息,请参阅《Amazon Toolkit for Eclipse User Guide》中的 Set up Amazon Credentials。
配置临时凭证
虽然可通过多种方式为 Amazon SDK for Java 配置临时凭证,但建议使用以下方式:
-
在本地系统上的 Amazon 凭证配置文件中设置临时凭证,该配置文件位于:
-
~/.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 角色。
使用这些方法之一设置了 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 区域名称。