

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 身分驗證機制
<a name="feature-auth-scheme"></a>

**注意**  
如需了解設定頁面配置或解譯以下 **Support AWS SDKs和工具**資料表的說明，請參閱 [了解本指南的設定頁面](settings-reference.md#settingsPages)。

AWS 服務支援多個身分驗證機制，例如 AWS Signature 第 4 版 (SigV4) 和 AWS Signature 第 4a 版 (SigV4a)。根據預設，SDKs會根據服務模型定義選取身分驗證機制，並優先考慮提供最佳相容性的機制。不過，您可以設定偏好的身分驗證機制，以針對特定需求進行最佳化。

與 SigV4 不同，使用 SigV4a 簽署的請求在多個 中有效 AWS 區域。SigV4a 透過跨區域請求簽署提供增強的可用性，可在區域中斷期間自動容錯移轉至備份區域。這對 AWS Identity and Access Management 或 Amazon CloudFront 等全球服務特別有用。

如需這兩個身分驗證機制的詳細資訊，請參閱《*IAM 使用者指南*》中的 [AWS API 請求的簽章版本 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**  
依優先順序指定以逗號分隔的偏好身分驗證機制清單。當服務支援多個身分驗證方案時，開發套件會嘗試以指定的順序使用此清單中的方案，如果沒有可用的偏好方案，則會回復為預設行為。  
**預設值：**無。  
**有效值：**下列一或多個項目的逗號分隔清單：  
+ **`sigv4`** – Signature 第 4 版 （最高效能，單一區域）
+ **`sigv4a`** – Signature 第 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 區域。區域之間的空格和標籤字元會被忽略。

## 支援 AWS SDKs和工具
<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\+\+ 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [適用於 Go V2 的 SDK (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [適用於 Go 的 SDK 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [適用於 Java 的 SDK 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 |  | 
| [適用於 Java 的 SDK 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [適用於 JavaScript 3.x 的 SDK](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 的 SDK 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [適用於 Python 的 SDK (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [適用於 Ruby 的 SDK 3.x](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/) | 否 |  | 