

 适用于 Java 的 AWS SDK 1.x于2025年 end-of-support 12月31日达到。我们建议您迁移到 [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) 以继续获得新功能、可用性改进和安全更新。

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

# 设置 AWS 临时证书和 AWS 区域 用于开发
<a name="setup-credentials"></a>

要使用连接到任何支持的服务 适用于 Java 的 AWS SDK，您必须提供 AWS 临时证书。 AWS SDKs 和 CLIs 使用*提供者链*在许多不同的位置查找 AWS 临时证书，包括 system/user 环境变量和本地 AWS 配置文件。

本主题提供有关使用设置用于本地应用程序开发的 AWS 临时证书的基本信息 适用于 Java 的 AWS SDK。如果您需要设置用于 EC2 实例的凭证或如果您使用 Eclipse IDE 进行开发，请改为参考以下主题：
+ 使用 EC2 实例时，创建一个 IAM 角色，然后授予您的 EC2 实例访问该角色的权限，如[上的 “使用 IAM 角色授予 AWS 资源访问权限](java-dg-roles.md)” 中所示 Amazon EC2。
+ 使用在 Eclipse 中设置 AWS 凭据。[AWS Toolkit for Eclipse](https://aws.amazon.com/eclipse/)有关更多信息，请参阅《[AWS Toolkit for Eclipse 用户指南](https://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/)》中的 “[设置 AWS 凭据](https://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/setup-credentials.html)”。

## 配置临时凭证
<a name="setup-credentials-setting"></a>

您可以通过多种 适用于 Java 的 AWS SDK 方式为配置临时证书，但以下是推荐的方法：
+ 在本地系统的凭 AWS 证配置文件中设置临时证书，该文件位于：
  +  `~/.aws/credentials` (在 Linux、macOS 或 Unix) 上
  +  Windows 上的 `C:\Users\USERNAME\.aws\credentials`

  有关如何获取临时凭证的说明，请参阅本指南中的[为 SDK 设置临时凭证](signup-create-iam-user.md#setup-temp-creds)。
+ 设置 `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 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)。

使用其中一种方法设置 AWS 临时证书后，将使用默认的凭证提供程序链自动加载这些证书。 适用于 Java 的 AWS SDK 有关在 Java 应用程序中使用 AWS 凭据的更多信息，请参阅[使用 AWS 凭据](credentials.md)。

## 刷新 IMDS 凭证
<a name="refresh-credentials"></a>

 适用于 Java 的 AWS SDK 支持选择加入每隔 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 区域
<a name="setup-credentials-setting-region"></a>

您应该设置一个默认值 AWS 区域 ，该默认值将用于访问 AWS 服务 适用于 Java 的 AWS SDK。要获得最佳网络性能，请选择在地理位置上靠近您（或您的客户）的区域。有关每项服务的区域列表，请参阅 Amazon Web Services 一般参考中的[区域和终端节点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

**注意**  
如果您*未* 选择区域，则默认情况下将使用 us-east-1。

您可以使用与设置凭据类似的方法来设置默认 AWS 区域：
+  AWS 区域 在本地系统的 AWS 配置文件中进行设置，该文件位于：
  + Linux、macOS 或 Unix 上的 \$1/.aws/config
  + Windows 上的 C:\$1Users\$1USERNAME\$1.aws\$1config

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

  \$1

  ```
  [default]
  region = your_aws_region
  ```

  \$1

  *用你想要的 AWS 区域 （例如 “us-east-1”）代替你的 \$1aws\$1region。*
+ 设置 `AWS_REGION` 环境变量。

  在 Linux、macOS 或 Unix 上，请使用 **``**：

  ```
  export AWS_REGION=your_aws_region
  ```

  在 Windows 上，请使用 **``**：

  ```
  set AWS_REGION=your_aws_region
  ```

  其中 y *our\$1aws\$1region 是所需的*名称。 AWS 区域 