【问题标题】:kubernetes: default AWS ECR permissionskubernetes:默认 AWS ECR 权限
【发布时间】:2018-06-17 15:19:53
【问题描述】:

根据官方kubernetes documentation,为了让您的节点能够访问AWS ECR,需要将以下标志添加到~/.kube/config

iam:
  allowContainerRegistry: true
  legacy: false

然后,更新集群后,应该将以下权限添加到您的 ec2 实例:

{
  "Sid": "kopsK8sECR",
  "Effect": "Allow",
  "Action": [
    "ecr:BatchCheckLayerAvailability",
    "ecr:BatchGetImage",
    "ecr:DescribeRepositories",
    "ecr:GetAuthorizationToken",
    "ecr:GetDownloadUrlForLayer",
    "ecr:GetRepositoryPolicy",
    "ecr:ListImages"
  ],
  "Resource": [
    "*"
  ]
}

但是,我刚刚使用 kops 在 AWS 上创建了一个集群,并且我的节点已经拥有这些权限,而无需我做任何额外的配置。

这正常吗?

$ kops version
Version 1.8.0 (git-5099bc5)

$ kubectl version    
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.1", GitCommit:"f38e43b221d08850172a9a4ea785a86a3ffa3b3a", GitTreeState:"clean", BuildDate:"2017-10-11T23:27:35Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.4", GitCommit:"9befc2b8928a9426501d3bf62f72849d5cbcd5a3", GitTreeState:"clean", BuildDate:"2017-11-20T05:17:43Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

【问题讨论】:

    标签: amazon-web-services kubernetes kubernetes-security aws-ecs


    【解决方案1】:

    According to the kops documentation,这些角色已为您创建并分配给正确的 ec2 实例:

    为集群创建了两个 IAM 角色:一个用于主节点,一个用于节点。

    默认情况下,严格 IAM 标志不会授予节点访问 AWS EC2 容器注册表 (ECR) 的权限,如上述示例策略文档所示。要授予对 ECR 的访问权限,请使用以下内容更新您的集群规范,然后执行集群更新:

    iam:
      allowContainerRegistry: true
      legacy: false
    

    据我了解,如果您添加 allowContainerRegistry: truekops 会将这些权限添加到自动创建的 IAM 角色中。

    【讨论】:

      猜你喜欢
      • 2020-11-03
      • 2018-06-19
      • 2012-02-24
      • 2023-03-06
      • 2019-07-19
      • 1970-01-01
      • 2016-11-29
      • 2014-01-26
      • 2019-10-25
      相关资源
      最近更新 更多