本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS Secrets and Configuration Provider CSI 搭配服務帳戶 (IRSA) 的 IAM 角色
先決條件
-
Amazon EKS 叢集 (1.17 版或更新版本)
-
透過 存取 AWS CLI 和 Amazon EKS 叢集
kubectl
設定存取控制
ASCP 會擷取 Amazon EKS Pod 身分,並將其交換為 IAM 角色。您可以在 IAM 政策中為該 IAM 角色設定許可。當 ASCP 擔任 IAM 角色時,它會存取您授權的參數。除非您也將其與 IAM 角色建立關聯,否則其他容器無法存取參數。
若要授予 中參數的 Amazon EKS Pod 存取權 Parameter Store
-
建立許可政策,將 Pod 需要存取的參數授予
ssm:GetParameters
和ssm:DescribeParameters
許可。 -
如果尚未建立,請為叢集建立 IAM OpenID Connect (OIDC) 提供者。如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的為您的叢集建立 IAM OIDC 提供者。
-
為服務帳戶建立 IAM 角色,並將政策連接至該角色。如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的為服務帳戶建立 IAM 角色。
-
如果您使用私有 Amazon EKS 叢集,請確定叢集所在的 VPC 具有 AWS STS 端點。如需有關建立端點的資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的界面 VPC 端點。
識別要掛載的參數
若要判斷 ASCP 在 Amazon EKS 中掛載哪些參數做為檔案系統上的檔案,您可以建立 SecretProviderClass YAML 檔案。SecretProviderClass
列出要掛載的參數和要掛載的檔案名稱。SecretProviderClass
必須與參考的 Amazon EKS Pod 位於相同的命名空間中。
將參數掛載為檔案
下列指示說明如何使用範例 YAML 檔案 ExampleSecretProviderClass.yaml
在 Amazon EKS 中掛載參數
-
將
SecretProviderClass
套用至 Pod:kubectl apply -f ExampleSecretProviderClass.yaml
-
部署您的 Pod:
kubectl apply -f ExampleDeployment.yaml
-
ASCP 掛載檔案。
疑難排解
您可以透過描述 Pod 部署來檢視大多數錯誤。
若要查看容器的錯誤訊息
-
使用下列命令取得 Pod 名稱清單。如果不使用預設命名空間,請使用
-n
。name-space
kubectl get pods
-
若要描述 Pod,請在下列命令中,針對
Pod-id
使用您在上一個步驟中找到的 Pod 中的 Pod ID。如果不使用預設命名空間,請使用-n
。nameSpace
kubectl describe pod/
pod-id
若要查看 ASCP 的錯誤
-
若要在提供者日誌中尋找詳細資訊,請在下列命令中,針對
Pod-id
,使用 csi-secrets-store-provider-aws Pod 的 ID。kubectl -n kube-system get pods kubectl -n kube-system logs Pod/
pod-id
-
確認
SecretProviderClass
CRD 已安裝:kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io
此命令應會傳回
SecretProviderClass
自訂資源定義的相關資訊。
-
確認已建立 SecretProviderClass 物件。
kubectl get secretproviderclass
SecretProviderClassName
-o yaml