Minkube 本地的 k8s 集群 运行 应该有 AWS 凭证来访问 AWS 上的资源

k8s cluster running locally on Minkube should have AWS credentials to access resources on AWS

在开发过程中 - 我在我的 Minikube 开发机器上 运行 k8s 集群,运行 几个服务。

服务应该访问 AWS 资源,例如 S3 存储桶。为此 - pods 应该以某种方式获得 AWS 凭证。

向 AWS 用户验证 pods 的选项有哪些? 我应该在 docker 环境中传递 aws_access_key_id 和 aws_secret_access_key 吗?

它在生产中如何工作(在 EKS 上的 k8s 中)?节点的角色是否传递到 pods?

在本地进行身份验证的一种好方法是创建一个包含 AWS 凭据的 Kubernetes Secret。然后,您可以在服务部署的环境变量中引用秘密,例如:

name: AWS_ACCESS_KEY
valueFrom:
  secretKeyRef:
    name: my-aws-secret
    key: access-key    

在 EKS 中,所有 pods 都可以从节点访问角色。这当然不适合生产环境,因为您很可能希望对特定 pod 设置更受限制的权限集。您可以查看 kube2iam 作为一个项目,您可以使用它来限制单个 pod 的 AWS 功能。