

 **協助改進此頁面** 

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

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

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

# 搭配 AWS SDK 使用 IRSA
<a name="iam-roles-for-service-accounts-minimum-sdk"></a>

**使用憑證**  
若要針對服務帳戶 (IRSA) 使用來自 IAM 角色的登入資料，您的程式碼可以使用任何 AWS SDK 來透過 SDK 為 AWS 服務建立用戶端，並根據預設，軟體開發套件會在位置鏈中搜尋要使用的 AWS Identity and Access Management 登入資料。如果您在建立用戶端或初始化 SDK 時未指定登入資料提供者，則會使用服務帳戶登入資料的 IAM 角色。

這樣是有效的，因為服務帳戶的 IAM 角色已新增為預設憑證鏈中的一個步驟。如果您的工作負載目前使用登入資料鏈中較早的登入資料，即使您為相同工作負載的服務帳戶設定 IAM 角色，這些登入資料仍會繼續使用。

軟體開發套件會使用 `AssumeRoleWithWebIdentity`動作，自動交換服務帳戶 OIDC 字符，以取得來自 AWS Security Token Service 的臨時憑證。Amazon EKS 和此 SDK 動作會繼續輪換臨時憑證，方法是在臨時憑證到期前進行更新。

將 [IAM 角色用於服務帳戶](iam-roles-for-service-accounts.md)時，Pod 中的容器必須使用支援透過 OpenID Connect Web 身分字符檔案擔任 IAM 角色的 AWS SDK 版本。請確定您使用 SDK 的下列版本 或更新版本 AWS ：
+ Java (第 2 版) – [2.10.11](https://github.com/aws/aws-sdk-java-v2/releases/tag/2.10.11) 
+ Java – [1.12.782](https://github.com/aws/aws-sdk-java/releases/tag/1.12.782) 
+  AWS 適用於 Go 的 SDK v1 – [1.23.13](https://github.com/aws/aws-sdk-go/releases/tag/v1.23.13) 
+  AWS SDK for Go v2 – 所有版本支援
+ Python (Boto3) – [1.9.220](https://github.com/boto/boto3/releases/tag/1.9.220) 
+ Python (botocore) – [1.12.200](https://github.com/boto/botocore/releases/tag/1.12.200) 
+  AWS CLI – [1.16.232](https://github.com/aws/aws-cli/releases/tag/1.16.232) 
+ 節點：[2.525.0](https://github.com/aws/aws-sdk-js/releases/tag/v2.525.0) 和 [3.27.0](https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.27.0) 
+ Ruby – [3.58.0](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/CHANGELOG.md#3580-2019-07-01) 
+ C\+\+ – [1.7.174](https://github.com/aws/aws-sdk-cpp/releases/tag/1.7.174) 
+ .NET：[3.3.659.1](https://github.com/aws/aws-sdk-net/releases/tag/3.3.659.1) – 您也必須包含 `AWSSDK.SecurityToken`。
+ PHP – [3.110.7](https://github.com/aws/aws-sdk-php/releases/tag/3.110.7) 

許多熱門的 Kubernetes 附加元件，例如 [Cluster Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler)、[Route Internet traffic with AWS Load Balancer Controller](aws-load-balancer-controller.md) 和 [Amazon VPC CNI plugin for Kubernetes](cni-iam-role.md) 支援服務帳戶的 IAM 角色。

為了確保您使用支援的 SDK，在建立您的容器時，請遵循[在 AWS上建立的工具](https://aws.amazon.com/tools/)中您偏好之 SDK 的安裝指示。

## 考量事項
<a name="_considerations"></a>

### Java
<a name="_java"></a>

使用 Java 時，您*必須*在類別路徑上包含 `sts` 模組。如需詳細資訊，請參閱 Java SDK 文件中的 [WebIdentityTokenFileCredentialsProvider](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/auth/credentials/WebIdentityTokenFileCredentialsProvider.html)。