当我想限制谁可以使用不同图像启动作业时,通过 IAM 策略文档管理 EKS 节点对 ECR 的访问的正确方法是什么?
在一个简化的示例中,我有用户 A 和 B 以及 ECR 存储库 C 和 D。用户 A 可以访问这两个存储库,而用户 B 只能访问 C。我希望两个用户都能使用同一个 EKS 集群(和同一组节点),并且 A 应该能够使用来自 C 或 D 的映像在 EKS 上运行作业,而 B 应该只能使用来自 C 而不是 D 的映像来运行作业。
在我当前的设置中,EKS 集群中的所有 EC2 节点都使用一个通用 IAM 角色,该角色附加了 AmazonEC2ContainerRegistryReadOnly,以便它可以从所有 ECR 存储库中读取。存储库 C 为用户 A 和 EC2 节点角色提供读取访问权限,存储库 D 为用户 A 和 B 以及 EC2 节点角色提供读取访问权限。但是,这意味着用户 A 和用户 B 都可以启动从存储库 C 或 D 读取的作业,这不是我想要的(用户 B 不应该能够启动从存储库 D 读取的作业)。
我理解一种可能性是对节点集进行分区并为它们分配不同的 EC2 IAM 实例配置文件并设置 ECR IAM 策略文档,以便第一组节点可以访问存储库 C 和 D,而第二组节点只能访问 C,但有没有其他方法可以避免为每组唯一的用户权限设置一组节点?