

 **協助改進此頁面** 

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

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

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

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

**使用憑證**  
若要使用來自服務帳戶的 IAM 角色 (IRSA) 的憑證，您的程式碼可以使用任何 AWS SDK 來為具有 SDK 的 AWS 服務建立用戶端，並且根據預設，SDK 會在位置鏈中搜尋要使用的 AWS Identity and Access Management 憑證。如果您在建立用戶端或以其他方式初始化 SDK 時未指定憑證提供者，則系統會使用服務帳戶憑證的 IAM 角色。

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

SDK 會透過使用 `AssumeRoleWithWebIdentity` 動作，自動將服務帳戶 OIDC 權杖更換為來自 AWS Security Token Service 的臨時憑證。Amazon EKS 和此 SDK 動作會繼續輪換臨時憑證，方法是在臨時憑證到期前進行更新。

使用[服務帳戶的 IAM 角色](iam-roles-for-service-accounts.md)時，Pod 中的容器使用的 AWS SDK 版本，必須支援透過 OpenID Connect Web 身分權杖檔案擔任 IAM 角色。請確保您的 AWS SDK 使用以下版本或更新版本：
+ 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) 
+  適用於 Go v1 的 AWS SDK – [1.23.13](https://github.com/aws/aws-sdk-go/releases/tag/v1.23.13) 
+  適用於 Go v2 的 AWS SDK – 所有版本支援
+ 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)、[透過 AWS Load Balancer 控制器路由網際網路流量](aws-load-balancer-controller.md)和 [Kubernetes 專用 Amazon VPC CNI 外掛程式](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)。