

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

# AWS SDKs 和工具设置参考
<a name="settings-reference"></a>

SDKs 提供特定于语言的内容 APIs 。 AWS 服务它们负责成功进行 API 调用所需的一些繁重工作，包括身份验证、重试行为等。为此， SDKs 他们需要制定灵活的策略来获取用于您的请求的凭证，维护用于每项服务的设置，以及获取用于全局设置的值。

以下章节介绍了有关配置设置的详细信息：
+ [AWS SDKs 和 Tools 标准化凭证提供商](standardized-credentials.md)— 通用凭证提供商在多个 SDKs证书提供者之间实现标准化。
+ [AWS SDKs 和 “工具” 标准化功能](standardized-features.md)— 通用功能跨多个标准化 SDKs。

## 创建服务客户端
<a name="creatingServiceClients"></a>

 要以编程方式访问 AWS 服务， SDKs 请分别 AWS 服务使用客户端 class/object 。例如，如果您的应用程序需要访问亚马逊 EC2，则您的应用程序会创建一个 Amazon EC2 客户端对象来与该服务接口。然后，您可以使用服务客户端向该 AWS 服务发出请求。在大多数情况下 SDKs，服务客户端对象是不可变的，因此您必须为向其发出请求的每个服务创建一个新的客户端，并使用不同的配置向同一服务发出请求。

## 设置的优先级
<a name="precedenceOfSettings"></a>

全局设置配置了大多数 SDKs 人支持并具有广泛 AWS 服务影响的功能、凭证提供程序和其他功能。所有地方 SDKs 都有一系列地点（或来源），他们会检查这些地点（或来源），以便找到全局设置的值。以下是设置查找优先级的方法：

1. 在代码中或服务客户端本身上设置的任何显式设置均优先于其他任何设置。
   + 有些设置可以根据每个操作进行设置，也可以根据需要针对调用的每个操作进行更改。对于 AWS CLI 或 AWS Tools for PowerShell，它们采用您在命令行上输入的每个操作参数的形式。对于 SDK，显式分配可以采用您在实例化 AWS 服务 客户端或配置对象时或有时在调用单个 API 时设置的参数的形式。

1. 仅限 Java/Kotlin：检查该设置的 JVM 系统属性。如果已设置，将使用该值来配置客户端。

1. 系统会检查环境变量。如果已设置，将使用该值来配置客户端。

1. SDK 会在共享的 `credentials` 文件中检查该设置。如果已设置，则客户端将使用该值。

1. 检查共享的 `config` 文件来查找该设置。如果存在该设置，则 SDK 将使用该设置。
   + 可以使用 `AWS_PROFILE` 环境变量或 `aws.profile` JVM 系统属性来指定 SDK 要加载的配置文件。

1. 最后才会使用 SDK 源代码本身提供的任何默认值。

**注意**  
有些 SDKs 工具可能会按不同的顺序进行检查。此外，有些 SDKs 和工具还支持其他存储和检索参数的方法。例如， 适用于 .NET 的 AWS SDK 支持名为 [SDK 商店](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/sdk-store.html)的其他来源。有关 SDK 或工具独有的提供者的更多信息，请参阅您正在使用的 SDK 或工具的特定指南。

顺序决定哪些方法优先使用并覆盖其他方法。例如，如果您在共享`config`文件中设置了配置文件，则只有在 SDK 或工具先检查其他位置之后，才能找到并使用该配置文件。这意味着，如果您在`credentials`文件中添加了设置，则会使用该设置而不是`config`文件中的设置。如果您使用设置和值配置环境变量，它将覆盖`credentials`和`config`文件中的该设置。最后，单个操作（AWS CLI 命令行参数或 API 参数）或代码中的设置将覆盖该命令的所有其他值。

## 了解本指南的设置页面
<a name="settingsPages"></a>

本指南中**设置参考**部分的相关页面详细介绍了可以通过各种机制设定的可用设置。下表列出了配置和凭证文件设置、环境变量以及（对于 Java 和 Kotlin SDKs）可以在代码之外用于配置该功能的 JVM 设置。每个列表中链接的每个主题都会指向相应的设置页面。
+ [`Config`文件设置列表](#ConfigFileSettings)
+ [`Credentials`文件设置列表](#CredFileSettings)
+ [环境变量列表](#EVarSettings)
+ [JVM 系统属性列表](#JVMSettings)



 每个凭证提供者或功能都有一个页面，其中列出了用于配置该功能的设置。每个设置的值通常可以通过将该设置添加到配置文件中、设置环境变量或者（仅适用于 Java 和 Kotlin）设置 JVM 系统属性来进行设置。每个设置都会列出所有受支持的方法，用来在描述详细信息上方的块中设置值。尽管不同设置方法的[优先级](#precedenceOfSettings)各不相同，但最终功能都是一样的。

描述中将包括默认值（如果有），如果您不执行任何操作，系统将会使用该值。描述中还定义了该设置的有效值。

 例如，下面是 [请求压缩](feature-compression.md) 功能页面的设置示例。

`disable_request_compression` 示例设置的信息记录了以下内容：
+ 有三种等效的方法可以用来在代码库之外控制请求压缩。您可以：
  + 使用 `disable_request_compression` 在配置文件中进行设置 
  +  使用 `AWS_DISABLE_REQUEST_COMPRESSION` 将其设置为环境变量
  + 如果您使用的是 Java 或 Kotlin SDK，则还可以使用 `aws.disableRequestCompression` 将其设置为 JVM 系统属性
**注意**  
可能还有一种方法可以直接在代码中配置相同的功能，但由于这种方法因 SDK 而异，因此本参考未作介绍。如果需要在代码中直接设置配置，请参阅具体的 SDK 指南或 API 参考。
+ 如果您不执行任何操作，则该值将默认为 `false`。
+ 此布尔值设置的唯一有效值是 `true` 和 `false`。

每个功能页面的底部都有一个 Support b **y AWS SDKs 和 tools** 表。

该表会显示您的 SDK 是否支持该页面上列出的设置。`Supported` 列指示支持级别，具有下列值：
+ `Yes`：该 SDK 完全支持描述的设置。
+ `Partial`：支持部分设置，或者行为与描述有所不同。对于 `Partial`，会用一条附加注释来说明偏差。
+ `No`：不支持任何设置。这并不能说明代码中是否可以实现相同的功能；仅指示不支持列出的外部配置设置。

## `Config`文件设置列表
<a name="ConfigFileSettings"></a>

下表中列出的设置可以在共享 AWS `config`文件中分配。它们是全球性的，影响到所有人 AWS 服务。 SDKs 而且工具还可能支持独特的设置和环境变量。要查看仅受单个 SDK 或工具支持的设置和环境变量，请参阅具体的 SDK 或工具指南。


| 设置名称 | Details | 
| --- | --- | 
|  account\$1id\$1endpoint\$1mode  | [基于账户的终端节点](feature-account-endpoints.md)  | 
|  api\$1versions  | [常规配置设置](feature-gen-config.md)  | 
|  auth\$1scheme\$1preference  | [身份验证方案](feature-auth-scheme.md)  | 
|  aws\$1access\$1key\$1id  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  aws\$1account\$1id  | [基于账户的终端节点](feature-account-endpoints.md)  | 
|  aws\$1secret\$1access\$1key  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  aws\$1session\$1token  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  ca\$1bundle  | [常规配置设置](feature-gen-config.md)  | 
|  credential\$1process  | [进程凭证提供者](feature-process-credentials.md)  | 
|  credential\$1source  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  defaults\$1mode  | [智能配置默认值](feature-smart-config-defaults.md)  | 
|  disable\$1host\$1prefix\$1injection  | [主机前缀注入](feature-host-prefix.md)  | 
|  disable\$1request\$1compression  | [请求压缩](feature-compression.md)  | 
|  duration\$1seconds  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  ec2\$1metadata\$1service\$1endpoint  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  ec2\$1metadata\$1service\$1endpoint\$1mode  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  ec2\$1metadata\$1v1\$1disabled  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  endpoint\$1discovery\$1enabled  | [端点发现](feature-endpoint-discovery.md)  | 
|  endpoint\$1url  | [特定于服务的端点](feature-ss-endpoints.md)  | 
|  external\$1id  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  ignore\$1configured\$1endpoint\$1urls  | [特定于服务的端点](feature-ss-endpoints.md)  | 
|  max\$1attempts  | [重试行为](feature-retry-behavior.md)  | 
|  metadata\$1service\$1num\$1attempts  | [Amazon EC2 实例元数据](feature-ec2-instance-metadata.md)  | 
|  metadata\$1service\$1timeout  | [Amazon EC2 实例元数据](feature-ec2-instance-metadata.md)  | 
|  mfa\$1serial  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  output  | [常规配置设置](feature-gen-config.md)  | 
|  parameter\$1validation  | [常规配置设置](feature-gen-config.md)  | 
|  region  | [AWS 区域](feature-region.md)  | 
|  request\$1checksum\$1calculation  | [Amazon S3 数据完整性保护](feature-dataintegrity.md)  | 
|  request\$1min\$1compression\$1size\$1bytes  | [请求压缩](feature-compression.md)  | 
|  response\$1checksum\$1validation  | [Amazon S3 数据完整性保护](feature-dataintegrity.md)  | 
|  retry\$1mode  | [重试行为](feature-retry-behavior.md)  | 
|  role\$1arn  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  role\$1session\$1name  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  s3\$1disable\$1express\$1session\$1auth  | [S3 Express One Zone 会话身份验证](feature-s3-express.md)  | 
|  s3\$1disable\$1multiregion\$1access\$1points  | [Amazon S3 多区域访问点](feature-s3-mrap.md)  | 
|  s3\$1use\$1arn\$1region  | [Amazon S3 接入点](feature-s3-access-point.md)  | 
|  sdk\$1ua\$1app\$1id  | [应用程序 ID](feature-appid.md)  | 
|  sigv4a\$1signing\$1region\$1set  | [身份验证方案](feature-auth-scheme.md)  | 
|  source\$1profile  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  sso\$1account\$1id  | [IAM Identity Center 凭证提供者](feature-sso-credentials.md)  | 
|  sso\$1region  | [IAM Identity Center 凭证提供者](feature-sso-credentials.md)  | 
|  sso\$1registration\$1scopes  | [IAM Identity Center 凭证提供者](feature-sso-credentials.md)  | 
|  sso\$1role\$1name  | [IAM Identity Center 凭证提供者](feature-sso-credentials.md)  | 
|  sso\$1start\$1url  | [IAM Identity Center 凭证提供者](feature-sso-credentials.md)  | 
|  sts\$1regional\$1endpoints  | [AWS STS 区域端点](feature-sts-regionalized-endpoints.md)  | 
|  use\$1dualstack\$1endpoint  | [双堆栈和 FIPS 端点](feature-endpoints.md)  | 
|  use\$1fips\$1endpoint  | [双堆栈和 FIPS 端点](feature-endpoints.md)  | 
|  web\$1identity\$1token\$1file  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 

## `Credentials`文件设置列表
<a name="CredFileSettings"></a>

下表中列出的设置可以在共享 AWS `credentials`文件中分配。它们是全球性的，影响到所有人 AWS 服务。 SDKs 而且工具还可能支持独特的设置和环境变量。要查看仅受单个 SDK 或工具支持的设置和环境变量，请参阅具体的 SDK 或工具指南。


| 设置名称 | Details | 
| --- | --- | 
|  aws\$1access\$1key\$1id  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  aws\$1secret\$1access\$1key  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  aws\$1session\$1token  | [AWS 访问密钥](feature-static-credentials.md)  | 

## 环境变量列表
<a name="EVarSettings"></a>

下表列出了 SDKs 大多数支持的环境变量。它们是全球性的，影响到所有人 AWS 服务。 SDKs 而且工具还可能支持独特的设置和环境变量。要查看仅受单个 SDK 或工具支持的设置和环境变量，请参阅具体的 SDK 或工具指南。


| 设置名称 | Details | 
| --- | --- | 
|  AWS\$1ACCESS\$1KEY\$1ID  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  AWS\$1ACCOUNT\$1ID  | [基于账户的终端节点](feature-account-endpoints.md)  | 
|  AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE  | [基于账户的终端节点](feature-account-endpoints.md)  | 
|  AWS\$1AUTH\$1SCHEME\$1PREFERENCE  | [身份验证方案](feature-auth-scheme.md)  | 
|  AWS\$1CA\$1BUNDLE  | [常规配置设置](feature-gen-config.md)  | 
|  AWS\$1CONFIG\$1FILE  | [查找和更改共享`credentials`文件`config`AWS SDKs 和工具的位置](file-location.md)  | 
|  AWS\$1CONTAINER\$1AUTHORIZATION\$1TOKEN  | [容器凭证提供者](feature-container-credentials.md)  | 
|  AWS\$1CONTAINER\$1AUTHORIZATION\$1TOKEN\$1FILE  | [容器凭证提供者](feature-container-credentials.md)  | 
|  AWS\$1CONTAINER\$1CREDENTIALS\$1FULL\$1URI  | [容器凭证提供者](feature-container-credentials.md)  | 
|  AWS\$1CONTAINER\$1CREDENTIALS\$1RELATIVE\$1URI  | [容器凭证提供者](feature-container-credentials.md)  | 
|  AWS\$1DEFAULTS\$1MODE  | [智能配置默认值](feature-smart-config-defaults.md)  | 
|  AWS\$1DISABLE\$1HOST\$1PREFIX\$1INJECTION  | [主机前缀注入](feature-host-prefix.md)  | 
|  AWS\$1DISABLE\$1REQUEST\$1COMPRESSION  | [请求压缩](feature-compression.md)  | 
|  AWS\$1EC2\$1METADATA\$1DISABLED  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  AWS\$1EC2\$1METADATA\$1SERVICE\$1ENDPOINT  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  AWS\$1EC2\$1METADATA\$1SERVICE\$1ENDPOINT\$1MODE  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  AWS\$1EC2\$1METADATA\$1V1\$1DISABLED  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  AWS\$1ENABLE\$1ENDPOINT\$1DISCOVERY  | [端点发现](feature-endpoint-discovery.md)  | 
|  AWS\$1ENDPOINT\$1URL  | [特定于服务的端点](feature-ss-endpoints.md)  | 
|  AWS\$1ENDPOINT\$1URL\$1<SERVICE>  | [特定于服务的端点](feature-ss-endpoints.md)  | 
|  AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS  | [特定于服务的端点](feature-ss-endpoints.md)  | 
|  AWS\$1MAX\$1ATTEMPTS  | [重试行为](feature-retry-behavior.md)  | 
|  AWS\$1METADATA\$1SERVICE\$1NUM\$1ATTEMPTS  | [Amazon EC2 实例元数据](feature-ec2-instance-metadata.md)  | 
|  AWS\$1METADATA\$1SERVICE\$1TIMEOUT  | [Amazon EC2 实例元数据](feature-ec2-instance-metadata.md)  | 
|  AWS\$1PROFILE  | [使用共享`config`和`credentials`文件进行全局配置 AWS SDKs 和工具](file-format.md)  | 
|  AWS\$1REGION  | [AWS 区域](feature-region.md)  | 
|  AWS\$1REQUEST\$1CHECKSUM\$1CALCULATION  | [Amazon S3 数据完整性保护](feature-dataintegrity.md)  | 
|  AWS\$1REQUEST\$1MIN\$1COMPRESSION\$1SIZE\$1BYTES  | [请求压缩](feature-compression.md)  | 
|  AWS\$1RESPONSE\$1CHECKSUM\$1VALIDATION  | [Amazon S3 数据完整性保护](feature-dataintegrity.md)  | 
|  AWS\$1RETRY\$1MODE  | [重试行为](feature-retry-behavior.md)  | 
|  AWS\$1ROLE\$1ARN  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  AWS\$1ROLE\$1SESSION\$1NAME  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  AWS\$1S3\$1DISABLE\$1EXPRESS\$1SESSION\$1AUTH  | [S3 Express One Zone 会话身份验证](feature-s3-express.md)  | 
|  AWS\$1S3\$1DISABLE\$1MULTIREGION\$1ACCESS\$1POINTS  | [Amazon S3 多区域访问点](feature-s3-mrap.md)  | 
|  AWS\$1S3\$1USE\$1ARN\$1REGION  | [Amazon S3 接入点](feature-s3-access-point.md)  | 
|  AWS\$1SDK\$1UA\$1APP\$1ID  | [应用程序 ID](feature-appid.md)  | 
|  AWS\$1SECRET\$1ACCESS\$1KEY  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  AWS\$1SESSION\$1TOKEN  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  AWS\$1SHARED\$1CREDENTIALS\$1FILE  | [查找和更改共享`credentials`文件`config`AWS SDKs 和工具的位置](file-location.md)  | 
|  AWS\$1SIGV4A\$1SIGNING\$1REGION\$1SET  | [身份验证方案](feature-auth-scheme.md)  | 
|  AWS\$1STS\$1REGIONAL\$1ENDPOINTS  | [AWS STS 区域端点](feature-sts-regionalized-endpoints.md)  | 
|  AWS\$1USE\$1DUALSTACK\$1ENDPOINT  | [双堆栈和 FIPS 端点](feature-endpoints.md)  | 
|  AWS\$1USE\$1FIPS\$1ENDPOINT  | [双堆栈和 FIPS 端点](feature-endpoints.md)  | 
|  AWS\$1WEB\$1IDENTITY\$1TOKEN\$1FILE  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 

## JVM 系统属性列表
<a name="JVMSettings"></a>

您可以将以下 JVM 系统属性用于 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK （以 JVM 为目标）。有关如何设置 JVM 系统属性的说明，请参阅[如何设置 JVM 系统属性](jvm-system-properties.md#jvm-sys-props-set)。


| 设置名称 | Details | 
| --- | --- | 
|  aws.accessKeyId  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  aws.accountId  | [基于账户的终端节点](feature-account-endpoints.md)  | 
|  aws.accountIdEndpointMode  | [基于账户的终端节点](feature-account-endpoints.md)  | 
|  aws.authSchemePreference  | [身份验证方案](feature-auth-scheme.md)  | 
|  aws.configFile  | [查找和更改共享`credentials`文件`config`AWS SDKs 和工具的位置](file-location.md)  | 
|  aws.defaultsMode  | [智能配置默认值](feature-smart-config-defaults.md)  | 
|  aws.disableEc2MetadataV1  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  aws.disableHostPrefixInjection  | [主机前缀注入](feature-host-prefix.md)  | 
|  aws.disableRequestCompression  | [请求压缩](feature-compression.md)  | 
|  aws.disableS3ExpressAuth  | [S3 Express One Zone 会话身份验证](feature-s3-express.md)  | 
|  aws.ec2MetadataServiceEndpoint  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  aws.ec2MetadataServiceEndpointMode  | [IMDS 凭证提供者](feature-imds-credentials.md)  | 
|  aws.endpointDiscoveryEnabled  | [端点发现](feature-endpoint-discovery.md)  | 
|  aws.endpointUrl  | [特定于服务的端点](feature-ss-endpoints.md)  | 
|  aws.endpointUrl<ServiceName>  | [特定于服务的端点](feature-ss-endpoints.md)  | 
|  aws.ignoreConfiguredEndpointUrls  | [特定于服务的端点](feature-ss-endpoints.md)  | 
|  aws.maxAttempts  | [重试行为](feature-retry-behavior.md)  | 
|  aws.profile  | [使用共享`config`和`credentials`文件进行全局配置 AWS SDKs 和工具](file-format.md)  | 
|  aws.region  | [AWS 区域](feature-region.md)  | 
|  aws.requestChecksumCalculation  | [Amazon S3 数据完整性保护](feature-dataintegrity.md)  | 
|  aws.requestMinCompressionSizeBytes  | [请求压缩](feature-compression.md)  | 
|  aws.responseChecksumValidation  | [Amazon S3 数据完整性保护](feature-dataintegrity.md)  | 
|  aws.retryMode  | [重试行为](feature-retry-behavior.md)  | 
|  aws.roleArn  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  aws.roleSessionName  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  aws.s3DisableMultiRegionAccessPoints  | [Amazon S3 多区域访问点](feature-s3-mrap.md)  | 
|  aws.s3UseArnRegion  | [Amazon S3 接入点](feature-s3-access-point.md)  | 
|  aws.secretAccessKey  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  aws.sessionToken  | [AWS 访问密钥](feature-static-credentials.md)  | 
|  aws.sharedCredentialsFile  | [查找和更改共享`credentials`文件`config`AWS SDKs 和工具的位置](file-location.md)  | 
|  aws.useDualstackEndpoint  | [双堆栈和 FIPS 端点](feature-endpoints.md)  | 
|  aws.useFipsEndpoint  | [双堆栈和 FIPS 端点](feature-endpoints.md)  | 
|  aws.webIdentityTokenFile  | [代入角色凭证提供者](feature-assume-role-credentials.md)  | 
|  sdk.ua.appId  | [应用程序 ID](feature-appid.md)  | 

# AWS SDKs 和 Tools 标准化凭证提供商
<a name="standardized-credentials"></a>

许多凭证提供商已标准化为一致的默认值，并且在许多 SDKs证书提供商中都以相同的方式工作。这种一致性可以提高跨多个编码时的生产力和清晰度 SDKs。所有设置都可以在代码中被覆盖。有关详细信息，请参阅您的特定 SDK API。

**重要**  
并非所有提供商都 SDKs 支持所有提供商，甚至支持提供商内部的所有方面。

**Topics**
+ [了解默认凭证提供者链](#credentialProviderChain)
+ [特定于 SDK 和工具的凭证提供者链](#sdk-chains)
+ [AWS 访问密钥](feature-static-credentials.md)
+ [登录提供商](feature-login-credentials.md)
+ [代入角色提供者](feature-assume-role-credentials.md)
+ [容器提供者](feature-container-credentials.md)
+ [IAM Identity Center 提供商](feature-sso-credentials.md)
+ [IMDS 提供者](feature-imds-credentials.md)
+ [Process 提供者](feature-process-credentials.md)

## 了解默认凭证提供者链
<a name="credentialProviderChain"></a>

所有 SDKs 人都有一系列地点（或来源）供他们检查，以便找到用于向某人提出请求的有效凭证 AWS 服务。找到有效凭证后，搜索即告停止。这种系统性搜索称为凭证提供程序链。

使用其中一个标准化凭证提供商时， AWS SDKs 始终尝试在证书到期时自动续订证书。无论凭证提供者链中使用哪种提供者，内置的凭证提供者链都会确保应用程序能够刷新您的凭证。SDK 无需额外的代码即可完成此操作。

尽管每个 SDK 使用的链各不相同，但它们通常包括以下来源：


| 凭证提供者 | 说明 | 
| --- | --- | 
| [AWS 访问密钥](feature-static-credentials.md) | AWS IAM 用户的访问密钥（例如AWS\$1ACCESS\$1KEY\$1ID、和AWS\$1SECRET\$1ACCESS\$1KEY）。 | 
| [使用 Web 身份或 OpenID Connect 进行联合](access-assume-role-web.md#webidentity) - 承担角色凭证提供者 | 使用知名的外部身份提供者（IdP）（例如，Login with Amazon、Facebook、Google 或任何其他 OpenID Connect (OIDC) 兼容的 IdP）登录。使用 () 中的 JSON 网络令牌 (JWT) 假设 IAM 角色的 AWS Security Token Service 权限。AWS STS | 
| [登录凭证提供商](feature-login-credentials.md)  | 获取您已登录的新控制台或现有控制台会话的凭证。 | 
| [IAM Identity Center 凭证提供者](feature-sso-credentials.md) | 从中获取凭证 AWS IAM Identity Center。 | 
| [代入角色凭证提供者](feature-assume-role-credentials.md) | 具有 IAM 角色的权限即可访问其他资源。（检索角色的临时凭证，然后使用该凭证）。 | 
| [容器凭证提供者](feature-container-credentials.md) | Amazon Elastic Container Service（Amazon ECS）和 Amazon Elastic Kubernetes Service（Amazon EKS）凭证。容器凭证提供者为客户的容器化应用程序获取凭证。 | 
| [进程凭证提供者](feature-process-credentials.md) | 自定义凭证提供者。从外部来源或流程（包括 IAM Roles Anywhere）获取您的凭证。 | 
| [IMDS 凭证提供者](feature-imds-credentials.md) | Amazon Elastic Compute Cloud（Amazon EC2）实例配置文件凭证。将 IAM 角色与您的每个 EC2 实例相关联。在该实例上运行的代码就可以使用该角色的临时凭证。凭证通过 Amazon EC2 元数据服务提供。 | 

 对于链中的每个步骤，都有多种分配设置值的方法。在代码中指定的设置值始终优先。但是，还有 [环境变量](environment-variables.md) 和 [使用共享`config`和`credentials`文件进行全局配置 AWS SDKs 和工具](file-format.md)。有关更多信息，请参阅 [设置的优先级](settings-reference.md#precedenceOfSettings)。

## 特定于 SDK 和工具的凭证提供者链
<a name="sdk-chains"></a>

要直接访问 SDK 或工具的**特定**凭证提供者链详细信息，请从以下列表中选择您的 SDK 或工具：
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 
+ [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/credproviders.html)
+ [适用于 Go 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/configure-gosdk.html) 
+ [适用于 Java 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) 
+ [适用于 JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/setting-credentials-node.html#credchain) 
+ [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/credential-providers.html) 
+ [适用于 .NET 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/creds-assign.html)
+ [适用于 PHP 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/guide_credentials.html)
+ [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html)
+ [适用于 Ruby 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/setup-config.html)
+ [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/credproviders.html)
+ [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/using-configuration.html)
+ [用于 PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/creds-assign.html)

# AWS 访问密钥
<a name="feature-static-credentials"></a>

**警告**  
为了避免安全风险，在开发专用软件或处理真实数据时，请勿使用 IAM 用户进行身份验证，而是使用与身份提供者的联合身份验证，例如 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

 AWS IAM 用户的访问密钥可用作您的 AWS 证书。 AWS SDK 会自动使用这些 AWS 凭据签署 API 请求 AWS，以便您的工作负载可以安全、方便地访问您的 AWS 资源和数据。建议始终使用`aws_session_token`，这样凭证才是临时的，过期后不再有效。不建议使用长期凭证。

**注意**  
如果无法刷新这些临时证书， AWS 则 AWS 可能会延长证书的有效期，这样您的工作负载就不会受到影响。

 共享 AWS `credentials`文件是存储凭据信息的推荐位置，因为它安全地位于应用程序源目录之外，并且与共享`config`文件的 SDK 特定设置是分开的。

要了解有关 AWS 证书和使用访问密钥的更多信息，请参阅 [IAM 用户*指南中的[AWS 安全证书](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html)和管理 IAM 用户的*访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)。

使用以下方法配置此功能：

**`aws_access_key_id`-共享 AWS `config`文件设置`aws_access_key_id`-共享 AWS `credentials`文件设置*（推荐方法）*`AWS_ACCESS_KEY_ID` - 环境变量`aws.accessKeyId`-JVM 系统属性：仅限 Java/Kotlin **  
指定作为证书一部分用于对用户进行身份验证的 AWS 访问密钥。

**`aws_secret_access_key`-共享 AWS `config`文件设置`aws_secret_access_key`-共享 AWS `credentials`文件设置*（推荐方法）*`AWS_SECRET_ACCESS_KEY` - 环境变量`aws.secretAccessKey`-JVM 系统属性：仅限 Java/Kotlin **  
指定用作验证用户身份的凭证一部分的 AWS 密钥。

**`aws_session_token`-共享 AWS `config`文件设置`aws_session_token`-共享 AWS `credentials`文件设置*（推荐方法）*`AWS_SESSION_TOKEN` - 环境变量`aws.sessionToken`-JVM 系统属性：仅限 Java/Kotlin **  
指定一个 AWS 会话令牌，该令牌用作对用户进行身份验证的凭证的一部分。您会收到此值作为成功请求承担角色所返回的临时凭证的一部分。只有在手动指定临时安全凭证时才需要会话令牌。但是，我们建议您始终使用临时安全凭证代替长期凭证。有关安全建议，请参阅 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

有关如何获取这些值的说明，请参阅 [使用短期凭证进行身份验证 AWS SDKs 和工具短期凭证](access-temp-idc.md)。

在`config`或`credentials`文件中设置这些必需值的示例：

```
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
```

Linux/macOS 通过命令行设置环境变量的示例：

```
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
```

Windows 通过命令行设置环境变量的示例：

```
setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
setx AWS_SESSION_TOKEN AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
```

## Support AWS SDKs by 和工具
<a name="feature-static-credentials-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 | 不支持共享的config文件。 | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 | 不支持环境变量。 | 

# 登录凭证提供商
<a name="feature-login-credentials"></a>

[您可以使用现有的 AWS 管理控制台登录凭证](https://docs.amazon.aws.com/sdkref/latest/guide/access-login.html)来获取可用于编程访问的短期证书。完成基于浏览器的身份验证流程后， AWS 会生成适用于 PowerShell 本地开发工具（例如 CL AWS I、 AWS 和的工具）的临时证书。 AWS SDKs

要生成这些证书，请在 AWS CLI 中运行`aws login`命令，或者在 “ AWS 工具” 中运行 `Invoke-AWSLogin` cmdlet。 PowerShell生成的短期证书将在本地缓存，供其重复使用。 AWS SDKs短期证书将在 15 分钟后过期，但是 CLI SDKs 会根据需要自动刷新证书，最长可达 12 小时。刷新令牌到期后，系统将提示您通过 CLI 或重新登录 PowerShell。

登录命令将使用该设置更新您指定的配置文件，该`login_session`设置存储您在登录工作流程中选择的管理控制台会话的身份。

```
[profile console]
login_session = arn:aws:iam::0123456789012:user/username
region = us-west-2
```

默认情况下，短期凭证和刷新令牌存储在 Linux 和 macOS 或 `%USERPROFILE%\.aws\login\cache` Windows 上的`~/.aws/login/cache`目录下的 JSON 文件中。文件名基于登录会话名称。您可以通过设置`AWS_LOGIN_CACHE_DIRECTORY`环境变量来覆盖该目录。

## 登录提供商设置
<a name="feature-login-credentials-settings"></a>

使用以下方法配置此功能：

**`AWS_LOGIN_CACHE_DIRECTORY` - 环境变量**  
备用目录，CLI 和 SDKs 将在其中存储映射到登录会话配置文件的缓存凭据。  
默认值：`~/.aws/login/cache`在 Linux 和 macOS 上，或者`%USERPROFILE%\.aws\login\cache`在 Windows 上。

## Support AWS SDKs by 和工具
<a name="feature-login-credentials-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 否 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | 需要 CRT | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 否 |  | 

# 代入角色凭证提供者
<a name="feature-assume-role-credentials"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

假设角色涉及使用一组临时安全凭证来访问您原本无法访问的 AWS 资源。这些临时凭证由访问密钥 ID、秘密访问密钥和安全令牌组成。

要设置您的 SDK 或工具来代入角色，必须先创建或标识要代入的特定*角色*。IAM 角色由角色 Amazon 资源名称（[ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)）进行唯一标识。角色与另一个实体建立信任关系。使用该角色的可信实体可能是另一个 AWS 服务、Web 身份提供商 AWS 账户、OIDC 或 SAML 联合体。

标识 IAM 角色后，如果您受到该角色的信任，则可以将您的 SDK 或工具配置为使用该角色授予的权限。要执行此操作，请使用以下设置。

有关开始使用这些设置的指导，请参阅本指南中的 [假设一个拥有身份验证 AWS 凭证 AWS SDKs 和工具的角色](access-assume-role.md)。

## 代入角色凭证提供者设置
<a name="feature-assume-role-credentials-settings"></a>

使用以下方法配置此功能：

**`credential_source`-共享 AWS `config`文件设置**  
在 Amazon EC2 实例或 Amazon Elastic Container Service 容器中使用，指定 SDK 或工具在何处可以查找授权用于代入通过 `role_arn` 参数指定的角色的凭证。  
**默认值：** 无  
**有效值：**  
+ **环境** – 指定 SDK 或工具从环境变量 [`AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`](feature-static-credentials.md) 检索源凭证。
+ Ec@@ **2 InstanceMetadata** — 指定软件开发工具包或工具将使用[附加到 EC2 实例配置文件的 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)来获取源证书。
+ **EcsContainer**— 指定软件开发工具包或工具将使用[附加到 Amazon ECS 容器的 IAM 角色或附加到 Ama](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) [zon EKS 容器](https://docs.aws.amazon.com/eks/latest/userguide/security-iam-service-with-iam.html)的 IAM 角色来获取源证书。
不能在同一配置文件中同时指定 `credential_source` 和 `source_profile`。  
在 `config` 文件中设置此项以表明凭证应来自 Amazon EC2 的示例：  

```
credential_source = Ec2InstanceMetadata
role_arn = arn:aws:iam::123456789012:role/my-role-name
```

**`duration_seconds`-共享 AWS `config`文件设置**  
指定角色会话的最大持续时间（以秒为单位）。  
仅当配置文件指定代入角色时，此设置才适用。  
**默认值：** 3600 秒 (1 小时)  
**有效值：**该值的范围在 900 秒（15 分钟）到角色配置的最大会话持续时间（43200 秒或 12 小时）之间。有关更多信息，请参阅 *IAM 用户指南*中的 [查看角色的最大会话持续时间设置](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)。  
在 `config` 文件中设置此项的示例：  

```
duration_seconds = 43200
```

**`external_id`-共享 AWS `config`文件设置**  
指定第三方用于在其客户账户中代入角色的唯一标识符。  
仅当配置文件指定代入角色且该角色的信任策略需要 `ExternalId` 值时，此设置才适用。该值映射到配置文件指定角色时传递给 `AssumeRole` 操作的 `ExternalId` 参数。  
**默认值：**无。  
**有效值：**请参阅 *IAM 用户指南*中的[如何在向第三方授予对您的 AWS 资源的访问权限时使用外部 ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)。  
在 `config` 文件中设置此项的示例：  

```
external_id = unique_value_assigned_by_3rd_party
```

**`mfa_serial`-共享 AWS `config`文件设置**  
指定用户在代入角色时必须使用的多重身份验证（MFA）设备的标识或序列号。  
代入角色时，如果该角色的信任策略包含需要 MFA 身份验证的条件，则此项为必需项。有关 MFA 的更多信息，请参阅《IAM 用户指南》中的 [IAM 中的AWS 多重身份验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)**。  
**默认值：**无。  
**有效值：** 该值可以是硬件设备（例如 `GAHT12345678`）的序列号，也可以是虚拟 MFA 设备的 Amazon 资源名称（ARN）。ARN 的格式为 `arn:aws:iam::account-id:mfa/mfa-device-name`  
在 `config` 文件中设置此项的示例：  
此示例假设已为该账户创建并为某个用户启用了一个名为 `MyMFADevice` 的虚拟 MFA 设备。  

```
mfa_serial = arn:aws:iam::123456789012:mfa/MyMFADevice
```

**`role_arn`-共享 AWS `config`文件设置`AWS_ROLE_ARN` - 环境变量`aws.roleArn`-JVM 系统属性：仅限 Java/Kotlin **  
指定要用于执行使用此配置文件请求操作的 IAM 角色的 Amazon 资源名称（ARN）。  
**默认值：**无。  
**有效值：**该值必须是 IAM 角色的 ARN，格式如下：`arn:aws:iam::account-id:role/role-name`  
 此外，您还必须指定以下设置**之一**：  
+ `source_profile` - 标识另一个配置文件，用于查找具有在此配置文件中代入该角色的权限的凭证。
+ `credential_source` - 使用由当前环境变量标识的凭证或附加到 Amazon EC2 实例配置文件或 Amazon ECS 容器实例的凭证。
+ `web_identity_token_file` - 为已在移动或 Web 应用程序中进行身份验证的用户使用公共身份提供者或任何 OpenID Connect（OIDC）兼容身份提供者。

**`role_session_name`-共享 AWS `config`文件设置`AWS_ROLE_SESSION_NAME` - 环境变量`aws.roleSessionName`-JVM 系统属性：仅限 Java/Kotlin **  
指定要附加到角色会话的名称。此名称显示在与此会话关联的条目的 AWS CloudTrail 日志中，该会话可能在审核时有用。有关详细信息，请参阅《[CloudTrail用户指南》中的 “*AWS CloudTrail 用户*身份” 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。  
**默认值：**可选参数。如果未提供此值，只要配置文件代入角色，则将自动生成会话名称。  
**有效值：**当 AWS CLI 或 AWS API 代表您调用`AssumeRole`操作（或操作等`AssumeRoleWithWebIdentity`操作）时，为`RoleSessionName`参数提供。该值成为您可以查询的代入角色用户 Amazon 资源名称 (ARN) 的一部分，并作为该配置文件调用的操作的 CloudTrail 日志条目的一部分显示。  
 `arn:aws:sts::123456789012:assumed-role/my-role-name/my-role_session_name`.  
在 `config` 文件中设置此项的示例：  

```
role_session_name = my-role-session-name
```

**`source_profile`-共享 AWS `config`文件设置**  
指定其他配置文件，其凭证用于代入由原始配置文件中的 `role_arn` 设置指定的角色。要了解如何在共享`credentials`文件 AWS `config`和文件中使用配置文件，请参阅[共享 `config` 文件和 `credentials` 文件](file-format.md)。  
如果您指定的配置文件也是代入角色配置文件，则将按顺序代入每个角色以完全解析凭证。当 SDK 遇到带有凭证的配置文件时，此链将会停止。角色链将您的 AWS CLI 或 AWS API 角色会话限制为最长一小时，并且无法延长。有关更多信息，请参阅 *IAM 用户指南*中的[角色术语和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)。  
**默认值：**无。  
**有效值：**由 `config` 和 `credentials` 文件中定义的配置文件的名称组成的文本字符串。还必须在当前配置文件中指定 `role_arn` 的值。  
不能在同一配置文件中同时指定 `credential_source` 和 `source_profile`。  
在配置文件中设置此项的示例：  

```
[profile A]
source_profile = B
role_arn =  arn:aws:iam::123456789012:role/RoleA
role_session_name = ProfileARoleSession
                
[profile B]
credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID
```
在上例中，`A` 配置文件告诉 SDK 或工具自动查找关联的 `B` 配置文件的凭证。在此例中，`B` 配置文件使用 [使用 IAM Anywhere 角色进行身份验证 AWS SDKs 和工具](access-rolesanywhere.md) 提供的凭证助手来获取 AWS SDK 的凭证。然后，代码会使用这些临时凭证来访问 AWS 资源。指定的角色必须附加允许运行所请求代码的 IAM 权限策略，例如命令 AWS 服务、或 API 方法。配置文件执行的每项操作的 CloudTrail 日志中`A`都包含角色会话名称。  
对于第二个角色链示例，如果您在 Amazon Elastic Compute Cloud 实例上有一个应用程序，并且想让该应用程序代入其他角色，则可以使用以下配置。  

```
[profile A]
source_profile = B
role_arn =  arn:aws:iam::123456789012:role/RoleA
role_session_name = ProfileARoleSession
                
[profile B]
credential_source=Ec2InstanceMetadata
```
配置文件 `A` 将使用来自 Amazon EC2 实例的凭证来代入指定角色，并且会自动续订凭证。  


**`web_identity_token_file`-共享 AWS `config`文件设置`AWS_WEB_IDENTITY_TOKEN_FILE` - 环境变量`aws.webIdentityTokenFile`-JVM 系统属性：仅限 Java/Kotlin **  
指定文件路径，该文件包含来自[支持的 OAuth 2.0 提供商或 [OpenID Connect ID 身份](https://openid.net/developers/certified/)提供商](https://wikipedia.org/wiki/List_of_OAuth_providers)的访问令牌。  
此设置允许使用 Web 身份联合验证提供者（例如 [Google](https://developers.google.com/identity/protocols/OAuth2)、[Facebook](https://developers.facebook.com/docs/facebook-login/overview) 和 [Amazon](https://login.amazon.com/) 等）进行身份验证。SDK 或开发人员工具加载此文件的内容，并在代表您调用 `AssumeRoleWithWebIdentity` 操作时将其作为 `WebIdentityToken` 参数传递。  
**默认值：**无。  
**有效值：**此值必须是路径和文件名。该文件必须包含身份提供商向您提供的 OAuth 2.0 访问令牌或 OpenID Connect 令牌。相对路径被视为相对于进程工作目录的相对路径。

## Support AWS SDKs by 和工具
<a name="assume-role-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 部分 | credential\$1source不支持。duration\$1seconds不支持。mfa\$1serial不支持。 | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 部分 | 不支持 mfa\$1serial。不支持 duration\$1seconds。 | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 部分 | 不支持 credential\$1source。不支持 mfa\$1serial。不支持 JVM 系统属性。 | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 部分 | credential\$1source 不支持。 | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# 容器凭证提供者
<a name="feature-container-credentials"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

容器凭证提供者会为客户的容器化应用程序获取凭证。该证书提供者对亚马逊弹性容器服务 (Amazon ECS) 和亚马逊 Elastic Kubernetes Service (Amazon EKS) 客户非常有用。 SDKs 尝试通过 GET 请求从指定的 HTTP 端点加载凭证。

如果您使用 Amazon ECS，我们建议您使用任务 IAM 角色来改进凭证隔离、授权和提高可审计性。配置后，Amazon ECS 会设置 SDKs和工具用来获取凭证的`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`环境变量。要配置 Amazon ECS 以使用此功能，请参阅《Amazon Elastic Container Service 开发人员指南》**中的[任务 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。

如果您使用 Amazon EKS，我们建议您使用 Amazon EKS 容器组身份来改进凭证隔离，提高最低权限、可审计性，改善独立操作、可重用性和可扩展性。您的容器组（pod）和 IAM 角色都与 Kubernetes 服务账户相关联，以管理应用程序的证书。要了解有关 Amazon EKS 容器组身份的更多信息，请参阅《Amazon EKS 用户指南》****中的 [Amazon EKS 容器组身份](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)。配置后，Amazon EKS 会设置`AWS_CONTAINER_CREDENTIALS_FULL_URI` SDKs和工具用来获取凭证的和`AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE`环境变量。有关设置信息，请参阅 Amazon EKS **用户指南中的[设置 Amazon EKS Pod 身份代理](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html)，或者在 AWS 博客**网站上的 A [mazon EKS Pod Identity 简化了 Amazon EKS 集群上应用程序的 IAM 权限](https://aws.amazon.com/blogs/aws/amazon-eks-pod-identity-simplifies-iam-permissions-for-applications-on-amazon-eks-clusters/)。

使用以下方法配置此功能：

**`AWS_CONTAINER_CREDENTIALS_FULL_URI` - 环境变量**  
指定完整的 HTTP URL 端点，供 SDK 在请求凭证时使用。这包括方案和主机。  
**默认值：**无。  
**有效值：**有效的 URI。  
*注意：此设置是 `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` 的替代设置，只有在未设置 `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` 时才会使用。*  
Linux/macOS 通过命令行设置环境变量的示例：  

```
export AWS_CONTAINER_CREDENTIALS_FULL_URI=http://localhost/get-credentials
```
或者  

```
export AWS_CONTAINER_CREDENTIALS_FULL_URI=http://localhost:8080/get-credentials
```

**`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` - 环境变量**  
指定 HTTP URL 端点，供 SDK 在请求凭证时使用。该值将附加到默认的 Amazon ECS 的主机名 `169.254.170.2` 上。  
**默认值：**无。  
**有效值：**有效的相对 URI。  
Linux/macOS 通过命令行设置环境变量的示例：  

```
export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=/get-credentials?a=1
```

**`AWS_CONTAINER_AUTHORIZATION_TOKEN` - 环境变量**  
指定纯文本的授权令牌。如果设置了此变量，SDK 将使用环境变量的值在 HTTP 请求上设置授权标头。  
**默认值：**无。  
**有效值：**字符串。  
*注意：此设置是 `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` 的替代设置，只有在未设置 `AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` 时才会使用。*  
Linux/macOS 通过命令行设置环境变量的示例：  

```
export AWS_CONTAINER_CREDENTIALS_FULL_URI=http://localhost/get-credential
export AWS_CONTAINER_AUTHORIZATION_TOKEN=Basic abcd
```

**`AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE` - 环境变量**  
指定至包含纯文本授权令牌的文件的绝对文件路径。  
**默认值：**无。  
**有效值：**字符串。  
Linux/macOS 通过命令行设置环境变量的示例：  

```
export AWS_CONTAINER_CREDENTIALS_FULL_URI=http://localhost/get-credential
export AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE=/path/to/token
```

## Support AWS SDKs by 和工具
<a name="feature-container-credentials-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 | 当 [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html#snapstart-runtimes) 被激活AWS\$1CONTAINER\$1CREDENTIALS\$1FULL\$1URI并自动AWS\$1CONTAINER\$1AUTHORIZATION\$1TOKEN用于身份验证时。 | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 | 当 [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html#snapstart-runtimes) 被激活AWS\$1CONTAINER\$1CREDENTIALS\$1FULL\$1URI并自动AWS\$1CONTAINER\$1AUTHORIZATION\$1TOKEN用于身份验证时。 | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 | 当 [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html#snapstart-runtimes) 被激活AWS\$1CONTAINER\$1CREDENTIALS\$1FULL\$1URI并自动AWS\$1CONTAINER\$1AUTHORIZATION\$1TOKEN用于身份验证时。 | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 | 当 [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html#snapstart-runtimes) 被激活AWS\$1CONTAINER\$1CREDENTIALS\$1FULL\$1URI并自动AWS\$1CONTAINER\$1AUTHORIZATION\$1TOKEN用于身份验证时。 | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | 当 [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html#snapstart-runtimes) 被激活AWS\$1CONTAINER\$1CREDENTIALS\$1FULL\$1URI并自动AWS\$1CONTAINER\$1AUTHORIZATION\$1TOKEN用于身份验证时。 | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# IAM Identity Center 凭证提供者
<a name="feature-sso-credentials"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

此身份验证机制 AWS IAM Identity Center 用于获取您的代码的单点登录 (SSO) 访问 AWS 服务 权限。

**注意**  
在 AWS SDK API 文档中，IAM 身份中心凭证提供商被称为 SSO 凭证提供商。

启用 IAM Identity Center 后，您可以在共享 AWS `config`文件中为其设置定义配置文件。此配置文件用于连接到 IAM Identity Center 访问门户。当用户成功通过 IAM Identity Center 进行身份验证后，门户将返回与该用户关联的 IAM 角色的短期凭证。要了解 SDK 如何从配置中获取临时证书并将其用于 AWS 服务 请求，请参阅[如何解决 AWS SDKs 和工具的 IAM 身份中心身份验证问题](understanding-sso.md)。

通过 `config` 文件配置 IAM Identity Center 有两种方式：
+ **（推荐）SSO 令牌提供者配置**：延长会话时长。包括对自定义会话时长的支持。
+ **旧版不可刷新配置**：使用固定的八小时会话。

在这两种配置中，您都需要在会话到期后重新登录。

以下两份指南包含有关 IAM Identity Center 的其他信息：
+ [AWS IAM Identity Center 用户指南](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [AWS IAM Identity Center 门户 API 参考](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/Welcome.html)

要深入了解 SDKs 和工具如何使用和使用此配置刷新凭据，请参阅[如何解决 AWS SDKs 和工具的 IAM 身份中心身份验证问题](understanding-sso.md)。

## 先决条件
<a name="feature-sso-credentials-prereq"></a>

您必须先启用 IAM Identity Center。有关启用 IAM Identity Center 身份验证的详细信息，请参阅《AWS IAM Identity Center 用户指南》 中的 [Enabling AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html)**。

**注意**  
有关本页详细介绍的完整先决条件**和**所需的共享 `config` 文件配置，请参阅有关设置[使用 IAM 身份中心对 AWS SDK 和工具进行身份验证](access-sso.md)的指导说明。

## SSO 令牌提供商配置
<a name="sso-token-config"></a>

当您使用 SSO 令牌提供程序配置时，您的 AWS SDK 或工具会自动刷新您的会话，直到延长的会话时段为止。有关会话持续时间和最长持续时间的更多信息，请参阅*AWS IAM Identity Center 用户指南*中的[配置 AWS 访问门户和 IAM Identity Center 集成应用程序的会话持续](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html)时间。

该`config`文件的`sso-session`部分用于对用于获取 SSO 访问令牌的配置变量进行分组，然后可以使用这些变量来获取 AWS 凭证。有关 `config` 文件中此节的更多详细信息，请参阅 [配置文件的格式](file-format.md#file-format-config)。

以下共享 `config` 文件示例使用 `dev` 配置文件将 SDK 或工具配置为请求 IAM Identity Center 凭证。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

上面的示例展示您可以定义 `sso-session` 节并将其关联到某个配置文件。通常，`sso_role_name`必须在`profile`部分中设置`sso_account_id`和，这样 SDK 才能请求 AWS 凭证。 `sso_region``sso_start_url`、和，`sso_registration_scopes`必须在该`sso-session`部分中设置。

并不是所有 SSO 令牌配置场景都需要 `sso_account_id` 和 `sso_role_name`。如果您的应用程序仅使用支持持 AWS 服务 有者身份验证的凭证，则不需要传统 AWS 凭证。持有者身份验证是一种 HTTP 身份验证方案，它使用称为持有者令牌的安全令牌。在这种情况下，不需要 `sso_account_id` 和 `sso_role_name`。要确定该服务是否支持不记名令牌授权，请参阅个人 AWS 服务 指南。

注册范围配置为 `sso-session` 的一部分。范围是 OAuth 2.0 中的一种机制，用于限制应用程序对用户账户的申请访问。上例设置了 `sso_registration_scopes`，来提供列出账户和角色的必要访问权限。

下例展示了如何在多个配置文件中重复使用相同的 `sso-session` 配置。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[profile prod]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole2

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

身份验证令牌缓存到 `~/.aws/sso/cache` 目录下的磁盘上，文件名基于会话名称。

## 遗留的不可刷新配置
<a name="sso-legacy"></a>

使用遗留的不可刷新配置不支持自动令牌刷新。我们建议改用 [SSO 令牌提供商配置](#sso-token-config)。

要使用传统的不可刷新配置，您必须在配置文件中指定以下设置：
+ `sso_start_url`
+ `sso_region`
+ `sso_account_id`
+ `sso_role_name`

可以使用 `sso_start_url` 和 `sso_region` 设置为配置文件指定用户门户。可以使用 `sso_account_id` 和 `sso_role_name` 设置来指定权限。

以下示例设置了 `config` 文件中的四个必需值。

```
[profile my-sso-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-west-2
sso_account_id = 111122223333
sso_role_name = SSOReadOnlyRole
```

身份验证令牌缓存到 `~/.aws/sso/cache` 目录下的磁盘上，文件名基于 `sso_start_url`。

## IAM Identity Center 凭证提供者设置
<a name="feature-sso-credentials-profile"></a>

使用以下方法配置此功能：

**`sso_start_url`-共享 AWS `config`文件设置**  
指向您所在组织的 IAM Identity Center 颁发者 URL 或访问门户 URL 的 URL。有关详细信息，请参阅《AWS IAM Identity Center 用户指南》中的 [Using the AWS access portal](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html)**。  
 要找到此值，请打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)，查看**控制面板**，然后找到 **AWS 访问门户 URL**。  
+ 或者，从的 **2.22.0** 版本开始 AWS CLI，您可以改用**AWS 发行**者 URL 的值。

**`sso_region`-共享 AWS `config`文件设置**  
其中 AWS 区域 包含您的 IAM 身份中心门户主机；也就是您在启用 IAM 身份中心之前选择的区域。这与您的默认 AWS 区域无关，也可能有所不同。  
有关 AWS 区域 及其代码的完整列表，请参阅中的[区域终端节点*Amazon Web Services 一般参考*](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)。要查找此值，请打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)，查看控制 **面板**，然后查找 **区域**。

**`sso_account_id`-共享 AWS `config`文件设置**  
通过 AWS Organizations 服务添加 AWS 账户 的用于身份验证的数字 ID。  
要查看可用账户列表，请前往 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)并打开 **AWS 账户**页面。您还可以在*AWS IAM Identity Center 门户 API 参考*中使用 [ListAccounts](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_ListAccounts.html)API 方法查看可用账户列表。例如，您可以调用 “[列表](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sso/list-accounts.html)账户” AWS CLI 方法。

**`sso_role_name`-共享 AWS `config`文件设置**  
以 IAM 角色配置的权限集的名称，用于定义用户生成的权限。角色必须存在于 AWS 账户 指定的中`sso_account_id`。使用角色名称，而不是角色的 Amazon 资源名称（ARN）。  
权限集附有 IAM policy 和自定义权限策略，并定义了用户对其分配的 AWS 账户的访问权限级别。  
要查看每个可用权限集的列表 AWS 账户，请转到 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)并打开**AWS 账户**页面。选择 AWS 账户 表格中列出的正确权限集名称。您还可以使用 Port *AWS IAM Identity Center al API 参考*中的 [ListAccountRoles](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_ListAccountRoles.html)API 方法查看可用权限集列表。例如，您可以调用 AWS CLI 方法[list-account-roles](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sso/list-account-roles.html)。

**`sso_registration_scopes`-共享 AWS `config`文件设置**  
要为 `sso-session` 授权的范围的逗号分隔列表。应用程序可以请求一个或多个范围，向应用程序签发的访问令牌将仅限于授予的范围。要从 IAM Identity Center 服务中取回刷新后的令牌，必须赋予 `sso:account:access` 最小范围。有关可用访问范围选项的列表，请参阅《AWS IAM Identity Center 用户指南》中的 [Access scopes](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept)**。  
这些范围定义了为已注册的 OIDC 客户端请求授权的权限和客户端检索的访问令牌。范围授权对 IAM Identity Center 持有者令牌授权端点的访问。  
此设置不适用于遗留的不可刷新配置。使用传统配置发布的令牌被隐式限制在 `sso:account:access` 作用域范围内。

## Support AWS SDKs by 和工具
<a name="feature-sso-credentials-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 | credentials 文件中也支持配置值。 | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 部分 | 仅限遗留的不可刷新配置。 | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# IMDS 凭证提供者
<a name="feature-imds-credentials"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

实例元数据服务（IMDS）提供有关您的实例的数据，您可以用它来配置或管理正在运行的实例。有关可用数据的更多信息，请参阅《Amazon EC2 用户指南》中的[使用实例元数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)**。Amazon EC2 提供了可供实例使用的本地端点，该端点可以为实例提供各种信息。如果实例附加了角色，则它可以提供一组对该角色有效的凭证。 SDKs 可以使用该端点来解析作为其[默认凭证提供程序链](standardized-credentials.md#credentialProviderChain)一部分的证书。默认使用实例元数据服务版本 2 (IMDSv2)，即使用会话令牌的更安全的 IMDS 版本。如果由于不可重试的情况（HTTP 错误代码 403、404、405）而失败，则使用后备方法。 IMDSv1 

使用以下方法配置此功能：

**`AWS_EC2_METADATA_DISABLED` - 环境变量**  
是否尝试使用 Amazon EC2 实例元数据服务（IMDS）来获取凭证。  
**默认值：**`false`。  
**有效值：**  
+ **`true`** – 请勿使用 IMDS 来获取凭证。
+ **`false`** – 使用 IMDS 来获取凭证。

**`ec2_metadata_v1_disabled`-共享 AWS `config`文件设置`AWS_EC2_METADATA_V1_DISABLED` - 环境变量`aws.disableEc2MetadataV1`-JVM 系统属性：仅限 Java/Kotlin **  
如果 IMDSv2 失败，是否使用实例元数据服务版本 1 (IMDSv1) 作为后备方案。  
New SDKs 不支持 IMDSv1 ，因此不支持此设置。有关详细信息，请见表 [Support by AWS SDKs and too](#feature-imds-credentials-sdk-compat)。
**默认值：**`false`。  
**有效值：**  
+ **`true`**— 请勿 IMDSv1 用作备用。
+ **`false`**— IMDSv1 用作备用。

**`ec2_metadata_service_endpoint`-共享 AWS `config`文件设置`AWS_EC2_METADATA_SERVICE_ENDPOINT` - 环境变量`aws.ec2MetadataServiceEndpoint`-JVM 系统属性：仅限 Java/Kotlin **  
IMDS 的端点。此值将覆盖软件开发工具包和 AWS 工具用于搜索 Amazon EC2 实例元数据的默认位置。  
**默认值：**如果 `ec2_metadata_service_endpoint_mode` 等于 `IPv4`，则默认端点为 `http://169.254.169.254`。如果 `ec2_metadata_service_endpoint_mode` 等于 `IPv6`，则默认端点为 `http://[fd00:ec2::254]`。  
**有效值：**有效的 URI。

**`ec2_metadata_service_endpoint_mode`-共享 AWS `config`文件设置`AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` - 环境变量`aws.ec2MetadataServiceEndpointMode`-JVM 系统属性：仅限 Java/Kotlin **  
IMDS 的端点模式。  
**默认值：**`IPv4`。  
**有效值：**`IPv4`、`IPv6`。

**注意**  
IMDS 凭证提供者是 [了解默认凭证提供者链](standardized-credentials.md#credentialProviderChain) 的一部分。但是，只有在本系列中的其他几个提供者之后，才会检查 IMDS 凭证提供者。因此，如果您希望您的程序使用此提供者的凭证，则必须从配置中删除其他有效的凭证提供者或使用其他配置文件。或者，与其依赖凭证提供者链自动发现哪个提供者返回了有效凭证，不如在代码中指定使用的 IMDS 凭证提供者。创建服务客户端时，可直接指定凭证来源。

## IMDS 凭证的安全性
<a name="feature-imds-credentials-sdk-security"></a>

默认情况下，当 AWS 软件开发工具包未配置有效凭证时，软件开发工具包将尝试使用 Amazon EC2 实例元数据服务 (IMDS) 来检索 AWS 角色的证书。通过将 `AWS_EC2_METADATA_DISABLED` 环境变量设置为 `true`，可以禁用此行为。这样可以防止不必要的网络活动，并增强不可信网络的安全性，此类网络可能会模拟 Amazon EC2 实例元数据服务。

**注意**  
AWS 无论这些设置如何，配置了有效凭证的 SDK 客户端都不会使用 IMDS 检索凭证。

### 禁用 Amazon EC2 IMDS 凭证
<a name="feature-imds-credentials-disabling"></a>

如何设置此环境变量取决于所使用的操作系统以及您是否希望更改保持不变。

#### Linux 和 macOS
<a name="feature-imds-credentials-disabling-unix"></a>

使用 Linux 或 macOS 的客户可以使用以下命令设置此环境变量：

```
$ export AWS_EC2_METADATA_DISABLED=true
```

如果您希望此设置在多个 shell 会话和系统重启中保持不变，则可以将上述命令添加到您的 shell 配置文件中，例如 `.bash_profile`、`.zsh_profile` 或 `.profile`。

#### Windows
<a name="feature-imds-credentials-disabling-windows"></a>

使用 Windows 的客户可以使用以下命令设置此环境变量：

```
$ set AWS_EC2_METADATA_DISABLED=true
```

如果您希望此设置在多个 shell 会话和系统重启中保持不变，则可以改用以下命令：

```
$ setx AWS_EC2_METADATA_DISABLED=true
```

**注意**  
该 **setx** 命令不会将该值应用于当前的 shell 会话，因此您需要重新加载或重新打开 shell 才能使更改生效。

## Support by AWS SDKs and too
<a name="feature-imds-credentials-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 部分 | JVM 系统属性：使用 com.amazonaws.sdk.disableEc2MetadataV1 而不是 aws.disableEc2MetadataV1；不支持 aws.ec2MetadataServiceEndpoint 和 aws.ec2MetadataServiceEndpointMode。 | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 | 不使用 IMDSv1 后备。 | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 | 不使用 IMDSv1 后备。 | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 | 您可以使用在代码中显式禁用 IMDSv1 回退。[Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = \$1true | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 | 您可以使用在代码中显式禁用 IMDSv1 回退。[Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = \$1true | 

# 进程凭证提供者
<a name="feature-process-credentials"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

SDKs 提供一种针对自定义用例扩展凭证提供者链的方法。此提供者可用于提供自定义实现，例如从本地凭证存储中检索凭证或与本地身份提供者集成。

 例如，IAM Roles Anywhere 使用 `credential_process` 来代表您的应用程序获取临时凭证。要对此用途配置 `credential_process`，请参阅 [使用 IAM Anywhere 角色进行身份验证 AWS SDKs 和工具](access-rolesanywhere.md)。

**注意**  
下面介绍了一种从外部进程获取凭证的方法，可在您在 AWS之外运行软件时使用。如果您在 AWS 计算资源上进行构建，请使用其他凭证提供程序。使用此选项时，应确保按照适用于操作系统的安全最佳实践，尽可能锁定 config 文件。确认您的自定义凭证工具未向其写入任何机密信息`StdErr`，因为 SDKs和 AWS CLI 可以捕获和记录此类信息，从而有可能将其暴露给未经授权的用户。

使用以下方法配置此功能：

**`credential_process`-共享 AWS `config`文件设置**  
指定 SDK 或工具代表您运行的外部命令，以生成或检索用于该命令的身份验证凭证。该设置指定 SDK program/command 将调用的名称。当 SDK 调用该进程时，它会等待进程将 JSON 数据写入 `stdout`。自定义提供者必须以特定格式返回信息。该信息包含 SDK 或工具可用于对您进行身份验证的凭据。

**注意**  
进程凭证提供者是 [了解默认凭证提供者链](standardized-credentials.md#credentialProviderChain) 的一部分。但是，只有在本系列中的其他几个提供者之后，才会检查进程凭证提供者。因此，如果您希望您的程序使用此提供者的凭证，则必须从配置中删除其他有效的凭证提供者或使用其他配置文件。或者，与其依赖凭证提供者链自动发现哪个提供者返回了有效凭证，不如在代码中指定使用的进程凭证提供者。创建服务客户端时，可直接指定凭证来源。

## 指定凭证程序的路径
<a name="feature-process-credentials-detail-path"></a>

该设置的值是一个字符串，其中包含指向 SDK 或开发工具代表您运行的程序的路径：
+ 路径和文件名只能由以下字符组成：A-Z、a-z、0-9、连字符（-）、下划线（\$1）、句点（.）、正斜杠（/）、反斜杠（\$1）和空格。
+ 如果路径或文件名包含空格，请将完整路径和文件名用双引号 (" ") 括起来。
+ 如果参数名称或参数值包含空格，则用双引号 (" ") 将该元素括起来。仅括起来名称或值，而不是名称值对。
+ 请勿在字符串中包含任何环境变量。例如，您不能包含 `$HOME` 或 `%USERPROFILE%`。
+ 不要将主文件夹指定为 `~`。\$1 您必须指定完整路径或基文件名。如果存在基本文件名，则系统会尝试在 `PATH` 环境变量指定的文件夹中查找该程序。路径因操作系统而异：

  以下示例显示了在 Linux/macOS 上的共享 `config` 文件中设置 credential\$1process。

  ```
  credential_process = "/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"
  ```

  以下示例显示了在 Windows 上的共享 `config` 文件中设置 credential\$1process。

  ```
  credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
  ```
+  可以在专属配置文件中指定：

  ```
  [profile cred_process] 
  credential_process = /Users/username/process.sh 
  region = us-east-1
  ```

## 凭证计划的有效输出
<a name="feature-process-credentials-output"></a>

SDK 按照配置文件中指定的方式运行该命令，然后从标准输出流中读取数据。您指定的命令，无论是脚本还是二进制程序，都必须在 `STDOUT` 上生成符合以下语法的 JSON 输出。

```
{
    "Version": 1,
    "AccessKeyId": "an AWS access key",
    "SecretAccessKey": "your AWS secret access key",
    "SessionToken": "the AWS session token for temporary credentials", 
    "Expiration": "RFC3339 timestamp for when the credentials expire"
}
```

**注意**  
截至撰写本文之时，`Version` 密钥必须设置为 `1`。随时间推移和该结构的发展，该值可能会增加。

密`Expiration`钥是一个 RFC3339 格式化的时间戳。如果工具的输出中不存在 `Expiration` 密钥，则 SDK 假定凭证是不刷新的长期凭证。否则，将其视为临时凭证，并通过在其过期前重新运行 `credential_process` 命令来自动刷新凭证。

**注意**  
SDK ***不*** 缓存外部进程凭证，这一点不同于代入角色凭证。如果需要缓存，则必须在外部进程中实现。

外部进程可以返回非零返回代码，以指示在检索凭证时发生错误。

## Support AWS SDKs by 和工具
<a name="feature-process-credentials-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# AWS SDKs 和 “工具” 标准化功能
<a name="standardized-features"></a>

许多功能已标准化为一致的默认值，并且在许多功能上都以相同的方式工作 SDKs。这种一致性可以提高跨多个编码时的生产力和清晰度 SDKs。所有设置都可以在代码中被覆盖，请参阅您的特定 SDK API 了解详情。

**重要**  
并非所有功能都 SDKs 支持所有功能，甚至不是功能中的所有方面。

**Topics**
+ [基于账户的端点](feature-account-endpoints.md)
+ [应用程序 ID](feature-appid.md)
+ [Amazon EC2 实例元数据](feature-ec2-instance-metadata.md)
+ [Amazon S3 接入点](feature-s3-access-point.md)
+ [Amazon S3 多区域访问点](feature-s3-mrap.md)
+ [S3 Express One Zone 会话身份验证](feature-s3-express.md)
+ [身份验证方案](feature-auth-scheme.md)
+ [AWS 区域](feature-region.md)
+ [AWS STS 区域终端节点](feature-sts-regionalized-endpoints.md)
+ [数据完整性保护](feature-dataintegrity.md)
+ [双堆栈和 FIPS 端点](feature-endpoints.md)
+ [端点发现](feature-endpoint-discovery.md)
+ [常规配置](feature-gen-config.md)
+ [主机前缀注入](feature-host-prefix.md)
+ [IMDS 客户端](feature-imds-client.md)
+ [重试行为](feature-retry-behavior.md)
+ [请求压缩](feature-compression.md)
+ [特定于服务的端点](feature-ss-endpoints.md)
+ [智能配置默认值](feature-smart-config-defaults.md)

# 基于账户的端点
<a name="feature-account-endpoints"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

基于账户的端点通过使用 AWS 账户 ID 来为支持此功能的服务路由请求，有助于确保高性能和可扩展性。使用支持基于账户的端点的 AWS SDK 和服务时，SDK 客户端会构造和使用基于账户的端点，而不是区域性端点。如果 SDK 客户端看不到账户 ID，则该客户端将使用区域性端点。基于账户的终端节点的形式是`https://<account-id>.ddb.<region>.amazonaws.com`，你`<region>`的 AWS 账户 ID 在哪里，在哪里`<account-id>`，以及。 AWS 区域

使用以下方法配置此功能：

**`aws_account_id`-共享 AWS `config`文件设置`AWS_ACCOUNT_ID` - 环境变量`aws.accountId`-JVM 系统属性：仅限 Java/Kotlin **  
 AWS 账户 身份证。用于基于账户的端点路由。 AWS 账户 ID 的格式类似于 111122223333。  
 对于某些服务，基于账户的端点路由可提高请求性能。

**`account_id_endpoint_mode`-共享 AWS `config`文件设置`AWS_ACCOUNT_ID_ENDPOINT_MODE` - 环境变量`aws.accountIdEndpointMode`-JVM 系统属性：仅限 Java/Kotlin **  
此设置用于在必要时关闭基于账户的端点路由，并绕过基于账户的规则。  
**默认值**：`preferred`  
**有效值：**  
+ **`preferred`**：端点应包含账户 ID（如果有）。
+ **`disabled`**：已解析的端点不包含账户 ID。
+ **`required`**：端点必须包含账户 ID。如果账户 ID 不可用，SDK 会引发错误。

## Support AWS SDKs by 和工具
<a name="account-endpoints-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 发布此功能的 SDK 版本 | 备注或更多信息 | 
| --- | --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 | 2.25.0 |  | 
| [AWS CLI v1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html) | 是 | 1.38.0 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 否 |  |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 | v1.35.0 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 | v2.28.4 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 | v1.12.771 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 | v3.656.0 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 | v1.3.37 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 | 4.0.0 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 否 |  |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 | v3.318.0 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | 1.37.0 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 | v1.123.0 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 | 发布-2025-04-24 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 | 1.2.0 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 否 |  |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 否 |  |  | 

# 应用程序 ID
<a name="feature-appid"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

一个 AWS 账户 可以被多个客户应用程序用来拨打电话 AWS 服务。应用程序 ID 为客户提供了一种识别哪个源应用程序使用进行了一组调用的方法 AWS 账户。 AWS SDKs 而且，服务不会使用或解释此值，除非将其显示在客户通信中。例如，此值可以包含在操作电子邮件中，也可以包含在中， AWS Health Dashboard 以唯一标识您的哪些应用程序与通知相关联。

使用以下方法配置此功能：

**`sdk_ua_app_id`-共享 AWS `config`文件设置`AWS_SDK_UA_APP_ID` - 环境变量`sdk.ua.appId`-JVM 系统属性：仅限 Java/Kotlin **  
此设置是您分配给应用程序的唯一字符串，用于标识特定应用程序中的哪些应用程序 AWS 账户 正在调用 AWS。  
**默认值**：`None`  
**有效值：**字符串，最大长度为 50。允许使用字母、数字和以下特殊字符：`!`、`#`、`$`、`%`、`&`、`'`、`*`、`+`、`-`、`.`、`^`、`_`、```、`|`、、`~`

在 `config` 文件中设置此值的示例：

```
[default]
sdk_ua_app_id=ABCDEF
```

Linux/macOS 通过命令行设置环境变量的示例：

```
export AWS_SDK_UA_APP_ID=ABCDEF
export AWS_SDK_UA_APP_ID="ABC DEF"
```

Windows 通过命令行设置环境变量的示例：

```
setx AWS_SDK_UA_APP_ID ABCDEF
setx AWS_SDK_UA_APP_ID="ABC DEF"
```

如果包含对所用 Shell 具有特殊含义的符号，请根据需要对该值进行转义。

## Support AWS SDKs by 和工具
<a name="appid-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 | 不支持共享的config文件。 | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 部分 | 不支持共享 config 文件设置；不支持环境变量。 | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 | JVM 系统属性为 aws.userAgentAppId。 | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# Amazon EC2 实例元数据
<a name="feature-ec2-instance-metadata"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

Amazon EC2 在实例上提供了一项名为实例元数据服务（IMDS）的服务。要了解有关此服务的更多信息，请参阅《Amazon EC2 用户指南》中的[使用实例元数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)**。尝试在已配置 IAM 角色的 Amazon EC2 实例上检索凭证时，默认情况下，与实例元数据服务的连接是可调节的。

使用以下方法配置此功能：

**`metadata_service_num_attempts`-共享 AWS `config`文件设置`AWS_METADATA_SERVICE_NUM_ATTEMPTS` - 环境变量**  
本设置指定了尝试从实例元数据服务检索数据时，在放弃前尝试的总次数。  
**默认值：** 1  
**有效值：**大于或等于 1 的数字。

**`metadata_service_timeout`-共享 AWS `config`文件设置`AWS_METADATA_SERVICE_TIMEOUT` - 环境变量**  
指定的从实例元数据服务检索数据时，发生超时前的秒数。  
**默认值：** 1  
**有效值：**大于或等于 1 的数字。

在 `config` 文件中设置这些值的示例：

```
[default]
metadata_service_num_attempts=10
metadata_service_timeout=10
```

Linux/macOS 通过命令行设置环境变量的示例：

```
export AWS_METADATA_SERVICE_NUM_ATTEMPTS=10
export AWS_METADATA_SERVICE_TIMEOUT=10
```

Windows 通过命令行设置环境变量的示例：

```
setx AWS_METADATA_SERVICE_NUM_ATTEMPTS 10
setx AWS_METADATA_SERVICE_TIMEOUT 10
```

## Support AWS SDKs by 和工具
<a name="feature-ec2-instance-metadata-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 否 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 否 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 部分 | 仅支持 AWS\$1METADATA\$1SERVICE\$1TIMEOUT。 | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 部分 | 仅支持 AWS\$1METADATA\$1SERVICE\$1TIMEOUT。 | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 否 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 否 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 否 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 否 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 否 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 否 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 否 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 否 |  | 

# Amazon S3 接入点
<a name="feature-s3-access-point"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

Amazon S3 服务提供接入点作为与 Amazon S3 存储桶交互的替代方式。接入点上可以应用唯一的策略和配置，而不是直接应用到存储桶。使用 AWS SDKs，您可以在存储桶字段中使用接入点 Amazon 资源名称 (ARNs) 进行 API 操作，而不必明确指定存储桶名称。它们用于特定的操作，例如使用具有 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 的接入点 ARN 从存储桶中获取对象，或者使用具有 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 的接入点 ARN 将对象添加到存储桶。

要了解有关 Amazon S3 接入点的更多信息 ARNs，请参阅 *Amazon S3 用户指南*中的[使用接入点](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)。

使用以下方法配置此功能：

**`s3_use_arn_region`-共享 AWS `config`文件设置`AWS_S3_USE_ARN_REGION` - 环境变量`aws.s3UseArnRegion`-JVM 系统属性：仅限 Java/Kotlin 要直接在代码中配置值，请直接查阅您的特定 SDK。**  
此设置控制 SDK 是否使用接入点 ARN AWS 区域 为请求构造区域终端节点。SDK 会验证 AWS 区域 ARN 是否由与客户端 AWS 区域 配置 AWS 相同的分区提供服务，以防止最有可能失败的跨分区调用。如果多次定义，则优先使用代码配置的设置，其次是环境变量设置。  
**默认值**：`false`  
**有效值：**  
+ **`true`**— SDK 在构造终端节点 AWS 区域 时使用 ARN，而不是客户端的配置 AWS 区域。例外：如果客户端的配置 AWS 区域 是 FIPS AWS 区域，则它必须与 ARN 相匹配。 AWS 区域否则将导致出现错误。
+ **`false`** – SDK 在构造端点时使用客户端配置的 AWS 区域 。

## Support AWS SDKs by 和工具
<a name="access-point-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 | 不支持 JVM 系统属性。 | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 | 不遵循标准优先顺序；共享的 config 文件值优先于环境变量。 | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 否 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 | 不遵循标准优先顺序；共享的 config 文件值优先于环境变量。 | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 | 不遵循标准优先顺序；共享的 config 文件值优先于环境变量。 | 

# Amazon S3 多区域访问点
<a name="feature-s3-mrap"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

Amazon S3 多区域接入点提供了一种全局端点，应用程序可以使用该端点来满足来自位于多个 AWS 区域的 Amazon S3 存储桶的请求。您可以使用多区域接入点构建多区域应用程序，使用单个区域中使用的相同架构，然后在世界任何地方运行这些应用程序。

要了解有关多区域接入点的更多信息，请参阅 *Amazon S3 用户指南*中的 [Amazon S3 中的多区域接入点](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPoints.html)。

要了解有关多区域接入点 Amazon 资源名称 (ARNs) 的更多信息，请参阅 Amaz *on S3 用户*指南中的[使用多区域接入点发出请求](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPointRequests.html)。

要了解有关创建多区域接入点的更多信息，请参阅 *Amazon S3 用户指南*中的[管理多区域接入点](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)。

SigV4A 算法是用于签署全局区域请求的签名实现。该算法由 SDK 通过 [AWS 常用运行时 (CRT) 库](common-runtime.md) 上的依赖项来获得。

使用以下方法配置此功能：

**`s3_disable_multiregion_access_points`-共享 AWS `config`文件设置`AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS` - 环境变量`aws.s3DisableMultiRegionAccessPoints`-JVM 系统属性：仅限 Java/Kotlin 要直接在代码中配置值，请直接查阅您的特定 SDK。**  
此设置控制 SDK 是否可能尝试跨区域请求。如果多次定义，则优先使用代码配置的设置，其次是环境变量设置。  
**默认值**：`false`  
**有效值：**  
+ **`true`** – 停止使用跨区域请求。
+ **`false`** – 使用多区域接入点启用跨区域请求。

## Support AWS SDKs by 和工具
<a name="s3-mrap-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# S3 Express One Zone 会话身份验证
<a name="feature-s3-express"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

S3 Express One Zone 是 Amazon S3 的高性能存储类别，可为频繁访问的数据提供低至几毫秒的延迟。当您使用 S3 Express One Zone 存储桶 AWS SDKs 和工具时，会自动使用基于会话的身份验证，该身份验证针对数据请求的低延迟授权进行了优化。您可以将会话令牌与可用区级（对象级）操作结合使用，从而分散为一个会话中的多个请求进行授权有关的延迟，降低身份验证开销并提高整体请求性能。

S3 Express One Zone 存储桶使用包含可用区 ID 的专用命名格式，例如 `bucket-name--usw2-az1--x-s3`。当 SDK 检测到这种命名模式时，将会自动将请求路由到相应的 S3 Express One Zone 端点，并应用优化的身份验证流程。会话身份验证会创建临时的存储桶特定凭证，从而提供对存储桶的低延迟访问，并由 SDK 自动缓存和刷新。要了解更多信息，请参阅《Amazon S3 用户指南》中的 [S3 Express One Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-high-performance.html#s3-express-one-zone)**。

S3 Express One Zone 存储桶会默认启用会话身份验证。

使用以下方法配置此功能：

**`s3_disable_express_session_auth`-共享 AWS `config`文件设置`AWS_S3_DISABLE_EXPRESS_SESSION_AUTH` - 环境变量`aws.disableS3ExpressAuth`-JVM 系统属性：仅限 Java/Kotlin **  
控制是否禁用 S3 Express One Zone 会话身份验证。设置为 `true` 时，SDK 将为 S3 Express One Zone 存储桶使用标准的 Sigv4 身份验证，而不是会话身份验证。  
**默认值**：`false`  
**有效值：**  
+ **`true`**：禁用 S3 Express One Zone 会话身份验证。
+ **`false`**：启用 S3 Express One Zone 会话身份验证。

在 `config` 文件中设置此值的示例：

```
[default]
s3_disable_express_session_auth=true
```

Linux/macOS 通过命令行设置环境变量的示例：

```
export AWS_S3_DISABLE_EXPRESS_SESSION_AUTH=true
```

Windows 通过命令行设置环境变量的示例：

```
setx AWS_S3_DISABLE_EXPRESS_SESSION_AUTH true
```

## Support AWS SDKs by 和工具
<a name="s3-express-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [AWS CLI v1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html) | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 | JVM 系统属性为 aws.s3DisableExpressSessionAuth。 | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# 身份验证方案
<a name="feature-auth-scheme"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

AWS 服务支持多种身份验证方案，例如 AWS 签名版本 4 (Sigv4) 和 AWS 签名版本 4a (sigv4a)。默认情况下，根据服务模型定义 SDKs 选择身份验证方案，并优先考虑提供最佳兼容性的方案。但您可以配置根据具体要求进行优化的首选身份身验证方案。

与 SigV4 不同，使用 SigV4a 签名的请求在多个 AWS 区域中都有效。SigV4a 通过跨区域请求签名来提高可用性，方便在发生区域中断时自动失效转移到备用区域。这对于像我们的 Amazon 这样的 AWS Identity and Access Management 全球服务特别有利 CloudFront。

有关这两种身份验证方案的更多信息，请参阅《IAM 用户指南》中的[适用于 API 请求的AWS 签名版本 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)**。

使用以下方法配置此功能：

**`auth_scheme_preference`-共享 AWS `config`文件设置`AWS_AUTH_SCHEME_PREFERENCE` - 环境变量`aws.authSchemePreference`-JVM 系统属性：仅限 Java/Kotlin **  
按优先顺序指定首选身份验证方案列表（以逗号分隔）。当一项服务支持多种身份验证方案时，SDK 会尝试按指定顺序使用该列表中的方案，如果所有首选方案都不可，用则会回退到默认行为。  
**默认值：**无。  
**有效值：**以下一项或多项的逗号分隔列表：  
+ **`sigv4`**：签名版本 4（性能最快，单区域）
+ **`sigv4a`**：签名版本 4a（可用性更强，跨区域支持，签名性能比 SigV4 慢）
+ **`httpBearerAuth`**：HTTP 不记名令牌身份验证
方案名称之间的空格和制表符将被忽略。  
在 `config` 文件中将该值设置为首选 SigV4a 的示例：  

```
[default]
auth_scheme_preference=sigv4a,sigv4
```

**`sigv4a_signing_region_set`-共享 AWS `config`文件设置`AWS_SIGV4A_SIGNING_REGION_SET` - 环境变量**  
为 Sigv4a 多区域签名指定以逗号分隔 AWS 区域 的列表。如果所选的身份验证方案为 SigV4a，则将此用作为该请求设置的默认区域。  
**默认值：**因请求而定。  
**有效值：**以逗号分隔的 AWS 区域列表。区域之间的空格和制表符将被忽略。

## Support AWS SDKs by 和工具
<a name="auth-scheme-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 否 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 否 |  | 

# AWS 区域
<a name="feature-region"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

AWS 区域 是使用时需要理解的重要概念 AWS 服务。

使用 AWS 区域，您可以访问 AWS 服务 实际居住在特定地理区域的内容。这可用于保证您的数据和应用程序接近您和用户访问它们的位置。区域提供容错能力、稳定性和弹性，还可以减少延迟。使用区域，您能够创建保持可用且不受区域中断影响的冗余资源。

大多数 AWS 服务 请求都与特定的地理区域相关联。除非您明确使用 AWS 服务提供的复制功能，否则在一个区域中创建的资源在任何其他区域中都不存在。例如，Amazon S3 和 Amazon EC2 支持跨区域复制。某些服务（例如 IAM）没有区域资源。

*AWS 一般参考* 包含有关以下内容的信息：
+  要了解区域和端点之间的关系，并查看现有区域端点的列表，请参阅[AWS 服务端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。
+ 要查看当前各 AWS 服务所有支持的区域和端点列表，请参阅[服务端点和限额](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)。

**创建服务客户端**

要以编程方式访问 AWS 服务， SDKs 请分别 AWS 服务使用客户端 class/object 。例如，如果您的应用程序需要访问 Amazon EC2，则您的应用程序将创建一个 Amazon EC2 客户端对象来与该服务交互。

如果没有在代码本身中为客户端显式指定区域，则客户端将默认使用通过以下 `region` 设置设定的区域。但是，可以为任何单个客户端对象显式设置客户端的活动区域。以这种方式设置区域优先于该特定服务客户端的任何全局设置。备用区域是在该客户端的实例化过程中指定的，该区域特定于您的 SDK（请查看您的特定 SDK 指南或 SDK 的代码库）。

使用以下方法配置此功能：

**`region`-共享 AWS `config`文件设置`AWS_REGION` - 环境变量`aws.region`-JVM 系统属性：仅限 Java/Kotlin **  
指定 AWS 请求 AWS 区域 使用的默认值。此区域用于未提供特定区域的 SDK 服务请求。  
**默认值：**无。必须明确指定此值。  
**有效值：**  
+ 可用于所选服务的任何区域代码，有关列表，请参阅 *AWS 一般参考*中的 [AWS 服务端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。例如，值 `us-east-1` 将端点设置为 AWS 区域 美国东部（弗吉尼亚州北部）。
+ `aws-global`为除区域终端节点之外还支持单独的全局终端节点的服务指定全局终端节点，例如 AWS Security Token Service (AWS STS) 和亚马逊简单存储服务 (Amazon S3) Service。

在 `config` 文件中设置此值的示例：

```
[default]
region = us-west-2
```

Linux/macOS 通过命令行设置环境变量的示例：

```
export AWS_REGION=us-west-2
```

Windows 通过命令行设置环境变量的示例：

```
setx AWS_REGION us-west-2
```

大多数 SDKs 都有一个 “配置” 对象，可用于在应用程序代码中设置默认区域。有关详细信息，请参阅您的特定 AWS SDK 开发者指南。

## Support AWS SDKs by 和工具
<a name="feature-region-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 | AWS CLI v2 在中的任何值AWS\$1REGION之前使用中的任何值AWS\$1DEFAULT\$1REGION（两个变量都被选中）。 | 
| [AWS CLI v1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html) | 是 | AWS CLI v1 使用AWS\$1DEFAULT\$1REGION为此目的命名的环境变量。 | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | 此 SDK 使用名为 AWS\$1DEFAULT\$1REGION 的环境变量来实现此目的。 | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# AWS STS 区域终端节点
<a name="feature-sts-regionalized-endpoints"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

 AWS Security Token Service (AWS STS) 既提供全球服务，也提供区域服务。其中一些 AWS SDKs和默认 CLIs 使用全球服务终端节点 (`https://sts.amazonaws.com`)，而有些则使用区域服务终端节点 (`https://sts.{region_identifier}.{partition_domain}`)。在[默认启](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)用的区域中，向 AWS STS 全球终端节点发出的请求会自动在请求发起的同一区域中提供服务。在可选区域中，向 AWS STS 全球终端节点发出的请求由一个 AWS 区域美国东部（弗吉尼亚北部）提供服务。有关 AWS STS 终端节点的更多信息，请参阅 *AWS Security Token Service API 参考 AWS STS *[中的[终](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html#sts-endpoints)端节点或*AWS Identity and Access Management 用户指南 AWS 区域*中的管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)。

 AWS 最佳做法是尽可能使用区域终端节点并配置您的终端节点[AWS 区域](feature-region.md)。非商业[分区](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?id=docs_gateway#partition)中的客户必须使用区域性端点。并非所有 SDKs 工具都支持此设置，但所有工具都围绕全球和区域端点定义了行为。有关更多信息，请参阅下文的 部分。

**注意**  
AWS 已对[默认启用的](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)区域中的 AWS Security Token Service (AWS STS) 全球终端节点 (`https://sts.amazonaws.com`) 进行了更改，以增强其弹性和性能。 AWS STS 对全局终端节点的请求将自动以与您的工作负载 AWS 区域 相同的方式处理。这些更改不会部署到选择加入的区域。我们建议您使用适当的 AWS STS 区域终端节点。有关更多信息，请参阅《AWS Identity and Access Management 用户指南》中的 [AWS STS 全局端点更改](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_region-endpoints.html#reference_sts_global_endpoint_changes)**。

对于支持此设置的 SDKs 和工具，客户可以使用以下方式配置功能：

**`sts_regional_endpoints`-共享 AWS `config`文件设置`AWS_STS_REGIONAL_ENDPOINTS` - 环境变量**  
此设置指定 SDK 或工具如何确定用于与 AWS Security Token Service (AWS STS) 通信的 AWS 服务 端点。  
**默认值：**`regional`，相关例外详见下表。  
2022 年 7 月之后发布的所有新 SDK 主要版本都将默认为`regional`。新的 SDK 主要版本可能会删除此设置并使用`regional`行为。为了减少此变更对未来的影响，我们建议您尽可能在应用程序中开始使用`regional`。
**有效值：***（建议的值：`regional`）*   
+ **`legacy`**— 使用全局 AWS STS 终端节点`sts.amazonaws.com`。
+ **`regional`**— SDK 或工具始终使用当前配置区域的 AWS STS 终端节点。例如，如果将客户端配置为使用`us-west-2`，则对的所有调用都将 AWS STS 发送到区域终端节点`sts.us-west-2.amazonaws.com`，而不是全球`sts.amazonaws.com`终端节点。要在启用此设置时向全局端点发送请求，您可以将区域设置为 `aws-global`。
在 `config` 文件中设置这些值的示例：  

```
[default]
sts_regional_endpoints = regional
```
Linux/macOS 通过命令行设置环境变量的示例：  

```
export AWS_STS_REGIONAL_ENDPOINTS=regional
```
Windows 通过命令行设置环境变量的示例：  

```
setx AWS_STS_REGIONAL_ENDPOINTS regional
```

## Support AWS SDKs by 和工具
<a name="feature-sts-regionalized-endpoints-sdk-compat"></a>

**注意**  
 AWS 最佳做法是尽可能使用区域终端节点并配置您的终端节点[AWS 区域](feature-region.md)。

 下表汇总了 SDK 或工具的下列配置：
+ **支持设置**：是否支持 STS 区域性端点的共享 `config` 文件变量和环境变量。
+ **默认设置值**：该设置（如果支持）的默认值。
+ **默认服务客户端目标 STS 端点**：即使更改默认端点的设置不可用，客户端也会使用的默认端点。
+ **服务客户端回退行为**：当 SDK 本应使用区域性端点但尚未配置区域时的行为。无论使用区域性端点是属于默认行为，还是因为该设置选择了 `regional`，都会出现这种行为。

该表还使用了下列值：
+ **全局端点**：`https://sts.amazonaws.com`
+ **区域性端点**：基于应用程序使用的 [AWS 区域](feature-region.md)配置。
+ **`us-east-1`（区域性）**：使用 `us-east-1` 区域性端点，但会话令牌要比典型的全局请求长。


| SDK |  支持设置  |  默认设置值  |  默认服务客户端目标 STS 端点  |  服务客户端回退行为  | 备注或更多信息 | 
| --- | --- | --- | --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 否 | 不适用 | 区域端点 | 全局端点 |  | 
| [AWS CLI v1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html) | 是 | legacy | 全局端点 | 全局端点 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 否 | 不适用 | 区域端点 | us-east-1（区域性） |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 否 | 不适用 | 区域端点 | 请求失败 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | legacy | 全局端点 | 全局端点 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 否 | 不适用 | 区域端点 | 请求失败 |  如果未配置区域，则 `AssumeRole` 和 `AssumeRoleWithWebIdentity` 将使用全局 STS 端点。  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 | legacy | 全局端点 | 全局端点 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 否 | 不适用 | 区域端点 | us-east-1（区域性） |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 | legacy | 全局端点 | 全局端点 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 否 | 不适用 | 区域端点 | 全局端点 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 否 | 不适用 | 区域端点 | us-east-1（区域性） |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 | regional | 全局端点 | 全局端点 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 | regional | 全局端点 | 请求失败 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | regional | 全局端点 | 全局端点 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 | regional | 区域端点 | 请求失败 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 否 | 不适用 | 区域端点 | 请求失败 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 | 不适用 | 区域端点 | 请求失败 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 | regional | 全局端点 | 全局端点 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 | regional | 全局端点 | 全局端点 |  | 

# Amazon S3 数据完整性保护
<a name="feature-dataintegrity"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

一段时间 AWS SDKs 以来，一直支持在向亚马逊简单存储服务上传数据或从中下载数据时进行数据完整性检查。以前，这些支持采用选择加入方式。现在，我们使用基于 CRC 的算法（例如 CRC32 或 CRC64 NVME）默认启用了这些检查。尽管各个 SDK 或工具都有其默认的算法，不过您也可以选择其他的算法。您还可以选择继续手动为上传提供预先计算的校验和。上传、分段上传、下载和加密模式均使用一致的行为，简化了客户端完整性检查的过程。

 我们的 AWS SDKs 最新版本 AWS CLI 会自动计算每次上传的[基于循环冗余校验 (CRC) 的校验和](https://en.wikipedia.org/wiki/Cyclic_redundancy_check)，并将其发送到 Amazon S3。Amazon S3 会在服务器端独立计算校验和，并使用提供的值对其进行验证，然后才会将对象及其校验和持久地存储在对象的元数据中。通过将校验和与对象一起存储在元数据中，下载对象时将可以自动返回相同的校验和并用于验证下载。您也可以随时验证存储在对象元数据中的校验和。

 要详细了解校验和操作、分段上传或支持的校验和算法列表，请参阅《Amazon Simple Storage Service 用户指南》中的[在 Amazon S3 中检查对象完整性](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)**。

 **分段上传：**

Amazon S3 还为开发人员提供了涵盖单段上传和分段上传的一致完整对象校验和，。

分成多个部分上传文件时，会 SDKs 计算每个部分的校验和。Amazon S3 使用这些校验和来通过 `UploadPart` API 验证每个分段的完整性。此外，Amazon S3 会在您调用 `CompleteMultipartUpload` API 时验证整个文件的大小以及校验和。

如果您的 SDK 使用 Amazon S3 Transfer Manager 来协助分段上传，则将使用 [Support AWS SDKs by 和工具](#dataintegrity-sdk-compat) 表中特定于 SDK 的默认算法来验证分段的校验和。您可以通过将设置设置设置为`FULL_OBJECT`或选择使用 CRC64 NVME 算`checksum_type`法来选择启用完整的对象校验和。

**如果您使用的是较早版本的 SDK 或 AWS CLI：**

如果您的应用程序使用 2024 年 12 月之前的软件开发工具包或工具，Amazon S3 仍会计算新对象的 CRC64 NVME 校验和，并将其存储在对象元数据中以备将来参考。您可以稍后将存储的 CRC 与您计算的 CRC 进行比较，验证网络传输是否正确。此外，您仍然可以通过 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 或 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 请求提供自己预先计算的校验和来手动扩展完整性保护，这是早期版本中解决此问题的标准方法。



使用以下方法配置此功能：

**`request_checksum_calculation`-共享 AWS `config`文件设置`AWS_REQUEST_CHECKSUM_CALCULATION` - 环境变量`aws.requestChecksumCalculation`-JVM 系统属性：仅限 Java/Kotlin **  
默认情况下，用户会在发送请求时选择启用请求校验和计算。用户可以在构建请求过程中选择任何一种[可用的校验和算法](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html)。如果用户未进行选择，则将使用 SDK 特定的默认算法。有关各个 SDK 或工具的默认算法，请参阅 [Support AWS SDKs by 和工具](#dataintegrity-sdk-compat)表。  
**默认值**：`WHEN_SUPPORTED`  
**有效值：**  
+ **`WHEN_SUPPORTED`**：在 API 操作支持时（例如向 Amazon S3 传输数据时）对所有请求有效载荷执行校验和验证。
+ **`WHEN_REQUIRED`**：仅在 API 操作要求时才执行校验和验证。

**`response_checksum_validation`-共享 AWS `config`文件设置`AWS_RESPONSE_CHECKSUM_VALIDATION` - 环境变量`aws.responseChecksumValidation`-JVM 系统属性：仅限 Java/Kotlin **  
默认情况下，用户在发送请求时会选择启用执行响应校验和验证。计算响应有效载荷的校验和，并与校验和响应标头进行比较。如果校验和验证失败，则在读取有效载荷时会向用户发出错误。  
 校验和响应标头还会指示校验和的算法。对于所有支持校验和的 Amazon S3 API 操作，Amazon S3 客户端都会尝试验证响应校验和。但如果 SDK 尚未实现指定的校验和算法，则会跳过此验证。  
**默认值**：`WHEN_SUPPORTED`  
**有效值：**  
+ **`WHEN_SUPPORTED`**：在 API 操作支持时（例如向 Amazon S3 传输数据时）对所有响应有效载荷执行校验和验证。
+ **`WHEN_REQUIRED`**：仅在 API 操作支持且调用方已为该操作显式启用校验和时，才会执行校验和验证。例如，调用 Amazon S3 `GetObject` API 并且 `ChecksumMode` 参数设置为“启用”时。

## Support AWS SDKs by 和工具
<a name="dataintegrity-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。

**注意**  
在下表中，“CRT”是指 [AWS 常用运行时 (CRT) 库](common-runtime.md)，并且可能需要向您的项目添加其他依赖项。


| SDK | 支持 | 默认校验和算法 | 支持的校验和算法 | 备注或更多信息 | 
| --- | --- | --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 | CRC64NVME | CRC64NVME CRC32,, CRC32 C, SHA1 SHA256  | 对于 AWS CLI v1，默认算法和支持的算法将与 Python (Boto3) 相同。 | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 | CRC64NVME | CRC64NVME CRC32,, CRC32 C, SHA1 SHA256  |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 | CRC32 | CRC64NVME CRC32,, CRC32 C, SHA1 SHA256  |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  |  |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 | CRC32 | CRC64NVME（仅通过 CRT）、 CRC32、 CRC32 C、 SHA1 SHA256 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  |  |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 | CRC32 | CRC32， CRC32C， SHA1， SHA256 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  |  |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 | CRC32 | CRC32， CRC32C， SHA1， SHA256 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 | CRC32 | CRC32， CRC32C， SHA1， SHA256 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 | CRC32 | CRC32， CRC32C， SHA1， SHA256 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 | CRC32 | CRC32、 CRC32 C（仅通过 CRT）、、 SHA1 SHA256 | awscrt需要扩展名才能使用 CRC32 C。 | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | CRC32 | CRC64NVME（仅通过 CRT）、 CRC32、 CRC32 C（仅通过 CRT）、、 SHA1 SHA256 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 | CRC32 | CRC64NVME（仅通过 CRT）、 CRC32、 CRC32 C（仅通过 CRT）、、 SHA1 SHA256 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 | CRC32 | CRC64NVME CRC32,, CRC32 C, SHA1 SHA256  |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 | CRC32 | CRC64NVME CRC32,, CRC32 C, SHA1 SHA256  | 所有算法都需要 CRT 依赖项。 | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 | CRC32 | CRC32， CRC32C， SHA1， SHA256 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 | CRC32 | CRC32， CRC32C， SHA1， SHA256 |  | 

# 双堆栈和 FIPS 端点
<a name="feature-endpoints"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

使用以下方法配置此功能：

**`use_dualstack_endpoint`-共享 AWS `config`文件设置`AWS_USE_DUALSTACK_ENDPOINT` - 环境变量`aws.useDualstackEndpoint`-JVM 系统属性：仅限 Java/Kotlin **  
开启或关闭 SDK 是否向双堆栈端点发送请求。要了解有关双堆栈终端节点的更多信息，请参阅《亚马逊*简单存储服务用户*指南》中的 “[使用 Amazon S3 双堆栈终端节点](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)”。 IPv4 IPv6 双堆栈端点适用于某些区域。  
**默认值**：`false`  
**有效值：**  
+ **`true`** – SDK 或工具将尝试使用双堆栈端点发出网络请求。如果服务和/或 AWS 区域不存在双堆栈端点，则请求将失败。
+ **`false`** – SDK 或工具将不会使用双堆栈端点发出网络请求。

**`use_fips_endpoint`-共享 AWS `config`文件设置`AWS_USE_FIPS_ENDPOINT` - 环境变量`aws.useFipsEndpoint`-JVM 系统属性：仅限 Java/Kotlin **  
开启或关闭 SDK 或工具是否向符合 FIPS 的端点发送请求。联邦信息处理标准 (FIPS) 是美国政府对数据及其加密的一系列安全要求。政府机构、合作伙伴以及希望与联邦政府开展业务的机构必须遵守 FIPS 指导方针。与标准 AWS 端点不同，FIPS 端点使用经过 FIPS 140 验证的 TLS 软件库。如果启用此设置，并且您的服务中不存在 FIPS 终端节点 AWS 区域，则 AWS 呼叫可能会失败。 [特定于服务的端点](feature-ss-endpoints.md)以及 AWS Command Line Interface 覆盖此设置的`--endpoint-url`选项。  
要详细了解通过其他方式指定 FIPS 终端节点 AWS 区域，请参阅按服务划分的 [FIPS 终端节点](https://aws.amazon.com/compliance/fips/)。有关亚马逊弹性计算云服务终端节点的更多信息，请参阅《*亚马逊 EC2 API 参考*》中的[双栈（IPv4 和 IPv6）终端节点](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Using_Endpoints.html#ipv6)。  
**默认值**：`false`  
**有效值：**  
+ **`true`** – SDK 或工具将向符合 FIPS 的端点发送请求。
+ **`false`** – SDK 或工具将不会向符合 FIPS 的端点发送请求。

## Support by AWS SDKs and 工具
<a name="endpoints-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# 端点发现
<a name="feature-endpoint-discovery"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

SDKs 使用端点发现来访问服务端点（URLs 访问各种资源），同时仍然可以灵活地根据 AWS 需要 URLs 进行更改。这样，您的代码就可以自动检测新的端点。某些服务没有固定的端点。相反，您可以在运行时通过请求先获取端点来获得可用的端点。检索到可用端点后，代码会使用该端点访问其他操作。例如，对于 Amazon Timestream，SDK 会发出`DescribeEndpoints`请求以检索可用的端点，然后使用这些端点完成特定操作，例如`CreateDatabase`或`CreateTable`。

使用以下方法配置此功能：

**`endpoint_discovery_enabled`-共享 AWS `config`文件设置`AWS_ENABLE_ENDPOINT_DISCOVERY` - 环境变量`aws.endpointDiscoveryEnabled`-JVM 系统属性：仅限 Java/Kotlin 要直接在代码中配置值，请直接查阅您的特定 SDK。**  
开启或关闭 DynamoDB 的端点发现功能。  
端点发现在 Timestream 中为必需，而在 Amazon DynamoDB 中为可选。此设置的默认值为 `true` 或 `false`，具体取决于端点发现功能对于该服务是否为必需。对于 Timestream 请求的默认值为 `true`，而对于 Amazon DynamoDB 请求的默认值为 `false`。  
**有效值：**  
+ **`true`** – 对于端点发现是可选的服务，SDK 应自动尝试发现端点。
+ **`false`** – 对于端点发现是可选的服务，SDK 不应自动尝试发现端点。

## Support AWS SDKs by 和工具
<a name="endpoint-discovery-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 | 适用于 Java 的 SDK 2.x 使用 AWS\$1ENDPOINT\$1DISCOVERY\$1ENABLED 作为环境变量名称。 | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 部分 | 不支持 JVM 系统属性。 | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 部分 | 仅支持 Timestream。 | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# 常规配置设置
<a name="feature-gen-config"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

SDKs 支持一些用于配置 SDK 整体 SDK 行为的常规设置。

使用以下方法配置此功能：

**`api_versions`-共享 AWS `config`文件设置**  
有些 AWS 服务维护多个 API 版本以支持向后兼容。默认情况下，SDK 和 AWS CLI 操作使用最新的可用 API 版本。如要求使用特定的 API 版本来处理您的请求，请在您的个人资料中添加该 `api_versions` 设置。  
**默认值：**无。（SDK 使用的最新 API 版本。）   
**有效值：**这是一个嵌套设置，后面有一行或多行缩进，每行标识一项 AWS 服务和要使用的 API 版本。要了解有哪些 API 版本可用，请参阅该 AWS 服务的文档。  
 该示例为`config`文件中的两个 AWS 服务设置了特定的 API 版本。这些 API 版本仅用于在包含这些设置的配置文件下运行的命令。任何其他服务的命令都使用该服务的 API 的最新版本。  

```
api_versions =
    ec2 = 2015-03-01
    cloudfront = 2015-09-017
```

**`ca_bundle`-共享 AWS `config`文件设置`AWS_CA_BUNDLE` - 环境变量**  
指定在建立 SSL/TLS 连接时使用的自定义证书包（带有`.pem`扩展名的文件）的路径。  
**默认值：** 无  
**有效值：**指定完整路径或基本文件名。如果存在基本文件名，则系统会尝试在 `PATH` 环境变量指定的文件夹中查找该程序。  
 在 `config` 文件中设置此值的示例：  

```
[default]
ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem
```
由于操作系统的路径处理方式和路径字符转义方式方面的差异，以下是在 Windows 上的 `config` 文件中设置此值的示例：  

```
[default]
ca_bundle = C:\\Users\\username\\.aws\\aws-custom-bundle.pem
```
Linux/macOS 通过命令行设置环境变量的示例：  

```
export AWS_CA_BUNDLE=/dev/apps/ca-certs/cabundle-2019mar05.pem
```
Windows 通过命令行设置环境变量的示例：  

```
setx AWS_CA_BUNDLE C:\dev\apps\ca-certs\cabundle-2019mar05.pem
```

**`output`-共享 AWS `config`文件设置**  
指定如何在 AWS CLI 和其他工具中设置结果 AWS SDKs 的格式。  
**默认值**：`json`  
**有效值：**  
+ **[https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#json-output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#json-output)** – 输出采用 [JSON](https://json.org/) 字符串的格式。
+  **[https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#yaml-output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#yaml-output)** – 输出采用 [YAML](https://yaml.org/) 字符串的格式。
+ **[https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#yaml-stream-output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#yaml-stream-output)** – 输出被流式处理并采用 [YAML](https://yaml.org/) 字符串的格式。串流支持更快地处理大型数据类型。
+ **[https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#text-output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#text-output)** – 输出采用多个制表符分隔字符串值行的格式。这对于将输出传递到文本处理器（如 `grep`、`sed` 或 `awk`）很有用。
+ **[https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#table-output](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#table-output)** – 输出采用表格形式，使用字符 \$1\$1- 以形成单元格边框。它通常以“人性化”格式呈现信息，这种格式比其他格式更容易阅读，但从编程方面来讲不是那么有用。

**`parameter_validation`-共享 AWS `config`文件设置**  
指定 SDK 或工具在将命令行参数发送到 AWS 服务端点之前是否尝试验证这些参数。  
**默认值**：`true`  
**有效值：**  
+ **`true`** – 默认值。SDK 或工具执行命令行参数的客户端验证。这有助于 SDK 或工具确认参数是否有效，并捕获一些错误。在向 AWS 服务端点发送请求之前，SDK 或工具可以拒绝无效的请求。
+  **`false`**— SDK 或工具在将命令行参数发送到 AWS 服务端点之前不会对其进行验证。 AWS 服务端点负责验证所有请求并拒绝无效的请求。

## Support by AWS SDKs and too
<a name="feature-gen-config-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 部分 | api\$1versions 不支持。 | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 部分 | 不支持 api\$1versions 和 parameter\$1validation。 | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 部分 | 不支持 api\$1versions 和 parameter\$1validation。要使用共享 config 文件设置，必须开启从配置文件加载的功能；请参阅[会话](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 否 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 否 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 否 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 否 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 否 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 否 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 否 |  | 

# 主机前缀注入
<a name="feature-host-prefix"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

主机前缀注入是一项功能，它 AWS SDKs 会自动为某些 API 操作在服务端点的主机名前添加前缀。此前缀可以是一个静态字符串，也可以是包含请求参数中数据的动态值。

例如，在使用 Amazon 简单存储服务对 Amazon S3 对象或存储桶执行操作时，软件开发工具包会在最终的 API 终端节点中替换您的存储桶名称和 AWS 账户 ID。

虽然普通 AWS 服务终端节点需要这种行为，但在使用自定义终端节点（例如 VPC 终端节点或本地测试工具）时，它可能会导致问题。对于这些情况，您可能需要禁用主机前缀注入。

使用以下方法配置此功能：

**`disable_host_prefix_injection`-共享 AWS `config`文件设置`AWS_DISABLE_HOST_PREFIX_INJECTION` - 环境变量`aws.disableHostPrefixInjection`-JVM 系统属性：仅限 Java/Kotlin **  
此设置用于控制 SDK 或工具是否将通过附加在 SDK 的客户端对象或变量中定义的主机前缀来修改端点主机名。  
**默认值**：`false`  
**有效值：**  
+ **`true`**：禁用主机前缀注入。SDK 不会修改端点主机名。
+ **`false`**：启用主机前缀注入。SDK 将在端点主机名前附加主机前缀。

在 `config` 文件中设置此值的示例：

```
[default]
disable_host_prefix_injection = true
```

Linux/macOS 通过命令行设置环境变量的示例：

```
export AWS_DISABLE_HOST_PREFIX_INJECTION=true
```

Windows 通过命令行设置环境变量的示例：

```
setx AWS_DISABLE_HOST_PREFIX_INJECTION true
```

## 主机前缀注入示例
<a name="hostprefix_examples"></a>

下表的示例显示了在启用和禁用主机前缀注入时如何 SDKs 修改最终端点。
+ **主机前缀**：在 SDK 客户端对象或代码变量上设置的主机前缀属性字符串模板。
+ **输入**：在 SDK 客户端对象或代码变量上设置的其他输入。
+ **客户端端点**：客户端的派生端点。
+ **设置值**：先前设置的解析值。
+ **结果端点**：SDK 客户端用于执行 API 调用的最终端点。


| 主机前缀 | 输入 | 客户端端点 | 设置值 | 结果端点 | 
| --- |--- |--- |--- |--- |
| “数据。” | \$1\$1 | "https://service.us-west-2.amazonaws.com" | false | "https://data.service.us-west-2.amazonaws.com" | 
| “\$1Bucket\$1-\$1AccountId\$1。” | 存储桶：“amzn-s3-demo-bucket1”，: “123456789012" AccountId  | "https://service.us-west-2.amazonaws.com" | false | "https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com" | 
| “数据。” | \$1\$1 | "https://override.us-west-2.amazonaws.com"（作为替代端点） | true | "https://override.us-west-2.amazonaws.com" | 

## Support AWS SDKs by 和工具
<a name="host-prefix-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-core/html/struct_aws_1_1_client_1_1_client_configuration.html](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-core/html/struct_aws_1_1_client_1_1_client_configuration.html) 在代码中配置。 | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 否 | 可以[使用中间件](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/configure-endpoints.html)禁用。 | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/SdkAdvancedClientOption.html#DISABLE_HOST_PREFIX_INJECTION](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/SdkAdvancedClientOption.html#DISABLE_HOST_PREFIX_INJECTION) 在代码中配置。 | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/ClientConfiguration.html](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/ClientConfiguration.html) 在代码中配置。 | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3-control/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3-control/) 在代码中配置。 | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html) 在代码中配置。 | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 否 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html) 在代码中配置。 | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html) 在代码中配置。 | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.AwsClient.html](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.AwsClient.html) 在代码中配置。 | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | 可以通过客户端使用 [https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html) 在代码中配置。 | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 否 | 不支持设置，但可以通过客户端使用 [https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/lib/aws-sdk-core/plugins/endpoint_pattern.rb#L8](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/lib/aws-sdk-core/plugins/endpoint_pattern.rb#L8) 在代码中配置。 | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 否 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 否 | 不支持设置，但可以使用参数 -ClientConfig @\$1DisableHostPrefixInjection = \$1true\$1 将其包含在特定的 cmdlet 中。 | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 否 | 不支持设置，但可以使用参数 -ClientConfig @\$1DisableHostPrefixInjection = \$1true\$1 将其包含在特定的 cmdlet 中。 | 

# IMDS 客户端
<a name="feature-imds-client"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

SDKs 使用面向会话的请求实现实例元数据服务版本 2 (IMDSv2) 客户端。有关更多信息 IMDSv2，请参阅 *Amazon EC2 用户指南 IMDSv2*中的[使用](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。IMDS 客户端可通过 SDK 代码库中提供的客户端配置对象进行配置。

使用以下方法配置此功能：

**`retries` - 客户端配置对象成员**  
任何失败的请求的额外重试次数。  
**默认值：**3   
**有效值：**大于 0 的数字。

**`port` - 客户端配置对象成员**  
端点的端口。  
**默认值：**80   
**有效值：**数字。

**`token_ttl` - 客户端配置对象成员**  
令牌的 TTL。  
**默认值：**21,600 秒（6 小时，分配的最长时间)。  
**有效值：**数字。

**`endpoint` - 客户端配置对象成员**  
IMDS 的端点。  
**默认值：**如果 `endpoint_mode` 等于 `IPv4`，则默认端点为 `http://169.254.169.254`。如果 `endpoint_mode` 等于 `IPv6`，则默认端点为 `http://[fd00:ec2::254]`。  
**有效值：**有效的 URI。



大多数人支持以下选项 SDKs。有关详细信息，请参阅您的特定 SDK 代码库。

**`endpoint_mode` - 客户端配置对象成员**  
IMDS 的端点模式。  
**默认值**：`IPv4`  
**有效值**：`IPv4`、`IPv6`

**`http_open_timeout` - 客户端配置对象成员（名称可能有所不同）**  
等待连接打开的秒数。  
**默认值：**1 秒。  
**有效值：**大于 0 的数字。

**`http_read_timeout` - 客户端配置对象成员（名称可能有所不同）**  
读取一个数据块的秒数。  
**默认值：**1 秒。  
**有效值：**大于 0 的数字。

**`http_debug_output` - 客户端配置对象成员（名称可能有所不同）**  
设置用于调试的输出流。  
**默认值：**无。  
**有效值：**有效的 I/O 直播，例如 STDOUT。

**`backoff` - 客户端配置对象成员（名称可能有所不同）**  
在两次重试之间休眠的秒数，或者客户提供的回退功能可供调用。这会覆盖默认的指数回退策略。  
**默认值：**因 SDK 而异。  
**有效值：**因 SDK 而异。可以是数值，也可以是对自定义函数的调用。

## Support AWS SDKs by 和工具
<a name="feature-imds-client-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 否 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 否 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# 重试行为
<a name="feature-retry-behavior"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

重试行为包括有关如何尝试从向的 SDKs 请求导致的失败中恢复的设置。 AWS 服务

使用以下方法配置此功能：

**`retry_mode`-共享 AWS `config`文件设置`AWS_RETRY_MODE` - 环境变量`aws.retryMode`-JVM 系统属性：仅限 Java/Kotlin **  
指定 SDK 或开发人员工具如何尝试重试。  
**默认值：**此值因具体 SDK 而异。请查看具体的 SDK 指南或 SDK 代码库，以了解其默认 `retry_mode`。  
**有效值：**  
+ `standard`—（推荐）推荐的一组重试规则。 AWS SDKs此模式包括要重试的标准错误集，并且会自动调整重试次数以尽可能提高可用性和稳定性。此模式可在多租户应用程序中安全使用。除非`max_attempts`明确配置，否则此模式下默认的最大尝试次数为三次。
+ `adaptive`：此重试模式仅适用于特殊使用案例，包含标准模式的功能以及自动客户端速率限制。除非您注意隔离应用程序租户，否则不建议将此重试模式用于多租户应用程序。请参阅[可选择 `standard` 和 `adaptive` 重试模式](#standardvsadaptive)了解更多信息。此模式处于实验阶段，未来可能会改变行为。
+ `legacy`：（不推荐）因 SDK 而异（请查看具体 SDK 指南或 SDK 代码库）。

**`max_attempts`-共享 AWS `config`文件设置`AWS_MAX_ATTEMPTS` - 环境变量`aws.maxAttempts`-JVM 系统属性：仅限 Java/Kotlin **  
指定对请求进行的最大尝试次数。  
**默认值：**如果未指定此值，则其默认值取决于`retry_mode`设置的值：  
+ 如果`retry_mode`是`legacy` – 使用特定于 SDK 的默认值（请查看您的特定 SDK 指南或 SDK 的代码库以了解`max_attempts`默认值）。
+ 如果`retry_mode`是`standard` – 尝试三次。
+ 如果`retry_mode`是`adaptive` – 尝试三次。
**有效值：**大于 0 的数字。

## 可选择 `standard` 和 `adaptive` 重试模式
<a name="standardvsadaptive"></a>

除非您确定自己的使用情况更适合 `adaptive`，否则我们建议您使用 `standard` 重试模式。

**注意**  
`adaptive` 模式假设您会根据后端服务可能限制请求的范围来池化客户端。如果不是这种情况，则在将同一客户端同时用于两个资源时，对其中一个资源进行节流可能会导致对不相关资源的请求出现延迟。


| 标准 | 自适应 | 
| --- | --- | 
| 应用程序使用案例：全部。 | 应用程序使用案例：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sdkref/latest/guide/feature-retry-behavior.html)  | 
| 支持通过熔断来防止 SDK 在中断期间重试。 | 支持通过熔断来防止 SDK 在中断期间重试。 | 
| 在出现故障时使用抖动指数回退。 | 使用动态退避时长来尝试减少失败请求数的量，以换取延迟增加的可能性。 | 
| 永不推迟首次请求尝试，仅推迟重试。 | 可能会节流或推迟首次请求尝试。 | 

如果选择使用 `adaptive` 模式，则应用程序构建的客户端必须围绕每种可能被节流的资源设计。在这种情况下，资源要经过精细调整，而不仅仅是考虑每种资源。 AWS 服务 AWS 服务 可以有其他维度来限制请求。下面以 Amazon DynamoDB 服务为例说明。DynamoDB AWS 区域 使用加上正在访问的表来限制请求。这意味着代码正在访问的一个表受到的节流可能比其他表更大。如果代码使用同一客户端来访问所有表，并且对其中一个表的请求受到节流，则自适应重试模式将降低所有表的请求速率。您的代码应设计为每 Region-and-table对只有一个客户端。如果您在使用`adaptive`模式时遇到意外延迟，请参阅所用服务的特定 AWS 文档指南。

## 重试模式实现详情
<a name="standardvsadaptiveimplementation"></a>

使用 AWS SDKs [令牌桶](https://en.wikipedia.org/wiki/Token_bucket)来决定是否应重试请求以及（在`adaptive`重试模式下）应以多快的速度发送请求。SDK 会使用两个令牌存储桶：一个为重试令牌存储桶，另一个为请求速率令牌存储桶。
+ 重试令牌存储桶用于确定 SDK 是否应暂时禁用重试，以便在中断期间保护上游和下游服务。系统会在尝试重试之前从该存储桶中获取令牌，然后在请求成功后将令牌归还到该存储桶。如果尝试重试时该存储桶为空，则 SDK 将不会重试该请求。
+ 请求速率令牌存储桶仅在 `adaptive` 重试模式下用于确定发送请求的速率。系统会在发送请求之前从该存储桶中获取令牌，并根据服务返回的节流响应，以动态确定的速率将令牌归还到该存储桶。

以下是`standard`和`adaptive`两种重试模式的高级伪代码：

```
MakeSDKRequest() {
  attempts = 0
  loop {
    GetSendToken()
    response = SendHTTPRequest()
    RequestBookkeeping(response)
    if not Retryable(response)
      return response
    attempts += 1
    if attempts >= MAX_ATTEMPTS:
      return response
    if not HasRetryQuota(response)
      return response
    delay = ExponentialBackoff(attempts)
    sleep(delay)
  }
}
```

以下是关于伪代码中所用组件的更多详细信息：

**`GetSendToken`:**

此步骤仅在 `adaptive` 重试模式下使用。此步骤将从请求费率令牌存储桶中获取令牌。如果某个令牌不可用，则将等待令牌变为可用。SDK 可能会提供让请求失败，而不必等待的选项。该存储桶中的令牌将根据客户端收到的节流响应数，以动态确定的速率补充。

**`SendHTTPRequest`:**

此步骤将请求发送到 AWS。大多数人 AWS SDKs 使用 HTTP 库，该库在发出 HTTP 请求时使用连接池来重用现有连接。通常，请求因节流错误失败时将会重复使用连接，但因暂时性错误失败时将不会重复使用连接。

**`RequestBookkeeping`:**

如果请求成功，则会将令牌添加到令牌存储桶中。仅在 `adaptive` 重试模式下，请求速率令牌存储桶的填充速率会根据收到的响应类型更新。

**`Retryable`:**

 此步骤根据以下内容确定是否可以重试响应：
+ HTTP 状态代码。
+ 从服务返回的错误代码。
+ 连接错误，定义为 SDK 收到的任何错误，其中未收到来自服务的 HTTP 响应。

瞬时错误（HTTP 状态代码 400、408、500、502、503 和 504）和节流错误（HTTP 状态代码 400、403、429、502、503 和 509）都可能被重试。SDK 重试行为是结合错误代码或服务中的其他数据确定的。

**`MAX_ATTEMPTS`:**

 默认的最大尝试次数通过设置 `retry_mode` 来设定，除非被 `max_attempts` 设置所覆盖。

**`HasRetryQuota`**

此步骤将从重试令牌存储桶中获取令牌。如果重试令牌存储桶为空，则不会重试请求。

**`ExponentialBackoff`**

 对于可以重试的错误，使用截断的指数回退来计算重试延迟。 SDKs 使用带抖动的截断二进制指数回退。以下算法显示了如何为请求`i`的响应定义睡眠时间（以秒为单位）：

```
seconds_to_sleep_i = min(b*r^i, MAX_BACKOFF)
```

在上述算法中，以下值适用：

`b = random number within the range of: 0 <= b <= 1`

`r = 2`

`MAX_BACKOFF = 20 seconds`对于大多数人来说 SDKs。请参阅您的特定 SDK 指南或源代码进行确认。

## Support AWS SDKs by 和工具
<a name="feature-retry-behavior-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 是 | JVM 系统属性：使用 com.amazonaws.sdk.maxAttempts 而不是 aws.maxAttempts；使用 com.amazonaws.sdk.retryMode 而不是 aws.retryMode。 | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 | 支持最大重试次数、带抖动的指数回退以及用于重试回退的自定义方法选项。 | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# 请求压缩
<a name="feature-compression"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

AWS SDKs 而且，当向接收压缩负载的支持者发送请求时 AWS 服务 ，工具可以自动压缩有效负载。在将有效负载发送到服务之前在客户端上对其进行压缩，可以减少向服务发送数据所需的请求总数和带宽，还可以减少由于服务对有效负载大小的限制而导致的失败请求。进行压缩时，SDK 或工具会选择服务和 SDK 都支持的编码算法。但是，当前可能的编码列表仅包含 gzip，但未来可能会扩展。

如果您的应用程序使用的是 [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/)，则请求压缩可能特别有用 CloudWatch。 CloudWatch 是一项监控和可观测性服务，它以日志、指标和事件的形式收集监控和操作数据。支持压缩的服务操作的一个示例是 CloudWatch的 [PutMetricDataAPI](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html) 方法。

使用以下方法配置此功能：

**`disable_request_compression`-共享 AWS `config`文件设置`AWS_DISABLE_REQUEST_COMPRESSION` - 环境变量`aws.disableRequestCompression`-JVM 系统属性：仅限 Java/Kotlin **  
开启或关闭 SDK 或工具是否将在发送请求之前压缩有效负载。  
**默认值**：`false`  
**有效值：**  
+ **`true`** – 关闭请求压缩。
+ **`false`** – 尽可能使用请求压缩。

**`request_min_compression_size_bytes`-共享 AWS `config`文件设置`AWS_REQUEST_MIN_COMPRESSION_SIZE_BYTES` - 环境变量`aws.requestMinCompressionSizeBytes`-JVM 系统属性：仅限 Java/Kotlin **  
设置 SDK 或工具应压缩的请求正文的最小大小（以字节为单位）。压缩后，小型有效载荷可能会变得更长，因此，将会有一个下限，使执行压缩变得有意义。该值包含首尾，大于或等于该值的请求大小将被压缩。  
**默认值：**10240 字节  
**有效值：**介于 0 到 10485760 字节（包含首尾）之间的整数值。

## Support by AWS SDKs and 工具
<a name="compression-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# 特定于服务的端点
<a name="feature-ss-endpoints"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

特定于服务的端点配置提供了一个选项，可使用您应 API 的请求使用您选择的端点，并保持该选择。这些设置可以灵活地支持本地端点、VPC 端点和第三方本地 AWS 开发环境。不同的端点可分别用于测试环境和生产环境。您可以为个别 AWS 服务指定端点 URL。

使用以下方法配置此功能：

**`endpoint_url`-共享 AWS `config`文件设置`AWS_ENDPOINT_URL` - 环境变量`aws.endpointUrl`-JVM 系统属性：仅限 Java/Kotlin **  
直接在配置文件中指定或作为环境变量指定时，此设置将指定用于所有服务请求的端点。此端点会被任何已配置的特定服务端点覆盖。  
您还可以在共享 AWS `config`文件的某个`services`部分中使用此设置为特定服务设置自定义终端节点。有关 `services` 节的子节中要使用的所有服务标识符密钥的列表，请参阅[特定于服务的端点的标识符](ss-endpoints-table.md)。  
**默认值**：`none`  
**有效值：**包含端点架构和主机的 URL。URL 可以选择包含一个路径组件，该组件包括一个或多个路径段。

**`AWS_ENDPOINT_URL_<SERVICE>` - 环境变量`aws.endpointUrl<ServiceName>`-JVM 系统属性：仅限 Java/Kotlin **  
`AWS_ENDPOINT_URL_<SERVICE>`，其中`<SERVICE>`是标 AWS 服务 识符，用于为特定服务设置自定义终端节点。有关特定于服务的所有环境变量的列表，请参阅[特定于服务的端点的标识符](ss-endpoints-table.md)。  
此特定服务端点会覆盖 `AWS_ENDPOINT_URL` 中设置的任何全局端点。  
**默认值**：`none`  
**有效值：**包含端点架构和主机的 URL。URL 可以选择包含一个路径组件，该组件包括一个或多个路径段。

**`ignore_configured_endpoint_urls`-共享 AWS `config`文件设置`AWS_IGNORE_CONFIGURED_ENDPOINT_URLS` - 环境变量`aws.ignoreConfiguredEndpointUrls`-JVM 系统属性：仅限 Java/Kotlin **  
此设置用于忽略所有自定义端点配置。  
请注意，无论此设置如何，都将使用代码中或服务客户端本身上设置的任何显式端点。例如，在`--endpoint-url`命令中包含命令行参数或将端点 URL 传递给客户端构造函数将始终生效。 AWS CLI   
**默认值**：`false`  
**有效值：**  
+ **`true`** - SDK 或工具不会从共享 `config` 文件或环境变量中读取任何用于设置端点 URL 的自定义配置选项。
+ **`false`** - SDK 或工具使用共享 `config` 文件或环境变量中用户提供的任何可用端点。

## 使用环境变量来配置端点
<a name="ss-endpoints-envar"></a>

要将所有服务的请求路由到自定义端点 URL，请设置 `AWS_ENDPOINT_URL` 全局环境变量。

```
export AWS_ENDPOINT_URL=http://localhost:4567
```

要将针对特定终端节点 URL 的请求路由 AWS 服务 到自定义终端节点 URL，请使用`AWS_ENDPOINT_URL_<SERVICE>`环境变量。 Amazon DynamoDB 有一`serviceId`个[https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/dynamodb/2012-08-10/service-2.json#L10](https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/dynamodb/2012-08-10/service-2.json#L10)。对于此服务，端点 URL 环境变量为 `AWS_ENDPOINT_URL_DYNAMODB`。此端点优先于在 `AWS_ENDPOINT_URL` 中为此服务设置的全局端点。

```
export AWS_ENDPOINT_URL_DYNAMODB=http://localhost:5678
```

 再举一个例子， AWS Elastic Beanstalk 有一`serviceId`个[https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/elasticbeanstalk/2010-12-01/service-2.json#L9](https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/elasticbeanstalk/2010-12-01/service-2.json#L9)。标 AWS 服务 识符基于 API 模型，将所有空格`serviceId`替换为下划线，并将所有字母大写。为设置适用于此服务的端点，相应的环境变量为 `AWS_ENDPOINT_URL_ELASTIC_BEANSTALK`。有关特定于服务的所有环境变量的列表，请参阅[特定于服务的端点的标识符](ss-endpoints-table.md)。

```
export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:5567
```

## 使用共享 `config` 文件配置端点
<a name="ss-endpoints-config"></a>

在共享 `config` 文件中，`endpoint_url` 用于不同位置以实现不同的功能。
+ `endpoint_url` 直接在 `profile` 中指定会使该端点成为全局端点。
+ `endpoint_url` 嵌套在 `services` 部分中的服务标识符密钥下，使该端点仅适用于向该服务发出的请求。有关在共享 `config` 文件中定义 `services` 节的详细信息，请参阅 [配置文件的格式](file-format.md#file-format-config)。

 以下示例使用 `services` 定义来配置用于 Amazon S3 的特定于服务的端点 URL 和用于其他所有服务的自定义全局端点：

```
[profile dev-s3-specific-and-global]
endpoint_url = http://localhost:1234
services = s3-specific

[services s3-specific]
s3 = 
  endpoint_url = https://play.min.io:9000
```

单个配置文件可以为多个服务配置端点。此示例说明如何在同一配置文件中为 Amazon S3 设置服务特定的终端节点 URLs 。 AWS Elastic Beanstalk AWS Elastic Beanstalk 有一`serviceId`个[https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/elasticbeanstalk/2010-12-01/service-2.json#L9](https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/elasticbeanstalk/2010-12-01/service-2.json#L9)。标 AWS 服务 识符基于 API 模型，将所有空格`serviceId`替换为下划线，并将所有字母小写。因此，服务标识符密钥变为 `elastic_beanstalk` 且已开始在线设置该服务 `elastic_beanstalk = `。有关 `services` 节中要使用的所有服务标识符密钥的列表，请参阅[特定于服务的端点的标识符](ss-endpoints-table.md)。

```
[services testing-s3-and-eb]
s3 = 
  endpoint_url = http://localhost:4567
elastic_beanstalk = 
  endpoint_url = http://localhost:8000

[profile dev]
services = testing-s3-and-eb
```

“服务配置”节可以在多个配置文件中使用。例如，两个配置文件在更改其他配置文件属性时可以使用相同的 `services` 定义：

```
[services testing-s3]
s3 = 
  endpoint_url = https://localhost:4567

[profile testing-json]
output = json
services = testing-s3

[profile testing-text]
output = text
services = testing-s3
```

## 使用基于角色的凭证在配置文件中配置端点
<a name="ss-endpoints-role"></a>

如果您的配置文件具有基于角色的凭证，而这些凭证是通过 IAM 代入角色功能的 `source_profile` 参数配置的，则开发工具包仅使用所指定配置文件的服务配置。它不使用关联有角色的配置文件。例如，使用以下共享 `config` 文件：

```
[profile A]
credential_source = Ec2InstanceMetadata
endpoint_url = https://profile-a-endpoint.aws/

[profile B]
source_profile = A
role_arn = arn:aws:iam::123456789012:role/roleB
services = profileB

[services profileB]
ec2 = 
  endpoint_url = https://profile-b-ec2-endpoint.aws
```

 如果您使用配置文件 `B` 并在代码中调用 Amazon EC2，则端点将解析为 `https://profile-b-ec2-endpoint.aws`。如果您的代码向其他任何服务发出请求，则端点解析将不遵循任何自定义逻辑。该端点不会解析到配置文件 `A` 中定义的全局端点。要使全局端点对配置文件 `B` 生效，您需要直接在配置文件 `B` 中设置 `endpoint_url`。有关 `source_profile` 设置的更多信息，请参阅[代入角色凭证提供者](feature-assume-role-credentials.md)。

## 设置的优先级
<a name="ss-endpoints-precedence"></a>

 该功能设置为可以同时使用，但每项服务只有一个值会优先使用。对于对给定的 API 调用 AWS 服务，使用以下顺序来选择值：

1. 在代码中或服务客户端本身设置的任何显式设置均优先于其他任何设置。
   + 对于 AWS CLI，这是`--endpoint-url`命令行参数提供的值。对于 SDK，显式分配可以采用您在实例化 AWS 服务 客户端或配置对象时设置的参数的形式。

1. 由特定于服务的环境变量提供的值，例如 `AWS_ENDPOINT_URL_DYNAMODB`。

1. `AWS_ENDPOINT_URL` 全局端点环境变量提供的值。

1. 该 `endpoint_url` 设置提供的值嵌套在共享 `config` 文件的 `services` 部分中的服务标识符密钥下。

1. 共享 `config` 文件的 `profile` 中直接指定的 `endpoint_url` 设置提供的值。

1. 最后使用相应 AWS 服务 端点的所有默认端点 URL。

## Support AWS SDKs by 和工具
<a name="ss-endpoints-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 是 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 

# 特定于服务的端点的标识符
<a name="ss-endpoints-table"></a>

有关如何以及在何处使用下表中的标识符的信息，请参阅 [特定于服务的端点](feature-ss-endpoints.md)。


| `serviceId` | 共享 AWS `config`文件的服务标识密钥 | `AWS_ENDPOINT_URL_<SERVICE>` 环境变量 | 
| --- | --- | --- | 
|  AccessAnalyzer  |  accessanalyzer  |  AWS\$1ENDPOINT\$1URL\$1ACCESSANALYZER  | 
|  Account  |  account  |  AWS\$1ENDPOINT\$1URL\$1ACCOUNT  | 
|  ACM  |  acm  |  AWS\$1ENDPOINT\$1URL\$1ACM  | 
|  ACM PCA  |  acm\$1pca  |  AWS\$1ENDPOINT\$1URL\$1ACM\$1PCA  | 
|  Alexa For Business  |  alexa\$1for\$1business  |  AWS\$1ENDPOINT\$1URL\$1ALEXA\$1FOR\$1BUSINESS  | 
|  amp  |  amp  |  AWS\$1ENDPOINT\$1URL\$1AMP  | 
|  Amplify  |  amplify  |  AWS\$1ENDPOINT\$1URL\$1AMPLIFY  | 
|  AmplifyBackend  |  amplifybackend  |  AWS\$1ENDPOINT\$1URL\$1AMPLIFYBACKEND  | 
|  AmplifyUIBuilder  |  amplifyuibuilder  |  AWS\$1ENDPOINT\$1URL\$1AMPLIFYUIBUILDER  | 
|  API Gateway  |  api\$1gateway  |  AWS\$1ENDPOINT\$1URL\$1API\$1GATEWAY  | 
|  ApiGatewayManagementApi  |  apigatewaymanagementapi  |  AWS\$1ENDPOINT\$1URL\$1APIGATEWAYMANAGEMENTAPI  | 
|  ApiGatewayV2  |  apigatewayv2  |  AWS\$1ENDPOINT\$1URL\$1APIGATEWAYV2  | 
|  AppConfig  |  appconfig  |  AWS\$1ENDPOINT\$1URL\$1APPCONFIG  | 
|  AppConfigData  |  appconfigdata  |  AWS\$1ENDPOINT\$1URL\$1APPCONFIGDATA  | 
|  AppFabric  |  appfabric  |  AWS\$1ENDPOINT\$1URL\$1APPFABRIC  | 
|  Appflow  |  appflow  |  AWS\$1ENDPOINT\$1URL\$1APPFLOW  | 
|  AppIntegrations  |  appintegrations  |  AWS\$1ENDPOINT\$1URL\$1APPINTEGRATIONS  | 
|  Application Auto Scaling  |  application\$1auto\$1scaling  |  AWS\$1ENDPOINT\$1URL\$1APPLICATION\$1AUTO\$1SCALING  | 
|  Application Insights  |  application\$1insights  |  AWS\$1ENDPOINT\$1URL\$1APPLICATION\$1INSIGHTS  | 
|  ApplicationCostProfiler  |  applicationcostprofiler  |  AWS\$1ENDPOINT\$1URL\$1APPLICATIONCOSTPROFILER  | 
|  App Mesh  |  app\$1mesh  |  AWS\$1ENDPOINT\$1URL\$1APP\$1MESH  | 
|  AppRunner  |  apprunner  |  AWS\$1ENDPOINT\$1URL\$1APPRUNNER  | 
|  AppStream  |  appstream  |  AWS\$1ENDPOINT\$1URL\$1APPSTREAM  | 
|  AppSync  |  appsync  |  AWS\$1ENDPOINT\$1URL\$1APPSYNC  | 
|  ARC Zonal Shift  |  arc\$1zonal\$1shift  |  AWS\$1ENDPOINT\$1URL\$1ARC\$1ZONAL\$1SHIFT  | 
|  Artifact  |  artifact  |  AWS\$1ENDPOINT\$1URL\$1ARTIFACT  | 
|  Athena  |  athena  |  AWS\$1ENDPOINT\$1URL\$1ATHENA  | 
|  AuditManager  |  auditmanager  |  AWS\$1ENDPOINT\$1URL\$1AUDITMANAGER  | 
|  Auto Scaling  |  auto\$1scaling  |  AWS\$1ENDPOINT\$1URL\$1AUTO\$1SCALING  | 
|  Auto Scaling Plans  |  auto\$1scaling\$1plans  |  AWS\$1ENDPOINT\$1URL\$1AUTO\$1SCALING\$1PLANS  | 
|  b2bi  |  b2bi  |  AWS\$1ENDPOINT\$1URL\$1B2BI  | 
|  Backup  |  backup  |  AWS\$1ENDPOINT\$1URL\$1BACKUP  | 
|  Backup Gateway  |  backup\$1gateway  |  AWS\$1ENDPOINT\$1URL\$1BACKUP\$1GATEWAY  | 
|  BackupStorage  |  backupstorage  |  AWS\$1ENDPOINT\$1URL\$1BACKUPSTORAGE  | 
|  Batch  |  batch  |  AWS\$1ENDPOINT\$1URL\$1BATCH  | 
|  BCM Data Exports  |  bcm\$1data\$1exports  |  AWS\$1ENDPOINT\$1URL\$1BCM\$1DATA\$1EXPORTS  | 
|  Bedrock  |  bedrock  |  AWS\$1ENDPOINT\$1URL\$1BEDROCK  | 
|  Bedrock Agent  |  bedrock\$1agent  |  AWS\$1ENDPOINT\$1URL\$1BEDROCK\$1AGENT  | 
|  Bedrock Agent Runtime  |  bedrock\$1agent\$1runtime  |  AWS\$1ENDPOINT\$1URL\$1BEDROCK\$1AGENT\$1RUNTIME  | 
|  Bedrock Runtime  |  bedrock\$1runtime  |  AWS\$1ENDPOINT\$1URL\$1BEDROCK\$1RUNTIME  | 
|  billingconductor  |  billingconductor  |  AWS\$1ENDPOINT\$1URL\$1BILLINGCONDUCTOR  | 
|  Braket  |  braket  |  AWS\$1ENDPOINT\$1URL\$1BRAKET  | 
|  Budgets  |  budgets  |  AWS\$1ENDPOINT\$1URL\$1BUDGETS  | 
|  Cost Explorer  |  cost\$1explorer  |  AWS\$1ENDPOINT\$1URL\$1COST\$1EXPLORER  | 
|  chatbot  |  chatbot  |  AWS\$1ENDPOINT\$1URL\$1CHATBOT  | 
|  Chime  |  chime  |  AWS\$1ENDPOINT\$1URL\$1CHIME  | 
|  Chime SDK Identity  |  chime\$1sdk\$1identity  |  AWS\$1ENDPOINT\$1URL\$1CHIME\$1SDK\$1IDENTITY  | 
|  Chime SDK Media Pipelines  |  chime\$1sdk\$1media\$1pipelines  |  AWS\$1ENDPOINT\$1URL\$1CHIME\$1SDK\$1MEDIA\$1PIPELINES  | 
|  Chime SDK Meetings  |  chime\$1sdk\$1meetings  |  AWS\$1ENDPOINT\$1URL\$1CHIME\$1SDK\$1MEETINGS  | 
|  Chime SDK Messaging  |  chime\$1sdk\$1messaging  |  AWS\$1ENDPOINT\$1URL\$1CHIME\$1SDK\$1MESSAGING  | 
|  Chime SDK Voice  |  chime\$1sdk\$1voice  |  AWS\$1ENDPOINT\$1URL\$1CHIME\$1SDK\$1VOICE  | 
|  CleanRooms  |  cleanrooms  |  AWS\$1ENDPOINT\$1URL\$1CLEANROOMS  | 
|  CleanRoomsML  |  cleanroomsml  |  AWS\$1ENDPOINT\$1URL\$1CLEANROOMSML  | 
|  Cloud9  |  cloud9  |  AWS\$1ENDPOINT\$1URL\$1CLOUD9  | 
|  CloudControl  |  cloudcontrol  |  AWS\$1ENDPOINT\$1URL\$1CLOUDCONTROL  | 
|  CloudDirectory  |  clouddirectory  |  AWS\$1ENDPOINT\$1URL\$1CLOUDDIRECTORY  | 
|  CloudFormation  |  cloudformation  |  AWS\$1ENDPOINT\$1URL\$1CLOUDFORMATION  | 
|  CloudFront  |  cloudfront  |  AWS\$1ENDPOINT\$1URL\$1CLOUDFRONT  | 
|  CloudFront KeyValueStore  |  cloudfront\$1keyvaluestore  |  AWS\$1ENDPOINT\$1URL\$1CLOUDFRONT\$1KEYVALUESTORE  | 
|  CloudHSM  |  cloudhsm  |  AWS\$1ENDPOINT\$1URL\$1CLOUDHSM  | 
|  CloudHSM V2  |  cloudhsm\$1v2  |  AWS\$1ENDPOINT\$1URL\$1CLOUDHSM\$1V2  | 
|  CloudSearch  |  cloudsearch  |  AWS\$1ENDPOINT\$1URL\$1CLOUDSEARCH  | 
|  CloudSearch Domain  |  cloudsearch\$1domain  |  AWS\$1ENDPOINT\$1URL\$1CLOUDSEARCH\$1DOMAIN  | 
|  CloudTrail  |  cloudtrail  |  AWS\$1ENDPOINT\$1URL\$1CLOUDTRAIL  | 
|  CloudTrail Data  |  cloudtrail\$1data  |  AWS\$1ENDPOINT\$1URL\$1CLOUDTRAIL\$1DATA  | 
|  CloudWatch  |  cloudwatch  |  AWS\$1ENDPOINT\$1URL\$1CLOUDWATCH  | 
|  codeartifact  |  codeartifact  |  AWS\$1ENDPOINT\$1URL\$1CODEARTIFACT  | 
|  CodeBuild  |  codebuild  |  AWS\$1ENDPOINT\$1URL\$1CODEBUILD  | 
|  CodeCatalyst  |  codecatalyst  |  AWS\$1ENDPOINT\$1URL\$1CODECATALYST  | 
|  CodeCommit  |  codecommit  |  AWS\$1ENDPOINT\$1URL\$1CODECOMMIT  | 
|  CodeDeploy  |  codedeploy  |  AWS\$1ENDPOINT\$1URL\$1CODEDEPLOY  | 
|  CodeGuru Reviewer  |  codeguru\$1reviewer  |  AWS\$1ENDPOINT\$1URL\$1CODEGURU\$1REVIEWER  | 
|  CodeGuru Security  |  codeguru\$1security  |  AWS\$1ENDPOINT\$1URL\$1CODEGURU\$1SECURITY  | 
|  CodeGuruProfiler  |  codeguruprofiler  |  AWS\$1ENDPOINT\$1URL\$1CODEGURUPROFILER  | 
|  CodePipeline  |  codepipeline  |  AWS\$1ENDPOINT\$1URL\$1CODEPIPELINE  | 
|  CodeStar  |  codestar  |  AWS\$1ENDPOINT\$1URL\$1CODESTAR  | 
|  CodeStar connections  |  codestar\$1connections  |  AWS\$1ENDPOINT\$1URL\$1CODESTAR\$1CONNECTIONS  | 
|  codestar notifications  |  codestar\$1notifications  |  AWS\$1ENDPOINT\$1URL\$1CODESTAR\$1NOTIFICATIONS  | 
|  Cognito Identity  |  cognito\$1identity  |  AWS\$1ENDPOINT\$1URL\$1COGNITO\$1IDENTITY  | 
|  Cognito Identity Provider  |  cognito\$1identity\$1provider  |  AWS\$1ENDPOINT\$1URL\$1COGNITO\$1IDENTITY\$1PROVIDER  | 
|  Cognito Sync  |  cognito\$1sync  |  AWS\$1ENDPOINT\$1URL\$1COGNITO\$1SYNC  | 
|  Comprehend  |  comprehend  |  AWS\$1ENDPOINT\$1URL\$1COMPREHEND  | 
|  ComprehendMedical  |  comprehendmedical  |  AWS\$1ENDPOINT\$1URL\$1COMPREHENDMEDICAL  | 
|  Compute Optimizer  |  compute\$1optimizer  |  AWS\$1ENDPOINT\$1URL\$1COMPUTE\$1OPTIMIZER  | 
|  Config Service  |  config\$1service  |  AWS\$1ENDPOINT\$1URL\$1CONFIG\$1SERVICE  | 
|  Connect  |  connect  |  AWS\$1ENDPOINT\$1URL\$1CONNECT  | 
|  Connect Contact Lens  |  connect\$1contact\$1lens  |  AWS\$1ENDPOINT\$1URL\$1CONNECT\$1CONTACT\$1LENS  | 
|  ConnectCampaigns  |  connectcampaigns  |  AWS\$1ENDPOINT\$1URL\$1CONNECTCAMPAIGNS  | 
|  ConnectCases  |  connectcases  |  AWS\$1ENDPOINT\$1URL\$1CONNECTCASES  | 
|  ConnectParticipant  |  connectparticipant  |  AWS\$1ENDPOINT\$1URL\$1CONNECTPARTICIPANT  | 
|  ControlTower  |  controltower  |  AWS\$1ENDPOINT\$1URL\$1CONTROLTOWER  | 
|  Cost Optimization Hub  |  cost\$1optimization\$1hub  |  AWS\$1ENDPOINT\$1URL\$1COST\$1OPTIMIZATION\$1HUB  | 
|  Cost and Usage Report Service  |  cost\$1and\$1usage\$1report\$1service  |  AWS\$1ENDPOINT\$1URL\$1COST\$1AND\$1USAGE\$1REPORT\$1SERVICE  | 
|  Customer Profiles  |  customer\$1profiles  |  AWS\$1ENDPOINT\$1URL\$1CUSTOMER\$1PROFILES  | 
|  DataBrew  |  databrew  |  AWS\$1ENDPOINT\$1URL\$1DATABREW  | 
|  DataExchange  |  dataexchange  |  AWS\$1ENDPOINT\$1URL\$1DATAEXCHANGE  | 
|  Data Pipeline  |  data\$1pipeline  |  AWS\$1ENDPOINT\$1URL\$1DATA\$1PIPELINE  | 
|  DataSync  |  datasync  |  AWS\$1ENDPOINT\$1URL\$1DATASYNC  | 
|  DataZone  |  datazone  |  AWS\$1ENDPOINT\$1URL\$1DATAZONE  | 
|  DAX  |  dax  |  AWS\$1ENDPOINT\$1URL\$1DAX  | 
|  Detective  |  detective  |  AWS\$1ENDPOINT\$1URL\$1DETECTIVE  | 
|  Device Farm  |  device\$1farm  |  AWS\$1ENDPOINT\$1URL\$1DEVICE\$1FARM  | 
|  DevOps Guru  |  devops\$1guru  |  AWS\$1ENDPOINT\$1URL\$1DEVOPS\$1GURU  | 
|  Direct Connect  |  direct\$1connect  |  AWS\$1ENDPOINT\$1URL\$1DIRECT\$1CONNECT  | 
|  Application Discovery Service  |  application\$1discovery\$1service  |  AWS\$1ENDPOINT\$1URL\$1APPLICATION\$1DISCOVERY\$1SERVICE  | 
|  DLM  |  dlm  |  AWS\$1ENDPOINT\$1URL\$1DLM  | 
|  Database Migration Service  |  database\$1migration\$1service  |  AWS\$1ENDPOINT\$1URL\$1DATABASE\$1MIGRATION\$1SERVICE  | 
|  DocDB  |  docdb  |  AWS\$1ENDPOINT\$1URL\$1DOCDB  | 
|  DocDB Elastic  |  docdb\$1elastic  |  AWS\$1ENDPOINT\$1URL\$1DOCDB\$1ELASTIC  | 
|  drs  |  drs  |  AWS\$1ENDPOINT\$1URL\$1DRS  | 
|  Directory Service  |  directory\$1service  |  AWS\$1ENDPOINT\$1URL\$1DIRECTORY\$1SERVICE  | 
|  DynamoDB  |  dynamodb  |  AWS\$1ENDPOINT\$1URL\$1DYNAMODB  | 
|  DynamoDB Streams  |  dynamodb\$1streams  |  AWS\$1ENDPOINT\$1URL\$1DYNAMODB\$1STREAMS  | 
|  EBS  |  ebs  |  AWS\$1ENDPOINT\$1URL\$1EBS  | 
|  EC2  |  ec2  |  AWS\$1ENDPOINT\$1URL\$1EC2  | 
|  EC2 Instance Connect  |  ec2\$1instance\$1connect  |  AWS\$1ENDPOINT\$1URL\$1EC2\$1INSTANCE\$1CONNECT  | 
|  ECR  |  ecr  |  AWS\$1ENDPOINT\$1URL\$1ECR  | 
|  ECR PUBLIC  |  ecr\$1public  |  AWS\$1ENDPOINT\$1URL\$1ECR\$1PUBLIC  | 
|  ECS  |  ecs  |  AWS\$1ENDPOINT\$1URL\$1ECS  | 
|  EFS  |  efs  |  AWS\$1ENDPOINT\$1URL\$1EFS  | 
|  EKS  |  eks  |  AWS\$1ENDPOINT\$1URL\$1EKS  | 
|  EKS Auth  |  eks\$1auth  |  AWS\$1ENDPOINT\$1URL\$1EKS\$1AUTH  | 
|  Elastic Inference  |  elastic\$1inference  |  AWS\$1ENDPOINT\$1URL\$1ELASTIC\$1INFERENCE  | 
|  ElastiCache  |  elasticache  |  AWS\$1ENDPOINT\$1URL\$1ELASTICACHE  | 
|  Elastic Beanstalk  |  elastic\$1beanstalk  |  AWS\$1ENDPOINT\$1URL\$1ELASTIC\$1BEANSTALK  | 
|  Elastic Transcoder  |  elastic\$1transcoder  |  AWS\$1ENDPOINT\$1URL\$1ELASTIC\$1TRANSCODER  | 
|  Elastic Load Balancing  |  elastic\$1load\$1balancing  |  AWS\$1ENDPOINT\$1URL\$1ELASTIC\$1LOAD\$1BALANCING  | 
|  Elastic Load Balancing v2  |  elastic\$1load\$1balancing\$1v2  |  AWS\$1ENDPOINT\$1URL\$1ELASTIC\$1LOAD\$1BALANCING\$1V2  | 
|  EMR  |  emr  |  AWS\$1ENDPOINT\$1URL\$1EMR  | 
|  EMR containers  |  emr\$1containers  |  AWS\$1ENDPOINT\$1URL\$1EMR\$1CONTAINERS  | 
|  EMR Serverless  |  emr\$1serverless  |  AWS\$1ENDPOINT\$1URL\$1EMR\$1SERVERLESS  | 
|  EntityResolution  |  entityresolution  |  AWS\$1ENDPOINT\$1URL\$1ENTITYRESOLUTION  | 
|  Elasticsearch Service  |  elasticsearch\$1service  |  AWS\$1ENDPOINT\$1URL\$1ELASTICSEARCH\$1SERVICE  | 
|  EventBridge  |  eventbridge  |  AWS\$1ENDPOINT\$1URL\$1EVENTBRIDGE  | 
|  Evidently  |  evidently  |  AWS\$1ENDPOINT\$1URL\$1EVIDENTLY  | 
|  finspace  |  finspace  |  AWS\$1ENDPOINT\$1URL\$1FINSPACE  | 
|  finspace data  |  finspace\$1data  |  AWS\$1ENDPOINT\$1URL\$1FINSPACE\$1DATA  | 
|  Firehose  |  firehose  |  AWS\$1ENDPOINT\$1URL\$1FIREHOSE  | 
|  fis  |  fis  |  AWS\$1ENDPOINT\$1URL\$1FIS  | 
|  FMS  |  fms  |  AWS\$1ENDPOINT\$1URL\$1FMS  | 
|  forecast  |  forecast  |  AWS\$1ENDPOINT\$1URL\$1FORECAST  | 
|  forecastquery  |  forecastquery  |  AWS\$1ENDPOINT\$1URL\$1FORECASTQUERY  | 
|  FraudDetector  |  frauddetector  |  AWS\$1ENDPOINT\$1URL\$1FRAUDDETECTOR  | 
|  FreeTier  |  freetier  |  AWS\$1ENDPOINT\$1URL\$1FREETIER  | 
|  FSx  |  fsx  |  AWS\$1ENDPOINT\$1URL\$1FSX  | 
|  GameLift  |  gamelift  |  AWS\$1ENDPOINT\$1URL\$1GAMELIFT  | 
|  Glacier  |  glacier  |  AWS\$1ENDPOINT\$1URL\$1GLACIER  | 
|  Global Accelerator  |  global\$1accelerator  |  AWS\$1ENDPOINT\$1URL\$1GLOBAL\$1ACCELERATOR  | 
|  Glue  |  glue  |  AWS\$1ENDPOINT\$1URL\$1GLUE  | 
|  grafana  |  grafana  |  AWS\$1ENDPOINT\$1URL\$1GRAFANA  | 
|  Greengrass  |  greengrass  |  AWS\$1ENDPOINT\$1URL\$1GREENGRASS  | 
|  GreengrassV2  |  greengrassv2  |  AWS\$1ENDPOINT\$1URL\$1GREENGRASSV2  | 
|  GroundStation  |  groundstation  |  AWS\$1ENDPOINT\$1URL\$1GROUNDSTATION  | 
|  GuardDuty  |  guardduty  |  AWS\$1ENDPOINT\$1URL\$1GUARDDUTY  | 
|  Health  |  health  |  AWS\$1ENDPOINT\$1URL\$1HEALTH  | 
|  HealthLake  |  healthlake  |  AWS\$1ENDPOINT\$1URL\$1HEALTHLAKE  | 
|  Honeycode  |  honeycode  |  AWS\$1ENDPOINT\$1URL\$1HONEYCODE  | 
|  IAM  |  iam  |  AWS\$1ENDPOINT\$1URL\$1IAM  | 
|  identitystore  |  identitystore  |  AWS\$1ENDPOINT\$1URL\$1IDENTITYSTORE  | 
|  imagebuilder  |  imagebuilder  |  AWS\$1ENDPOINT\$1URL\$1IMAGEBUILDER  | 
|  ImportExport  |  importexport  |  AWS\$1ENDPOINT\$1URL\$1IMPORTEXPORT  | 
|  Inspector  |  inspector  |  AWS\$1ENDPOINT\$1URL\$1INSPECTOR  | 
|  Inspector Scan  |  inspector\$1scan  |  AWS\$1ENDPOINT\$1URL\$1INSPECTOR\$1SCAN  | 
|  Inspector2  |  inspector2  |  AWS\$1ENDPOINT\$1URL\$1INSPECTOR2  | 
|  InternetMonitor  |  internetmonitor  |  AWS\$1ENDPOINT\$1URL\$1INTERNETMONITOR  | 
|  IoT  |  iot  |  AWS\$1ENDPOINT\$1URL\$1IOT  | 
|  IoT Data Plane  |  iot\$1data\$1plane  |  AWS\$1ENDPOINT\$1URL\$1IOT\$1DATA\$1PLANE  | 
|  IoT Jobs Data Plane  |  iot\$1jobs\$1data\$1plane  |  AWS\$1ENDPOINT\$1URL\$1IOT\$1JOBS\$1DATA\$1PLANE  | 
|  IoT 1Click Devices Service  |  iot\$11click\$1devices\$1service  |  AWS\$1ENDPOINT\$1URL\$1IOT\$11CLICK\$1DEVICES\$1SERVICE  | 
|  IoT 1Click Projects  |  iot\$11click\$1projects  |  AWS\$1ENDPOINT\$1URL\$1IOT\$11CLICK\$1PROJECTS  | 
|  IoTAnalytics  |  iotanalytics  |  AWS\$1ENDPOINT\$1URL\$1IOTANALYTICS  | 
|  IotDeviceAdvisor  |  iotdeviceadvisor  |  AWS\$1ENDPOINT\$1URL\$1IOTDEVICEADVISOR  | 
|  IoT Events  |  iot\$1events  |  AWS\$1ENDPOINT\$1URL\$1IOT\$1EVENTS  | 
|  IoT Events Data  |  iot\$1events\$1data  |  AWS\$1ENDPOINT\$1URL\$1IOT\$1EVENTS\$1DATA  | 
|  IoTFleetHub  |  iotfleethub  |  AWS\$1ENDPOINT\$1URL\$1IOTFLEETHUB  | 
|  IoTFleetWise  |  iotfleetwise  |  AWS\$1ENDPOINT\$1URL\$1IOTFLEETWISE  | 
|  IoTSecureTunneling  |  iotsecuretunneling  |  AWS\$1ENDPOINT\$1URL\$1IOTSECURETUNNELING  | 
|  IoTSiteWise  |  iotsitewise  |  AWS\$1ENDPOINT\$1URL\$1IOTSITEWISE  | 
|  IoTThingsGraph  |  iotthingsgraph  |  AWS\$1ENDPOINT\$1URL\$1IOTTHINGSGRAPH  | 
|  IoTTwinMaker  |  iottwinmaker  |  AWS\$1ENDPOINT\$1URL\$1IOTTWINMAKER  | 
|  IoT Wireless  |  iot\$1wireless  |  AWS\$1ENDPOINT\$1URL\$1IOT\$1WIRELESS  | 
|  ivs  |  ivs  |  AWS\$1ENDPOINT\$1URL\$1IVS  | 
|  IVS RealTime  |  ivs\$1realtime  |  AWS\$1ENDPOINT\$1URL\$1IVS\$1REALTIME  | 
|  ivschat  |  ivschat  |  AWS\$1ENDPOINT\$1URL\$1IVSCHAT  | 
|  Kafka  |  kafka  |  AWS\$1ENDPOINT\$1URL\$1KAFKA  | 
|  KafkaConnect  |  kafkaconnect  |  AWS\$1ENDPOINT\$1URL\$1KAFKACONNECT  | 
|  kendra  |  kendra  |  AWS\$1ENDPOINT\$1URL\$1KENDRA  | 
|  Kendra Ranking  |  kendra\$1ranking  |  AWS\$1ENDPOINT\$1URL\$1KENDRA\$1RANKING  | 
|  Keyspaces  |  keyspaces  |  AWS\$1ENDPOINT\$1URL\$1KEYSPACES  | 
|  Kinesis  |  kinesis  |  AWS\$1ENDPOINT\$1URL\$1KINESIS  | 
|  Kinesis Video Archived Media  |  kinesis\$1video\$1archived\$1media  |  AWS\$1ENDPOINT\$1URL\$1KINESIS\$1VIDEO\$1ARCHIVED\$1MEDIA  | 
|  Kinesis Video Media  |  kinesis\$1video\$1media  |  AWS\$1ENDPOINT\$1URL\$1KINESIS\$1VIDEO\$1MEDIA  | 
|  Kinesis Video Signaling  |  kinesis\$1video\$1signaling  |  AWS\$1ENDPOINT\$1URL\$1KINESIS\$1VIDEO\$1SIGNALING  | 
|  Kinesis Video WebRTC Storage  |  kinesis\$1video\$1webrtc\$1storage  |  AWS\$1ENDPOINT\$1URL\$1KINESIS\$1VIDEO\$1WEBRTC\$1STORAGE  | 
|  Kinesis Analytics  |  kinesis\$1analytics  |  AWS\$1ENDPOINT\$1URL\$1KINESIS\$1ANALYTICS  | 
|  Kinesis Analytics V2  |  kinesis\$1analytics\$1v2  |  AWS\$1ENDPOINT\$1URL\$1KINESIS\$1ANALYTICS\$1V2  | 
|  Kinesis Video  |  kinesis\$1video  |  AWS\$1ENDPOINT\$1URL\$1KINESIS\$1VIDEO  | 
|  KMS  |  kms  |  AWS\$1ENDPOINT\$1URL\$1KMS  | 
|  LakeFormation  |  lakeformation  |  AWS\$1ENDPOINT\$1URL\$1LAKEFORMATION  | 
|  Lambda  |  lambda  |  AWS\$1ENDPOINT\$1URL\$1LAMBDA  | 
|  Launch Wizard  |  launch\$1wizard  |  AWS\$1ENDPOINT\$1URL\$1LAUNCH\$1WIZARD  | 
|  Lex Model Building Service  |  lex\$1model\$1building\$1service  |  AWS\$1ENDPOINT\$1URL\$1LEX\$1MODEL\$1BUILDING\$1SERVICE  | 
|  Lex Runtime Service  |  lex\$1runtime\$1service  |  AWS\$1ENDPOINT\$1URL\$1LEX\$1RUNTIME\$1SERVICE  | 
|  Lex Models V2  |  lex\$1models\$1v2  |  AWS\$1ENDPOINT\$1URL\$1LEX\$1MODELS\$1V2  | 
|  Lex Runtime V2  |  lex\$1runtime\$1v2  |  AWS\$1ENDPOINT\$1URL\$1LEX\$1RUNTIME\$1V2  | 
|  License Manager  |  license\$1manager  |  AWS\$1ENDPOINT\$1URL\$1LICENSE\$1MANAGER  | 
|  License Manager Linux Subscriptions  |  license\$1manager\$1linux\$1subscriptions  |  AWS\$1ENDPOINT\$1URL\$1LICENSE\$1MANAGER\$1LINUX\$1SUBSCRIPTIONS  | 
|  License Manager User Subscriptions  |  license\$1manager\$1user\$1subscriptions  |  AWS\$1ENDPOINT\$1URL\$1LICENSE\$1MANAGER\$1USER\$1SUBSCRIPTIONS  | 
|  Lightsail  |  lightsail  |  AWS\$1ENDPOINT\$1URL\$1LIGHTSAIL  | 
|  Location  |  location  |  AWS\$1ENDPOINT\$1URL\$1LOCATION  | 
|  CloudWatch Logs  |  cloudwatch\$1logs  |  AWS\$1ENDPOINT\$1URL\$1CLOUDWATCH\$1LOGS  | 
|  LookoutEquipment  |  lookoutequipment  |  AWS\$1ENDPOINT\$1URL\$1LOOKOUTEQUIPMENT  | 
|  LookoutMetrics  |  lookoutmetrics  |  AWS\$1ENDPOINT\$1URL\$1LOOKOUTMETRICS  | 
|  LookoutVision  |  lookoutvision  |  AWS\$1ENDPOINT\$1URL\$1LOOKOUTVISION  | 
|  m2  |  m2  |  AWS\$1ENDPOINT\$1URL\$1M2  | 
|  Machine Learning  |  machine\$1learning  |  AWS\$1ENDPOINT\$1URL\$1MACHINE\$1LEARNING  | 
|  Macie2  |  macie2  |  AWS\$1ENDPOINT\$1URL\$1MACIE2  | 
|  ManagedBlockchain  |  managedblockchain  |  AWS\$1ENDPOINT\$1URL\$1MANAGEDBLOCKCHAIN  | 
|  ManagedBlockchain Query  |  managedblockchain\$1query  |  AWS\$1ENDPOINT\$1URL\$1MANAGEDBLOCKCHAIN\$1QUERY  | 
|  Marketplace Agreement  |  marketplace\$1agreement  |  AWS\$1ENDPOINT\$1URL\$1MARKETPLACE\$1AGREEMENT  | 
|  Marketplace Catalog  |  marketplace\$1catalog  |  AWS\$1ENDPOINT\$1URL\$1MARKETPLACE\$1CATALOG  | 
|  Marketplace Deployment  |  marketplace\$1deployment  |  AWS\$1ENDPOINT\$1URL\$1MARKETPLACE\$1DEPLOYMENT  | 
|  Marketplace Entitlement Service  |  marketplace\$1entitlement\$1service  |  AWS\$1ENDPOINT\$1URL\$1MARKETPLACE\$1ENTITLEMENT\$1SERVICE  | 
|  Marketplace Commerce Analytics  |  marketplace\$1commerce\$1analytics  |  AWS\$1ENDPOINT\$1URL\$1MARKETPLACE\$1COMMERCE\$1ANALYTICS  | 
|  MediaConnect  |  mediaconnect  |  AWS\$1ENDPOINT\$1URL\$1MEDIACONNECT  | 
|  MediaConvert  |  mediaconvert  |  AWS\$1ENDPOINT\$1URL\$1MEDIACONVERT  | 
|  MediaLive  |  medialive  |  AWS\$1ENDPOINT\$1URL\$1MEDIALIVE  | 
|  MediaPackage  |  mediapackage  |  AWS\$1ENDPOINT\$1URL\$1MEDIAPACKAGE  | 
|  MediaPackage Vod  |  mediapackage\$1vod  |  AWS\$1ENDPOINT\$1URL\$1MEDIAPACKAGE\$1VOD  | 
|  MediaPackageV2  |  mediapackagev2  |  AWS\$1ENDPOINT\$1URL\$1MEDIAPACKAGEV2  | 
|  MediaStore  |  mediastore  |  AWS\$1ENDPOINT\$1URL\$1MEDIASTORE  | 
|  MediaStore Data  |  mediastore\$1data  |  AWS\$1ENDPOINT\$1URL\$1MEDIASTORE\$1DATA  | 
|  MediaTailor  |  mediatailor  |  AWS\$1ENDPOINT\$1URL\$1MEDIATAILOR  | 
|  Medical Imaging  |  medical\$1imaging  |  AWS\$1ENDPOINT\$1URL\$1MEDICAL\$1IMAGING  | 
|  MemoryDB  |  memorydb  |  AWS\$1ENDPOINT\$1URL\$1MEMORYDB  | 
|  Marketplace Metering  |  marketplace\$1metering  |  AWS\$1ENDPOINT\$1URL\$1MARKETPLACE\$1METERING  | 
|  Migration Hub  |  migration\$1hub  |  AWS\$1ENDPOINT\$1URL\$1MIGRATION\$1HUB  | 
|  mgn  |  mgn  |  AWS\$1ENDPOINT\$1URL\$1MGN  | 
|  Migration Hub Refactor Spaces  |  migration\$1hub\$1refactor\$1spaces  |  AWS\$1ENDPOINT\$1URL\$1MIGRATION\$1HUB\$1REFACTOR\$1SPACES  | 
|  MigrationHub Config  |  migrationhub\$1config  |  AWS\$1ENDPOINT\$1URL\$1MIGRATIONHUB\$1CONFIG  | 
|  MigrationHubOrchestrator  |  migrationhuborchestrator  |  AWS\$1ENDPOINT\$1URL\$1MIGRATIONHUBORCHESTRATOR  | 
|  MigrationHubStrategy  |  migrationhubstrategy  |  AWS\$1ENDPOINT\$1URL\$1MIGRATIONHUBSTRATEGY  | 
|  Mobile  |  mobile  |  AWS\$1ENDPOINT\$1URL\$1MOBILE  | 
|  mq  |  mq  |  AWS\$1ENDPOINT\$1URL\$1MQ  | 
|  MTurk  |  mturk  |  AWS\$1ENDPOINT\$1URL\$1MTURK  | 
|  MWAA  |  mwaa  |  AWS\$1ENDPOINT\$1URL\$1MWAA  | 
|  Neptune  |  neptune  |  AWS\$1ENDPOINT\$1URL\$1NEPTUNE  | 
|  Neptune Graph  |  neptune\$1graph  |  AWS\$1ENDPOINT\$1URL\$1NEPTUNE\$1GRAPH  | 
|  neptunedata  |  neptunedata  |  AWS\$1ENDPOINT\$1URL\$1NEPTUNEDATA  | 
|  Network Firewall  |  network\$1firewall  |  AWS\$1ENDPOINT\$1URL\$1NETWORK\$1FIREWALL  | 
|  NetworkManager  |  networkmanager  |  AWS\$1ENDPOINT\$1URL\$1NETWORKMANAGER  | 
|  NetworkMonitor  |  networkmonitor  |  AWS\$1ENDPOINT\$1URL\$1NETWORKMONITOR  | 
|  nimble  |  nimble  |  AWS\$1ENDPOINT\$1URL\$1NIMBLE  | 
|  OAM  |  oam  |  AWS\$1ENDPOINT\$1URL\$1OAM  | 
|  Omics  |  omics  |  AWS\$1ENDPOINT\$1URL\$1OMICS  | 
|  OpenSearch  |  opensearch  |  AWS\$1ENDPOINT\$1URL\$1OPENSEARCH  | 
|  OpenSearchServerless  |  opensearchserverless  |  AWS\$1ENDPOINT\$1URL\$1OPENSEARCHSERVERLESS  | 
|  OpsWorks  |  opsworks  |  AWS\$1ENDPOINT\$1URL\$1OPSWORKS  | 
|  OpsWorksCM  |  opsworkscm  |  AWS\$1ENDPOINT\$1URL\$1OPSWORKSCM  | 
|  Organizations  |  organizations  |  AWS\$1ENDPOINT\$1URL\$1ORGANIZATIONS  | 
|  OSIS  |  osis  |  AWS\$1ENDPOINT\$1URL\$1OSIS  | 
|  Outposts  |  outposts  |  AWS\$1ENDPOINT\$1URL\$1OUTPOSTS  | 
|  p8data  |  p8data  |  AWS\$1ENDPOINT\$1URL\$1P8DATA  | 
|  p8data  |  p8data  |  AWS\$1ENDPOINT\$1URL\$1P8DATA  | 
|  Panorama  |  panorama  |  AWS\$1ENDPOINT\$1URL\$1PANORAMA  | 
|  Payment Cryptography  |  payment\$1cryptography  |  AWS\$1ENDPOINT\$1URL\$1PAYMENT\$1CRYPTOGRAPHY  | 
|  Payment Cryptography Data  |  payment\$1cryptography\$1data  |  AWS\$1ENDPOINT\$1URL\$1PAYMENT\$1CRYPTOGRAPHY\$1DATA  | 
|  Pca Connector Ad  |  pca\$1connector\$1ad  |  AWS\$1ENDPOINT\$1URL\$1PCA\$1CONNECTOR\$1AD  | 
|  Personalize  |  personalize  |  AWS\$1ENDPOINT\$1URL\$1PERSONALIZE  | 
|  Personalize Events  |  personalize\$1events  |  AWS\$1ENDPOINT\$1URL\$1PERSONALIZE\$1EVENTS  | 
|  Personalize Runtime  |  personalize\$1runtime  |  AWS\$1ENDPOINT\$1URL\$1PERSONALIZE\$1RUNTIME  | 
|  PI  |  pi  |  AWS\$1ENDPOINT\$1URL\$1PI  | 
|  Pinpoint  |  pinpoint  |  AWS\$1ENDPOINT\$1URL\$1PINPOINT  | 
|  Pinpoint Email  |  pinpoint\$1email  |  AWS\$1ENDPOINT\$1URL\$1PINPOINT\$1EMAIL  | 
|  Pinpoint SMS Voice  |  pinpoint\$1sms\$1voice  |  AWS\$1ENDPOINT\$1URL\$1PINPOINT\$1SMS\$1VOICE  | 
|  Pinpoint SMS Voice V2  |  pinpoint\$1sms\$1voice\$1v2  |  AWS\$1ENDPOINT\$1URL\$1PINPOINT\$1SMS\$1VOICE\$1V2  | 
|  Pipes  |  pipes  |  AWS\$1ENDPOINT\$1URL\$1PIPES  | 
|  Polly  |  polly  |  AWS\$1ENDPOINT\$1URL\$1POLLY  | 
|  Pricing  |  pricing  |  AWS\$1ENDPOINT\$1URL\$1PRICING  | 
|  PrivateNetworks  |  privatenetworks  |  AWS\$1ENDPOINT\$1URL\$1PRIVATENETWORKS  | 
|  Proton  |  proton  |  AWS\$1ENDPOINT\$1URL\$1PROTON  | 
|  QBusiness  |  qbusiness  |  AWS\$1ENDPOINT\$1URL\$1QBUSINESS  | 
|  QConnect  |  qconnect  |  AWS\$1ENDPOINT\$1URL\$1QCONNECT  | 
|  QLDB  |  qldb  |  AWS\$1ENDPOINT\$1URL\$1QLDB  | 
|  QLDB Session  |  qldb\$1session  |  AWS\$1ENDPOINT\$1URL\$1QLDB\$1SESSION  | 
|  QuickSight  |  quicksight  |  AWS\$1ENDPOINT\$1URL\$1QUICKSIGHT  | 
|  RAM  |  ram  |  AWS\$1ENDPOINT\$1URL\$1RAM  | 
|  rbin  |  rbin  |  AWS\$1ENDPOINT\$1URL\$1RBIN  | 
|  RDS  |  rds  |  AWS\$1ENDPOINT\$1URL\$1RDS  | 
|  RDS Data  |  rds\$1data  |  AWS\$1ENDPOINT\$1URL\$1RDS\$1DATA  | 
|  Redshift  |  redshift  |  AWS\$1ENDPOINT\$1URL\$1REDSHIFT  | 
|  Redshift Data  |  redshift\$1data  |  AWS\$1ENDPOINT\$1URL\$1REDSHIFT\$1DATA  | 
|  Redshift Serverless  |  redshift\$1serverless  |  AWS\$1ENDPOINT\$1URL\$1REDSHIFT\$1SERVERLESS  | 
|  Rekognition  |  rekognition  |  AWS\$1ENDPOINT\$1URL\$1REKOGNITION  | 
|  repostspace  |  repostspace  |  AWS\$1ENDPOINT\$1URL\$1REPOSTSPACE  | 
|  resiliencehub  |  resiliencehub  |  AWS\$1ENDPOINT\$1URL\$1RESILIENCEHUB  | 
|  Resource Explorer 2  |  resource\$1explorer\$12  |  AWS\$1ENDPOINT\$1URL\$1RESOURCE\$1EXPLORER\$12  | 
|  Resource Groups  |  resource\$1groups  |  AWS\$1ENDPOINT\$1URL\$1RESOURCE\$1GROUPS  | 
|  Resource Groups Tagging API  |  resource\$1groups\$1tagging\$1api  |  AWS\$1ENDPOINT\$1URL\$1RESOURCE\$1GROUPS\$1TAGGING\$1API  | 
|  RoboMaker  |  robomaker  |  AWS\$1ENDPOINT\$1URL\$1ROBOMAKER  | 
|  RolesAnywhere  |  rolesanywhere  |  AWS\$1ENDPOINT\$1URL\$1ROLESANYWHERE  | 
|  Route 53  |  route\$153  |  AWS\$1ENDPOINT\$1URL\$1ROUTE\$153  | 
|  Route53 Recovery Cluster  |  route53\$1recovery\$1cluster  |  AWS\$1ENDPOINT\$1URL\$1ROUTE53\$1RECOVERY\$1CLUSTER  | 
|  Route53 Recovery Control Config  |  route53\$1recovery\$1control\$1config  |  AWS\$1ENDPOINT\$1URL\$1ROUTE53\$1RECOVERY\$1CONTROL\$1CONFIG  | 
|  Route53 Recovery Readiness  |  route53\$1recovery\$1readiness  |  AWS\$1ENDPOINT\$1URL\$1ROUTE53\$1RECOVERY\$1READINESS  | 
|  Route 53 Domains  |  route\$153\$1domains  |  AWS\$1ENDPOINT\$1URL\$1ROUTE\$153\$1DOMAINS  | 
|  Route53Resolver  |  route53resolver  |  AWS\$1ENDPOINT\$1URL\$1ROUTE53RESOLVER  | 
|  RUM  |  rum  |  AWS\$1ENDPOINT\$1URL\$1RUM  | 
|  S3  |  s3  |  AWS\$1ENDPOINT\$1URL\$1S3  | 
|  S3 Control  |  s3\$1control  |  AWS\$1ENDPOINT\$1URL\$1S3\$1CONTROL  | 
|  S3Outposts  |  s3outposts  |  AWS\$1ENDPOINT\$1URL\$1S3OUTPOSTS  | 
|  SageMaker  |  sagemaker  |  AWS\$1ENDPOINT\$1URL\$1SAGEMAKER  | 
|  SageMaker A2I Runtime  |  sagemaker\$1a2i\$1runtime  |  AWS\$1ENDPOINT\$1URL\$1SAGEMAKER\$1A2I\$1RUNTIME  | 
|  Sagemaker Edge  |  sagemaker\$1edge  |  AWS\$1ENDPOINT\$1URL\$1SAGEMAKER\$1EDGE  | 
|  SageMaker FeatureStore Runtime  |  sagemaker\$1featurestore\$1runtime  |  AWS\$1ENDPOINT\$1URL\$1SAGEMAKER\$1FEATURESTORE\$1RUNTIME  | 
|  SageMaker Geospatial  |  sagemaker\$1geospatial  |  AWS\$1ENDPOINT\$1URL\$1SAGEMAKER\$1GEOSPATIAL  | 
|  SageMaker Metrics  |  sagemaker\$1metrics  |  AWS\$1ENDPOINT\$1URL\$1SAGEMAKER\$1METRICS  | 
|  SageMaker Runtime  |  sagemaker\$1runtime  |  AWS\$1ENDPOINT\$1URL\$1SAGEMAKER\$1RUNTIME  | 
|  savingsplans  |  savingsplans  |  AWS\$1ENDPOINT\$1URL\$1SAVINGSPLANS  | 
|  Scheduler  |  scheduler  |  AWS\$1ENDPOINT\$1URL\$1SCHEDULER  | 
|  schemas  |  schemas  |  AWS\$1ENDPOINT\$1URL\$1SCHEMAS  | 
|  SimpleDB  |  simpledb  |  AWS\$1ENDPOINT\$1URL\$1SIMPLEDB  | 
|  Secrets Manager  |  secrets\$1manager  |  AWS\$1ENDPOINT\$1URL\$1SECRETS\$1MANAGER  | 
|  SecurityHub  |  securityhub  |  AWS\$1ENDPOINT\$1URL\$1SECURITYHUB  | 
|  SecurityLake  |  securitylake  |  AWS\$1ENDPOINT\$1URL\$1SECURITYLAKE  | 
|  ServerlessApplicationRepository  |  serverlessapplicationrepository  |  AWS\$1ENDPOINT\$1URL\$1SERVERLESSAPPLICATIONREPOSITORY  | 
|  Service Quotas  |  service\$1quotas  |  AWS\$1ENDPOINT\$1URL\$1SERVICE\$1QUOTAS  | 
|  Service Catalog  |  service\$1catalog  |  AWS\$1ENDPOINT\$1URL\$1SERVICE\$1CATALOG  | 
|  Service Catalog AppRegistry  |  service\$1catalog\$1appregistry  |  AWS\$1ENDPOINT\$1URL\$1SERVICE\$1CATALOG\$1APPREGISTRY  | 
|  ServiceDiscovery  |  servicediscovery  |  AWS\$1ENDPOINT\$1URL\$1SERVICEDISCOVERY  | 
|  SES  |  ses  |  AWS\$1ENDPOINT\$1URL\$1SES  | 
|  SESv2  |  sesv2  |  AWS\$1ENDPOINT\$1URL\$1SESV2  | 
|  Shield  |  shield  |  AWS\$1ENDPOINT\$1URL\$1SHIELD  | 
|  signer  |  signer  |  AWS\$1ENDPOINT\$1URL\$1SIGNER  | 
|  SimSpaceWeaver  |  simspaceweaver  |  AWS\$1ENDPOINT\$1URL\$1SIMSPACEWEAVER  | 
|  SMS  |  sms  |  AWS\$1ENDPOINT\$1URL\$1SMS  | 
|  Snow Device Management  |  snow\$1device\$1management  |  AWS\$1ENDPOINT\$1URL\$1SNOW\$1DEVICE\$1MANAGEMENT  | 
|  Snowball  |  snowball  |  AWS\$1ENDPOINT\$1URL\$1SNOWBALL  | 
|  SNS  |  sns  |  AWS\$1ENDPOINT\$1URL\$1SNS  | 
|  SQS  |  sqs  |  AWS\$1ENDPOINT\$1URL\$1SQS  | 
|  SSM  |  ssm  |  AWS\$1ENDPOINT\$1URL\$1SSM  | 
|  SSM Contacts  |  ssm\$1contacts  |  AWS\$1ENDPOINT\$1URL\$1SSM\$1CONTACTS  | 
|  SSM Incidents  |  ssm\$1incidents  |  AWS\$1ENDPOINT\$1URL\$1SSM\$1INCIDENTS  | 
|  Ssm Sap  |  ssm\$1sap  |  AWS\$1ENDPOINT\$1URL\$1SSM\$1SAP  | 
|  SSO  |  sso  |  AWS\$1ENDPOINT\$1URL\$1SSO  | 
|  SSO Admin  |  sso\$1admin  |  AWS\$1ENDPOINT\$1URL\$1SSO\$1ADMIN  | 
|  SSO OIDC  |  sso\$1oidc  |  AWS\$1ENDPOINT\$1URL\$1SSO\$1OIDC  | 
|  SFN  |  sfn  |  AWS\$1ENDPOINT\$1URL\$1SFN  | 
|  Storage Gateway  |  storage\$1gateway  |  AWS\$1ENDPOINT\$1URL\$1STORAGE\$1GATEWAY  | 
|  STS  |  sts  |  AWS\$1ENDPOINT\$1URL\$1STS  | 
|  SupplyChain  |  supplychain  |  AWS\$1ENDPOINT\$1URL\$1SUPPLYCHAIN  | 
|  Support  |  support  |  AWS\$1ENDPOINT\$1URL\$1SUPPORT  | 
|  Support App  |  support\$1app  |  AWS\$1ENDPOINT\$1URL\$1SUPPORT\$1APP  | 
|  SWF  |  swf  |  AWS\$1ENDPOINT\$1URL\$1SWF  | 
|  synthetics  |  synthetics  |  AWS\$1ENDPOINT\$1URL\$1SYNTHETICS  | 
|  Textract  |  textract  |  AWS\$1ENDPOINT\$1URL\$1TEXTRACT  | 
|  Timestream InfluxDB  |  timestream\$1influxdb  |  AWS\$1ENDPOINT\$1URL\$1TIMESTREAM\$1INFLUXDB  | 
|  Timestream Query  |  timestream\$1query  |  AWS\$1ENDPOINT\$1URL\$1TIMESTREAM\$1QUERY  | 
|  Timestream Write  |  timestream\$1write  |  AWS\$1ENDPOINT\$1URL\$1TIMESTREAM\$1WRITE  | 
|  tnb  |  tnb  |  AWS\$1ENDPOINT\$1URL\$1TNB  | 
|  Transcribe  |  transcribe  |  AWS\$1ENDPOINT\$1URL\$1TRANSCRIBE  | 
|  Transfer  |  transfer  |  AWS\$1ENDPOINT\$1URL\$1TRANSFER  | 
|  Translate  |  translate  |  AWS\$1ENDPOINT\$1URL\$1TRANSLATE  | 
|  TrustedAdvisor  |  trustedadvisor  |  AWS\$1ENDPOINT\$1URL\$1TRUSTEDADVISOR  | 
|  VerifiedPermissions  |  verifiedpermissions  |  AWS\$1ENDPOINT\$1URL\$1VERIFIEDPERMISSIONS  | 
|  Voice ID  |  voice\$1id  |  AWS\$1ENDPOINT\$1URL\$1VOICE\$1ID  | 
|  VPC Lattice  |  vpc\$1lattice  |  AWS\$1ENDPOINT\$1URL\$1VPC\$1LATTICE  | 
|  WAF  |  waf  |  AWS\$1ENDPOINT\$1URL\$1WAF  | 
|  WAF Regional  |  waf\$1regional  |  AWS\$1ENDPOINT\$1URL\$1WAF\$1REGIONAL  | 
|  WAFV2  |  wafv2  |  AWS\$1ENDPOINT\$1URL\$1WAFV2  | 
|  WellArchitected  |  wellarchitected  |  AWS\$1ENDPOINT\$1URL\$1WELLARCHITECTED  | 
|  Wisdom  |  wisdom  |  AWS\$1ENDPOINT\$1URL\$1WISDOM  | 
|  WorkDocs  |  workdocs  |  AWS\$1ENDPOINT\$1URL\$1WORKDOCS  | 
|  WorkLink  |  worklink  |  AWS\$1ENDPOINT\$1URL\$1WORKLINK  | 
|  WorkMail  |  workmail  |  AWS\$1ENDPOINT\$1URL\$1WORKMAIL  | 
|  WorkMailMessageFlow  |  workmailmessageflow  |  AWS\$1ENDPOINT\$1URL\$1WORKMAILMESSAGEFLOW  | 
|  WorkSpaces  |  workspaces  |  AWS\$1ENDPOINT\$1URL\$1WORKSPACES  | 
|  WorkSpaces Thin Client  |  workspaces\$1thin\$1client  |  AWS\$1ENDPOINT\$1URL\$1WORKSPACES\$1THIN\$1CLIENT  | 
|  WorkSpaces Web  |  workspaces\$1web  |  AWS\$1ENDPOINT\$1URL\$1WORKSPACES\$1WEB  | 
|  XRay  |  xray  |  AWS\$1ENDPOINT\$1URL\$1XRAY  | 

# 智能配置默认值
<a name="feature-smart-config-defaults"></a>

**注意**  
如需了解设置页面布局或解释后面的 Support b **y AWS SDKs 和 tools** 表格的帮助，请参阅[了解本指南的设置页面](settings-reference.md#settingsPages)。

借助智能配置默认值功能， AWS SDKs 可以为其他配置设置提供预定义的、优化的默认值。

使用以下方法配置此功能：

**`defaults_mode`-共享 AWS `config`文件设置`AWS_DEFAULTS_MODE` - 环境变量`aws.defaultsMode`-JVM 系统属性：仅限 Java/Kotlin **  
使用此设置，您可以选择与您的应用程序架构相匹配的模式，然后为您的应用程序提供经过优化的默认值。如果 S AWS DK 设置明确设置了值，则该值始终优先。如果 S AWS DK 设置没有明确设置值，并且`defaults_mode`不等于旧版，则此功能可以为针对您的应用程序优化的各种设置提供不同的默认值。设置可能包括以下内容：HTTP 通信设置、重试行为、服务区域端点设置，可能还包括任何与 SDK 相关的配置。使用此功能的客户可以获得针对常见使用场景量身定制的新配置默认值。由于提供的默认值可能会随着最佳实践的发展而改变，因此如果您的 `defaults_mode` 不等于 `legacy`，我们建议您在升级 SDK 时对您的应用程序进行测试。  
**默认值**：`legacy`  
注意：will 的新主要 SDKs 版本默认为`standard`。  
**有效值：**  
+ `legacy` – 提供默认设置，这些设置因 SDK 而异，并且在建立 `defaults_mode` 之前就已存在。
+ `standard` – 提供最新的推荐默认值，这些默认值在大多数情况下都应该可以安全运行。
+ `in-region`— 基于标准模式构建，包括为 AWS 服务 从标准模式内部调用的应用程序量身定制的优化 AWS 区域。
+ `cross-region`— 基于标准模式构建，包括为调用不同区域的应用程序量身定制 AWS 服务 的优化。
+ `mobile` – 基于标准模式构建，包括为移动应用程序量身定制的优化。
+ `auto` – 基于标准模式构建，包括实验功能。SDK 会尝试发现运行时系统环境以自动确定适当的设置。自动检测是基于启发式的，无法提供 100% 的准确性。如果无法确定运行时系统环境，则使用 `standard` 模式。自动检测功能可能会查询[实例元数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)，这可能会带来延迟。如果启动延迟对您的应用程序而言至关重要，我们建议您改为选择显式 `defaults_mode` 延迟。
 在 `config` 文件中设置此值的示例：  

```
[default]
defaults_mode = standard
```
以下参数可能会根据 `defaults_mode` 的选项进行优化：  
+ `retryMode` – 指定 SDK 如何尝试重试。请参阅[重试行为](feature-retry-behavior.md)。
+ `stsRegionalEndpoints`— 指定 SDK 如何确定用于与 AWS Security Token Service (AWS STS) 通信的 AWS 服务 端点。请参阅[AWS STS 区域终端节点](feature-sts-regionalized-endpoints.md)。
+ `s3UsEast1RegionalEndpoints`— 指定软件开发工具包如何确定用于与该`us-east-1`区域的 Amazon S3 通信的 AWS 服务终端节点。
+ `connectTimeoutInMillis` – 在套接字上进行初始连接尝试后，超时之前的时长。如果客户端没有收到连接握手完成的消息，则客户端会放弃操作并使其失败。
+ `tlsNegotiationTimeoutInMillis` – 从发送 CLIENT HELLO 消息到客户端和服务器完全协商密码并交换密钥，TLS 握手可能花费的最大时长。

每个设置的默认值会根据为应用程序选择的 `defaults_mode` 而变化。这些值目前设置如下（可能会发生变化）：


| 参数 | `standard` 模式 | `in-region` 模式 | `cross-region` 模式 | `mobile` 模式 | 
| --- | --- | --- | --- | --- | 
|  retryMode  | standard | standard | standard | standard | 
|  stsRegionalEndpoints  | regional | regional | regional | regional | 
|  s3UsEast1RegionalEndpoints  | regional | regional | regional | regional | 
|  connectTimeoutInMillis  | 3100 | 1100 | 3100 | 30000 | 
|  tlsNegotiationTimeoutInMillis  | 3100 | 1100 | 3100 | 30000 | 

例如，如果您选择的`defaults_mode`是`standard`，则将为`retry_mode`分配`standard`的值（来自有效的`retry_mode`选项），将为`stsRegionalEndpoints`分配`regional`的值（来自有效`stsRegionalEndpoints`选项）。

## Support AWS SDKs by 和工具
<a name="feature-smart-config-defaults-sdk-compat"></a>

以下内容 SDKs 支持本主题中描述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 适用于 Kotlin 的 AWS SDK 唯一支持任何 JVM 系统属性设置。


| SDK | 支持 | 备注或更多信息 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 否 |  | 
| [适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) |  是 | 参数未优化：stsRegionalEndpoints、s3UsEast1RegionalEndpoints、tlsNegotiationTimeoutInMillis。 | 
| [适用于 Go V2 (1.x) 的 SDK](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 | 参数未优化：retryMode、stsRegionalEndpoints、s3UsEast1RegionalEndpoints。 | 
| [适用于 Go 1.x（V1）的 SDK](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [适用于 Java 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 | 参数未优化：stsRegionalEndpoints。 | 
| [适用于 Java 1.x 的 SDK](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [适用于 JavaScript 3.x 的软件开发工具包](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 | 参数未优化：stsRegionalEndpoints、s3UsEast1RegionalEndpoints、tlsNegotiationTimeoutInMillis。connectTimeoutInMillis 被称为 connectionTimeout。 | 
| [适用于 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 |  | 
| [适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 否 |  | 
| [适用于.NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 | 参数未优化：connectTimeoutInMillis、tlsNegotiationTimeoutInMillis。 | 
| [适用于 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 | 参数未优化：connectTimeoutInMillis、tlsNegotiationTimeoutInMillis。 | 
| [适用于 PHP 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 | 参数未优化：tlsNegotiationTimeoutInMillis。 | 
| [适用于 Python (Boto3) 的 SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | 参数未优化：tlsNegotiationTimeoutInMillis。 | 
| [适用于 Ruby 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |   | 
| [适用于 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 否 |  | 
| [适用于 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [适用于 PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 | 参数未优化：connectTimeoutInMillis、tlsNegotiationTimeoutInMillis。 | 
| [适用于 PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 | 参数未优化：connectTimeoutInMillis、tlsNegotiationTimeoutInMillis。 | 