協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS Secrets Manager 管理應用程式秘密
AWS Secrets Manager
使用適用於 Argo CD 的 EKS 功能時,Secrets Manager 提供安全的方式來存放和擷取 Git 儲存庫登入資料,而無需在 Argo CD 組態和資源中硬式編碼敏感資料。此整合特別適用於管理私有儲存庫存取權杖,以及 Argo CD 用來從 Git 儲存庫同步應用程式的 SSH 金鑰。
搭配 Argo CD 使用 AWS Secrets Manager
使用適用於 Argo CD 的 EKS 功能時,您可以將 Git 儲存庫登入資料存放在 Secrets Manager 中,並設定 Argo CD 進行擷取。這種方法比直接將登入資料存放在 Argo CD 組態中或使用長期個人存取字符更安全。
先決條件
-
已啟用 Argo CD 功能的 Amazon EKS 叢集
-
存放在 AWS Secrets Manager 中的 Git 儲存庫登入資料
-
為 Argo CD 設定存取 Secrets Manager 的 IAM 許可
設定 Argo CD 以使用 Secrets Manager 儲存庫登入資料
-
將您的 Git 登入資料儲存在 Secrets Manager 中。例如,若要存放 GitHub 個人存取字符:
aws secretsmanager create-secret \ --name argocd/github-token \ --secret-string '{"username":"git","password":"ghp_xxxxxxxxxxxx"}' -
確保 Argo CD 功能角色具有擷取秘密的許可:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/github-token*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:region:account-id:key/*", "Condition": { "StringLike": { "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:region:account-id:secret:argocd/*", "kms:ViaService": "secretsmanager.*.amazonaws.com" } } } ] }注意
KMS 解密許可是必要的,因為 Secrets Manager 會使用 AWS KMS 加密所有秘密。條件會將解密限制為僅具有
argocd/字首的秘密。如果您使用 Secrets Manager 的預設 AWS 受管金鑰,則此許可已足夠。對於客戶受管 KMS 金鑰,請使用您的特定金鑰 ARN 更新Resource欄位。 -
設定 Argo CD 以使用 Secrets Manager 的登入資料。如需有關將秘密從 Secrets Manager 同步到 Argo CD 可以參考的 Kubernetes 秘密的資訊,請參閱 Argo CD 文件中的秘密管理
。 -
建立參考秘密 ARN 的 Argo CD 儲存庫組態:
apiVersion: v1 kind: Secret metadata: name: private-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/org/repo secretArn: arn:aws:secretsmanager:region:account-id:secret:argocd/github-token
如需使用 Argo CD 設定儲存庫存取權的詳細資訊,請參閱 設定儲存庫存取。