在亚马逊 Elastic Kubernetes Service 中使用 AWS Secrets Manager 密钥 - AWS Secrets Manager

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在亚马逊 Elastic Kubernetes Service 中使用 AWS Secrets Manager 密钥

要将来自 AWS Secrets Manager (ASCP) 的密钥显示为挂载在 Amazon EKS Pod 中的文件,你可以使用 Kubernetes S AWS ecrets Store CSI 驱动程序的密钥和配置提供程序。ASCP 可与运行亚马逊节点组的亚马逊 Elastic Kubernetes Service 1.17+ 配合使用。 EC2 AWS Fargate 不支持节点组。使用 ASCP,您可以在 Secrets Manager 中存储并管理密钥,然后通过 Amazon EKS 上运行的工作负载检索。如果您的密钥包含多个 JSON 格式的键值对,则可以选择在 Amazon EKS 中挂载哪些键值对。ASCP 可使用 JMESPath 语法来查询密钥中的键/值对。ASCP 还适用于 Parameter Store 参数。ASCP 提供两种通过 Amazon EKS 进行身份验证的方法。第一种方法是使用服务账户的 IAM 角色(IRSA),第二种方法是使用容器组身份。每种方法都有其优势和用例。

基于服务账户的 IAM 角色(IRSA)的 ASCP

具有 IAM 服务账户角色的 ASCP (IRSA) 允许您将密钥 AWS Secrets Manager 作为文件挂载到 Amazon EKS Pod 中。这种方法适用于以下情况:

  • 你需要将密钥作为文件挂载到 Pod 中。

  • 您正在使用带有亚马逊 EC2 节点组的 Amazon EKS 1.17 或更高版本。

  • 你想从 JSON 格式的密钥中检索特定的键值对。

有关更多信息,请参阅 将 AWS 密钥和配置提供商 CSI 与服务账户 IAM 角色配合使用 (IRSA)

基于容器组身份的 ASCP

带有 Pod 身份的 ASCP 方法可增强安全性并简化在 Amazon EKS 中访问密钥的配置。这种方法在以下情况下非常有用:

  • 需要在容器组(pod)级别进行更精细的权限管理时。

  • 使用的是 Amazon EKS 版本 1.24 或更高版本时。

  • 需要提高性能和可扩展性时。

有关更多信息,请参阅 在 Amazon EKS 中使用带有 Pod 身份的 AWS 密钥和配置提供商 CSI

选择正确的方法

在基于 IRSA 的 ASCP 和基于容器组身份的 ASCP 之间做选择时,需考虑以下因素:

  • 亚马逊 EKSversion:Pod Identity 需要亚马逊 EKS 1.24+,而 CSI 驱动程序适用于亚马逊 EKS 1.17+。

  • 安全要求:容器组身份可在容器组(pod)级别提供更精细的控制。

  • 性能:容器组身份通常会在大规模环境中展现更出色的性能。

  • 复杂性:容器组身份无需单独的服务账户,可以简化设置。

选择最符合您的具体要求和 Amazon EKS 环境的方法。