

 适用于 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) 以继续获得新功能、可用性改进和安全更新。

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

# 入门
<a name="getting-started"></a>

此部分提供有关如何安装、设置和使用 适用于 Java 的 AWS SDK 的信息。

**Topics**
+ [基本设置](signup-create-iam-user.md)
+ [如何获得 适用于 Java 的 AWS SDK](setup-install.md)
+ [使用构建工具](setup-build-tools.md)
+ [临时凭证和区域](setup-credentials.md)

# 要使用的基本设置 AWS 服务
<a name="signup-create-iam-user"></a>

## 概述
<a name="signup-create-iam-user-overview"></a>

要成功开发 AWS 服务 使用访问的应用程序 适用于 Java 的 AWS SDK，需要满足以下条件：
+ 您必须能够[登录 AWS IAM Identity Center中提供的 AWS 访问门户](#setup-awsaccount)。
+ 为软件开发工具包配置[的 IAM 角色的权限](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)必须允许访问您的应用程序所需的权限。 AWS 服务 与**PowerUserAccess** AWS 托管策略关联的权限足以满足大多数开发需求。
+ 包含以下元素的开发环境：
  + 通过以下方式设置的[共享配置文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)：
    + 该`config`文件包含一个默认配置文件，该配置文件指定 AWS 区域.
    + `credentials` 文件包含作为默认配置文件一部分的临时凭证。
  + 一个合适的 [Java 安装](#java-dg-java-env)。
  + 一种[构建自动化工具](setup-build-tools.md)，例如 [Maven](https://maven.apache.org/download.cgi) 或 [Gradle](https://gradle.org/install/)。
  + 用于处理代码的文本编辑器。
  + （可选，但建议使用）IDE（集成开发环境），例如 [IntelliJ ID](https://www.jetbrains.com/idea/download/#section=windows) EA、[Eclipse 或](https://www.eclipse.org/ide/)。[NetBeans](https://netbeans.org/downloads/)

    使用 IDE 时，还可以集成 AWS Toolkit，以便更轻松地使用 AWS 服务。[AWS Toolkit for IntelliJ](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html) 和 [AWS Toolkit for Eclipse](https://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/welcome.html) 是两个可用于 Java 开发的工具包。

**重要**  
本设置部分中的说明假设您或组织使用 IAM Identity Center。如果您的组织使用独立于 IAM Identity Center 运行的外部身份提供商，请了解如何获取临时凭证以供适用于 Java 的 SDK 使用。按照[以下说明](#setup-temp-creds)向 `~/.aws/credentials` 文件添加临时凭证。  
如果您的身份提供商自动向 `~/.aws/credentials` 文件添加临时凭证，请确保配置文件名称为 `[default]`，这样您就无需向 SDK 或 AWS CLI提供配置文件名称。

## AWS 访问门户的登录能力
<a name="setup-awsaccount"></a>

 AWS 访问门户是您手动登录 IAM 身份中心的网址。URL 的格式为 `d-xxxxxxxxxx.awsapps.com/start` 或 `your_subdomain.awsapps.com/start`。

如果您不熟悉 AWS 访问门户，请按照 AWS SDKs 和工具参考指南中 [IAM Identity Center 身份验证主题步骤 1](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html#idcGettingStarted) 中的账户访问指南进行操作。请勿执行步骤 2，因为 适用于 Java 的 AWS SDK 1.x 不支持步骤 2 所描述的 SDK 的自动令牌刷新和自动检索临时证书。

## 设置共享配置文件
<a name="setup-shared-config-files"></a>

共享的配置文件位于您的开发工作站上，包含所有 AWS SDKs 和 AWS Command Line Interface (CLI) 使用的基本设置。共享配置文件可以包含[许多设置](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html)，但本说明用于设置使用 SDK 所需的基本元素。

### 设置共享 `config` 文件
<a name="setup-shared-config-files-conf"></a>

以下示例展示了共享 `config` 文件的内容。

```
[default]
region=us-east-1
output=json
```

出于开发目的，请使用离你计划运行代码的地方 AWS 区域 [最近](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)的。有关可在 `config` 文件中使用的[区域代码的列表](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes)，请参阅 Amazon Web Services 一般参考 指南。输出格式的 `json` 设置是[几个可能的值](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html)之一。

按照[此部分中](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)的指导创建 `config` 文件。

### 为 SDK 设置临时凭证
<a name="setup-temp-creds"></a>

通过访问门户 AWS 访问 AWS 账户 和 IAM 角色后，请使用临时证书配置您的开发环境以供开发工具包访问。

**使用临时凭证设置本地 `credentials` 文件的步骤**

1. [创建共享 `credentials` 文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)。

1. 在 `credentials` 文件中，粘贴以下占位符文本，直到粘贴有效的临时凭证为止。

   ```
   [default]
   aws_access_key_id=<value from AWS access portal>
   aws_secret_access_key=<value from AWS access portal>
   aws_session_token=<value from AWS access portal>
   ```

1. 保存该文件。该 `~/.aws/credentials` 文件现在应该存在于您的本地开发系统上。此文件包含 [[默认] 配置文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)，如果未指定特定的命名配置文件，则适用于 Java 的 SDK 将使用该配置文件。

1. [登录 AWS 访问门户](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html)。

1. 按照[手动刷新凭证](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials)标题下的说明从 AWS 访问门户复制 IAM 角色证书。

   1. 对于链接的说明中的步骤 4，选择可授予访问权限以满足您的开发需求的 IAM 角色名称。此角色的名称通常类似于**PowerUserAccess**或**开发人员**。

   1. 对于步骤 7，选择**将配置文件手动添加到您的 AWS 凭证文件**选项并复制内容。

1. 将复制的凭证粘贴到您的本地 `credentials` 文件中，并移除所有已粘贴的配置文件名称。您的文件应类似于以下内容：

   ```
   [default]
   aws_access_key_id=AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
   ```

1. 保存 `credentials` 文件

当适用于 Java 的 SDK 创建服务客户端时，它将访问这些临时凭证并将它们用于每个请求。在步骤 5a 中选择的 IAM 角色的设置决定了[临时凭证的有效时间](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)。最长持续时间为 12 小时。

在临时凭证过期后，重复步骤 4 到 7。

## 安装 Java 开发环境
<a name="java-dg-java-env"></a>

 适用于 Java 的 AWS SDK V1 需要 Java 7 JDK 或更高版本，并且支持所有 Java LTS（长期支持）JDK 版本。如果您使用 SDK 版本 1.12.767 或更早版本，则可以使用 Java 7，但是如果您使用 SDK 版本 1.12.768 或更高版本，则需要 Java 8。[Maven 中央存储库](https://central.sonatype.com/artifact/com.amazonaws/aws-java-sdk-bom)列出了适用于 Java 的 SDK 的最新版本。

 适用于 Java 的 AWS SDK [https://developers.redhat.com/products/openjdk/overview](https://developers.redhat.com/products/openjdk/overview)

# 如何获得 适用于 Java 的 AWS SDK
<a name="setup-install"></a>

## 先决条件
<a name="prerequisitesinstall"></a>

要使用 适用于 Java 的 AWS SDK，您必须具备：
+ 您必须能够[登录 AWS IAM Identity Center中提供的 AWS 访问门户](signup-create-iam-user.md#setup-awsaccount)。
+ 一个合适的 [Java 安装](signup-create-iam-user.md#java-dg-java-env)。
+ 在您的本地共享 `credentials` 文件中设置的临时凭证。

有关如何进行设置以使用适用于 Java 的 SDK 的说明，请参阅[要使用的基本设置 AWS 服务](signup-create-iam-user.md)主题。

## 使用构建工具管理适用于 Java 的 SDK 的依赖项（推荐）
<a name="include-sdk"></a>

建议在项目中使用 Apache Maven 或 Gradle 来访问适用于 Java 的 SDK 所需的依赖项。 [本部分](setup-build-tools.md)说明如何使用这些工具。

## 下载并解压缩 SDK（不推荐）
<a name="download-and-extract-sdk"></a>

建议使用构建工具来访问项目的 SDK，但您也可以下载最新版 SDK 的预构建 jar。

**注意**  
有关如何下载和构建开发工具包旧版本的信息，请参阅[安装开发工具包的旧版本](#install-prev-sdk)。

1. 从 [https://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip](https://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip) 下载软件开发工具包。

1. 下载开发工具包之后，将内容提取到本地目录中。

开发工具包包含以下目录：
+  `documentation` – 包含 API 文档（同时在 Web 上提供：[适用于 Java 的 AWS SDK API Reference](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/)）。
+  `lib` – 包含 SDK `.jar` 文件。
+  `samples` – 包含说明如何使用 SDK 的实用示例代码。
+  `third-party/lib` – 包含 SDK 使用的第三方库，例如 Apache Commons 日志记录、AspectJ 和 Spring 框架。

要使用开发工具包，将完整路径添加到 `lib`，并将 `third-party` 目录添加到编译文件中的依赖项，然后将它们添加到 java `CLASSPATH` 以运行代码。

## 从源代码构建 SDK 的早期版本（不推荐）
<a name="install-prev-sdk"></a>

预建表单中仅提供完整 SDK 的最新版本，作为可下载 jar。不过，可使用 Apache Maven（开源）构建开发工具包的旧版本。Maven 将一步完成下载所有必需的依赖项、构建和安装开发工具包。有关安装说明和更多信息，请访问 [http://maven.apache.org/](http://maven.apache.org/)。

1. 前往 SDK 的 GitHub 页面，网址为:[适用于 Java 的 AWS SDK (GitHub)](https://github.com/aws/aws-sdk-java)。

1. 选择与所需开发工具包的版本号对应的标签。例如 `1.6.10`。

1. 单击 **Download Zip** 按钮下载选择的开发工具包版本。

1. 将文件解压缩到开发系统中的一个目录中。在很多系统中，可使用自己的图形文件管理器执行该操作，或在终端窗口中使用 `unzip` 实用程序。

1. 在终端窗口中，导航到将开发工具包源文件解压缩的目录。

1. 使用以下命令构建并安装开发工具包 ([Maven](https://maven.apache.org/) 需要)：

   ```
   mvn clean install -Dgpg.skip=true
   ```

   生成的 `.jar` 文件会构建到 `target` 目录中。

1. (可选) 使用以下命令构建 API 参考文档：

   ```
   mvn javadoc:javadoc
   ```

   该文档构建到 `target/site/apidocs/` 目录中。

# 使用构建工具
<a name="setup-build-tools"></a>

使用构建工具有助于管理 Java 项目的开发。有几种构建工具可用，但我们将演示如何使用 Maven 和 Gradle 这两种流行的构建工具来启动和运行。本主题介绍如何使用这两种构建工具管理项目所需的适用于 Java 的 SDK 依赖项。

**Topics**
+ [将 SDK 与 Apache Maven 结合使用](setup-project-maven.md)
+ [将 SDK 与 Gradle 结合使用](setup-project-gradle.md)

# 将 SDK 与 Apache Maven 结合使用
<a name="setup-project-maven"></a>

您可以使用 [Apache Maven](https://maven.apache.org/) 配置和构建适用于 Java 的 AWS SDK项目或构建开发工具包本身。

**注意**  
您必须安装 Maven 才能使用本主题中的指导信息。如果尚未安装 Maven，请访问 [http://maven.apache.org/](http://maven.apache.org/) 下载并进行安装。

## 创建新的 Maven 软件包
<a name="create-a-new-maven-package"></a>

要创建基本的 Maven 软件包，请打开终端 (命令行) 窗口并运行：

```
mvn -B archetype:generate \
  -DarchetypeGroupId=org.apache.maven.archetypes \
  -DgroupId=org.example.basicapp \
  -DartifactId=myapp
```

将 *org.example.basicapp* 替换为您的应用程序的完整软件包命名空间，将 *myapp* 替换为项目的名称 (这将变为项目的目录名称)。

默认情况下，使用 [quickstart](http://maven.apache.org/archetypes/maven-archetype-quickstart/) 原型为您创建项目模板，该原型是许多项目的绝佳起点。还提供了更多原型；有关随该软件打包的原型的列表，请访问 [Maven archetypes](https://maven.apache.org/archetypes/index.html) 页面。可以通过向 `-DarchetypeArtifactId` 命令中添加 `archetype:generate` 参数来选择要使用的特定原型。例如：

```
mvn archetype:generate \
  -DarchetypeGroupId=org.apache.maven.archetypes \
  -DarchetypeArtifactId=maven-archetype-webapp \
  -DgroupId=org.example.webapp \
  -DartifactId=mywebapp
```

**注意**  
《[Maven Getting Started Guide](https://maven.apache.org/guides/getting-started/)》中提供了有关创建和配置项目的详细信息。

## 将开发工具包配置为 Maven 依赖项
<a name="configuring-maven"></a>

要在项目中使用适用于 Java 的 AWS SDK，您需要在项目的 `pom.xml` 文件中将该工具包声明为依赖项。从 1.9.0 版开始，可以导入[单个组件](#configuring-maven-individual-components)或[整个开发工具包](#configuring-maven-entire-sdk)。

### 指定单独的开发工具包模块
<a name="configuring-maven-individual-components"></a>

要选择单个开发工具包模块，请使用适用于 Java 的 AWS SDK 的 Maven 材料清单 (BOM)，这将确保您指定的所有模块使用相同版本的开发工具包而且相互兼容。

要使用 BOM，请向应用程序的 `<dependencyManagement>` 文件中添加一个 `pom.xml` 部分，将 `aws-java-sdk-bom` 作为依赖项添加并指定要使用的开发工具包的版本：

```
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-bom</artifactId>
      <version>1.11.1000</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
```

要查看 Maven Central 中提供的最新版本的适用于 Java 的 AWS SDK BOM，请访问：[https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom](https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom)。您也可以使用此页查看项目 `<dependencies>` 文件的 `pom.xml` 部分中包括的 BOM 管理了哪些模块（依赖项）。

现在，可以从您的应用程序中所使用的开发工具包中选择单个模块。由于您已经在 BOM 中声明了开发工具包版本，因此无需为每个组件都指定版本号。

```
<dependencies>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-dynamodb</artifactId>
  </dependency>
</dependencies>
```

还可以参考 * AWS 代码示例目录 * 来了解要用于给定 AWS 服务的依赖项。请参阅特定的服务示例下的 POM 文件。例如，如果您想了解 AWS S3 服务的依赖项，请参阅 GitHub 上的[完整示例](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/GetAcl.java)。（查看 /java/example\$1code/s3 下的 pom）。

### 导入所有开发工具包模块
<a name="configuring-maven-entire-sdk"></a>

如果您想将*整个*开发工具包作为一个依赖项拉入，请勿使用 BOM 方法，而只需在 `pom.xml` 中声明该开发工具包，如下所示：

```
<dependencies>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.11.1000</version>
  </dependency>
</dependencies>
```

## 重新构建项目。
<a name="build-your-project"></a>

在设置项目之后，可以使用 Maven 的 `package` 命令进行构建：

```
mvn package
```

这会在 `0jar` 目录中创建 `target` 文件。

## 使用 Maven 构建开发工具包
<a name="building-with-maven"></a>

可以使用 Apache Maven 从源构建开发工具包。为此，请[从 GitHub 下载开发工具包代码](https://github.com/aws/aws-sdk-java)，在本地解压缩，然后执行下面的 Maven 命令：

```
mvn clean install
```

# 将 SDK 与 Gradle 结合使用
<a name="setup-project-gradle"></a>

要管理 [Gradle](https://gradle.com/) 项目的 SDK 依赖关系，请将的 Maven BOM 导 适用于 Java 的 AWS SDK 入到应用程序的文件中。`build.gradle`

**注意**  
在以下示例中，将生成文件*1.12.529*中的替换为的有效版本 适用于 Java 的 AWS SDK。在 [Maven Central 存储库](https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom/latest)中查找最新版本。

## Gradle 4.6 或更高版本的项目设置
<a name="project-setup-for-gradle-4-6-or-higher"></a>

 [自 Gradle 4.6 开始](https://docs.gradle.org/4.6/release-notes.html#bom-import)，通过声明针对 BOM 的依赖项，便可以使用 Gradle 的经过改进的 POM 支持功能来导入材料清单 (BOM) 文件。

1. 如果您使用的是 Gradle 5.0 或更高版本，请跳至步骤 2。否则，请在 `settings.gradle` 文件中启用 *IMPROVED\$1POM\$1SUPPORT* 功能。

   ```
   enableFeaturePreview('IMPROVED_POM_SUPPORT')
   ```

1. 将 BOM 添加到应用程序 `build.gradle` 文件的 *dependencies* 部分。

   ```
   ...
   dependencies {
       implementation platform('com.amazonaws:aws-java-sdk-bom:1.12.529')
   
       // Declare individual SDK dependencies without version
       ...
   }
   ```

1. 在 *dependencies* 部分中指定要使用的开发工具包模块。例如，以下内容包含 Amazon Simple Storage Service (Amazon S3) 的依赖关系。

   ```
   ...
   dependencies {
       implementation platform('com.amazonaws:aws-java-sdk-bom:1.12.529')
       implementation 'com.amazonaws:aws-java-sdk-s3'
       ...
   }
   ```

Gradle 会自动使用 BOM 中的信息来解析开发工具包依赖项的正确版本。

以下是包含依赖项的完整`build.gradle`文件的示例 Amazon S3。

```
group 'aws.test'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
  mavenCentral()
}

dependencies {
  implementation platform('com.amazonaws:aws-java-sdk-bom:1.12.529')
  implementation 'com.amazonaws:aws-java-sdk-s3'
}
```

**注意**  
在前面的示例中，将的 Amazon S3 依赖关系替换为您将在项目中使用的 AWS 服务的依赖关系。由 适用于 Java 的 AWS SDK BOM 管理的模块（依赖关系）列在 M [aven 中央存储库中](https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom/latest)。

## 用于 4.6 之前的 Gradle 版本的项目设置
<a name="project-setup-for-gradle-versions-earlier-than-4-6"></a>

早于 4.6 的 Gradle 版本缺少本机 BOM 支持。要管理项目的 适用于 Java 的 AWS SDK 依赖关系，请使用 Spring 的 Gradle [依赖关系管理插件](https://github.com/spring-gradle-plugins/dependency-management-plugin)导入 SDK 的 Maven BOM。

1. 向应用程序的 `build.gradle` 文件添加依赖项管理插件。

   ```
   buildscript {
       repositories {
           mavenCentral()
       }
       dependencies {
           classpath "io.spring.gradle:dependency-management-plugin:1.0.9.RELEASE"
       }
   }
   
   apply plugin: "io.spring.dependency-management"
   ```

1. 将 BOM 添加到该文件的 *dependencyManagement* 部分。

   ```
   dependencyManagement {
       imports {
           mavenBom 'com.amazonaws:aws-java-sdk-bom:1.12.529'
       }
   }
   ```

1. 在 *dependencies* 部分中指定您将使用的开发工具包模块。例如，以下内容包含 Amazon S3的依赖项。

   ```
   dependencies {
       compile 'com.amazonaws:aws-java-sdk-s3'
   }
   ```

Gradle 会自动使用 BOM 中的信息来解析开发工具包依赖项的正确版本。

以下是包含依赖项的完整`build.gradle`文件的示例 Amazon S3。

```
group 'aws.test'
version '1.0'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
  mavenCentral()
}

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath "io.spring.gradle:dependency-management-plugin:1.0.9.RELEASE"
  }
}

apply plugin: "io.spring.dependency-management"

dependencyManagement {
  imports {
    mavenBom 'com.amazonaws:aws-java-sdk-bom:1.12.529'
  }
}

dependencies {
  compile 'com.amazonaws:aws-java-sdk-s3'
  testCompile group: 'junit', name: 'junit', version: '4.11'
}
```

**注意**  
在前面的示例中，将的 Amazon S3 依赖关系替换为您将在项目中使用的 AWS 服务的依赖关系。由 适用于 Java 的 AWS SDK BOM 管理的模块（依赖关系）列在 M [aven 中央存储库中](https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom/latest)。

有关使用 BOM 指定开发工具包依赖项的更多信息，请参阅[将开发工具包与 Apache Maven 一起使用](setup-project-maven.md)。

# 设置 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 区域 