本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置AWS临时证书并AWS 区域用于开发
要使用连接到任何支持的服务AWS SDK for Java,您必须提供AWS临时证书。SAWS DK 和 CLI 使用提供程序链在很多不同位置查找AWS临时凭证,包括系统/用户环境变量以及本地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 区域中设置,该文件位于:
-
~/.aws/con
-
Windows 上的 C:\Users\USERNAME\ .aws\ 配置
此文件应包含以下格式的行:
+
[default] region = your_aws_region
+
用你想要的AWS 区域(例如,“us-east-1”)代替你的 _aws_region。
-
-
设置
AWS_REGION
环境变量。在 Linux
export AWS_REGION=your_aws_region
在 Windows 上,请使用
:
set AWS_REGION=your_aws_region
其中,您的 aws_re gion 是所需的AWS 区域名称。