AWS Systems ManagerChange Manager 不再開放給新客戶。現有客戶可以繼續正常使用該服務。如需詳細資訊,請參閱AWS Systems ManagerChange Manager可用性變更。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 AWS Secrets and Configuration Provider CSI 與服務帳戶 IAM 角色 (IRSA) 搭配使用
先決條件
-
Amazon EKS 叢集 (1.17 版或更新版本)
-
可透過
kubectl存取 AWS CLI 和 Amazon EKS 叢集
設定存取控制
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 User Guide 中的 Interface VPC endpoints。
識別要掛載的參數
若要確定 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-spacekubectl get pods -
若要描述 Pod,請在下列命令中,針對
pod-id使用您在上一個步驟中從 Pod 找到的 Pod ID。如果不使用預設命名空間,請使用-n。nameSpacekubectl 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
-
驗證是否已安裝
SecretProviderClassCRD:kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io此命令應會傳回有關
SecretProviderClass自訂資源定義的資訊。
-
驗證是否已建立 SecretProviderClass 物件。
kubectl get secretproviderclassSecretProviderClassName-o yaml