尝试在AWS上设置kube群集时,我们希望能够将IAM角色与某些容器相关联,因此可以使用允许您执行此操作的众多工具之一,例如kube2iam。通过基于部署中的注释代理假定角色,所有工具似乎都以相同的方式工作。这是否允许容器通过仅更改注释从任何其他容器承担角色来允许角色升级?
来自kube2iam自述文件:
问题在于,在基于多租户容器的世界中,多个容器将共享底层节点。给定容器将共享相同的底层节点,通过IAM角色提供对AWS资源的访问意味着需要创建IAM角色,该角色是所有IAM角色的联合。从安全角度来看,这是不可接受的。
根据我的理解,如果引入恶意pod,则仍然存在所描述的问题。目前人们如何解决这个问题?这是我应该担心的事情吗?
答案 0 :(得分:2)
您可以按命名空间限制消耗的角色。
apiVersion: v1
kind: Namespace
metadata:
annotations:
iam.amazonaws.com/allowed-roles: |
["role-arn"]
name: default
启用k8s RBAC后,您的部署不应具有更新命名空间注释的权限。