正确答案: 将 IAM 角色附加到 EKS worker 节点,授予该角色访问 DynamoDB 的权限,并使用该角色配置 IAM Roles for Service Accounts (IRSA)。.
为什么这是答案
正确答案是使用 IAM Roles for Service Accounts (IRSA)。IRSA 允许您将 IAM 角色直接关联到 Kubernetes 服务账户,从而为在 Pod 中运行的应用程序提供精细的 AWS 权限,而无需在容器中存储任何凭证。EKS Pod 可以通过临时凭证安全地访问 DynamoDB。
将 AWS 凭证存储在 S3 存储桶中不安全,因为凭证可能被未经授权的用户访问。创建 IAM 用户并使用环境变量或 Kubernetes Secrets 存储其访问密钥也不是最佳实践,因为它涉及在某处存储长期凭证,增加了安全风险,并且管理起来更复杂。IRSA 是 AWS 推荐的在 EKS 中管理 Pod 权限的最佳实践。