kubernetes: разрешения AWS ECR по умолчанию

Согласно официальной документации kubernetes, для того, чтобы ваши узлы чтобы получить доступ к 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": [
    "*"
  ]
}

Однако я только что создал кластер на AWS, используя kops, и мои узлы уже имеют эти разрешения, и я не делал никаких дополнительных действий по настройке.

Это нормально?

$ 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"}

person pkaramol    schedule 08.01.2018    source источник


Ответы (1)


Согласно документации kops, эти роли созданы для вас и назначены нужным экземплярам ec2:

Для кластера создаются две роли IAM: одна для мастеров и одна для узлов.

Флаг Strict IAM по умолчанию не предоставляет узлам доступ к реестру контейнеров AWS EC2 (ECR), как видно из приведенных выше примеров политик. Чтобы предоставить доступ к ECR, обновите спецификацию кластера следующим образом, а затем выполните обновление кластера:

iam:
  allowContainerRegistry: true
  legacy: false

Насколько я понимаю, если вы добавите allowContainerRegistry: true, kops добавит эти разрешения к автоматически созданной роли IAM.

person Jose Armesto    schedule 08.01.2018