在 Amazon Elastic Kubernetes Service 中使用 Amazon Secrets Manager 密钥
如果要将 Amazon Secrets Manager(ASCP)中的密钥显示为挂载在 Amazon EKS 容器组(pod)中的文件,您可以在 Kubernetes Secrets Store CSI Driver 中使用 Amazon 密钥和配置提供程序。ASCP 与运行 Amazon EC2 节点组的 Amazon Elastic Kubernetes Service 1.17+ 结合使用。不支持 Amazon Fargate 节点组。使用 ASCP,您可以在 Secrets Manager 中存储并管理密钥,然后通过 Amazon EKS 上运行的工作负载检索。如果密钥包含多个 JSON 格式的键-值对,您可以选择要在 Amazon EKS 中挂载的密钥/值对。ASCP 可使用 JMESPath 语法来查询密钥中的键/值对。ASCP 还适用于 Parameter Store 参数。ASCP 提供两种通过 Amazon EKS 进行身份验证的方法。第一种方法是使用服务账户的 IAM 角色(IRSA),第二种方法是使用容器组身份。每种方法都有其优势和用例。
基于服务账户的 IAM 角色(IRSA)的 ASCP
基于服务账户的 IAM 角色(IRSA)的 ASCP 允许您将 Amazon Secrets Manager 中的密钥作为文件挂载到 Amazon EKS 容器组(pod)中。这种方法适用于以下情况:
-
需要将密钥作为文件挂载到容器组(pod)中时。
-
将 Amazon EKS 版本 1.17 或更高版本与 Amazon EC2 节点组结合使用时。
-
希望从 JSON 格式的密钥中检索特定的键-值对时。
有关更多信息,请参阅 将 Amazon Secrets and Configuration Provider CSI 与服务账户的 IAM 角色(IRSA)结合使用 。
基于容器组身份的 ASCP
基于容器组身份的 ASCP 方法增强了安全性,简化了访问 Amazon EKS 中密钥的配置。这种方法在以下情况下非常有用:
-
需要在容器组(pod)级别进行更精细的权限管理时。
-
使用的是 Amazon EKS 版本 1.24 或更高版本时。
-
需要提高性能和可扩展性时。
有关更多信息,请参阅 将 Amazon Secrets and Configuration Provider CSI 与适用于 Amazon EKS 的容器组身份结合使用。
选择正确的方法
在基于 IRSA 的 ASCP 和基于容器组身份的 ASCP 之间做选择时,需考虑以下因素:
-
Amazon EKS 版本:容器组身份适用于 Amazon EKS 1.24 或更高版本,CSI 驱动程序则适用于 Amazon EKS 1.17 或更高版本。
-
安全要求:容器组身份可在容器组(pod)级别提供更精细的控制。
-
性能:容器组身份通常会在大规模环境中展现更出色的性能。
-
复杂性:容器组身份无需单独的服务账户,可以简化设置。
选择最符合您的具体要求和 Amazon EKS 环境的方法。