首页 > 解决方案 > 允许 Kubernetes 应用程序访问其他 AWS 资源?

问题描述

我想使用 kubernetes 在 AWS EKS 中部署应用程序。我的应用程序需要访问 SQS 和 AWS S3。我不确定如何允许 kubernetes 应用程序访问 SQS 和 S3。我研究了 RBAC,但我猜 RBAC 只提供管理集群、命名空间或 Pod 的访问权限。

我正在尝试将访问密钥和密钥作为秘密传递给环境变量并允许权限。但我认为这不是一个好主意。

有没有其他方法可以创建 IAM 角色并将角色传递给运行应用程序的 pod?如果我尝试在工作节点角色中提供权限,那么共享该节点的所有 pod 都将获得该权限。我需要特定 pod 或容器之类的东西才能获得许可

我还尝试创建 RBAC,其中将角色分配给组,并将组绑定到命名空间。

apiVersion: v1
kind: ConfigMap
metadata:
  name: aws-auth
  namespace: default
data:
  mapRoles: |
    - rolearn: arn:aws:iam::xxxxxxxxx:role/EksWorkers-NodeInstanceRole-xxxxx
      username: system:node:{{EC2PrivateDNSName}}
      groups:
        - system:bootstrappers
        - system:nodes
    - rolearn: arn:aws:iam::xxxxxxxxx:role/iam-role-for-application
      groups:
        - app-group

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: admins
  namespace: default
subjects:
- kind: Group
  name: app-group
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: admin
  apiGroup: rbac.authorization.k8s.io

标签: kubernetesamazon-iamamazon-eks

解决方案



推荐阅读