Работа с Amazon Elastic Container Registry (ECR)

Чтобы узлы кластера имели доступ к частным репозиториям Amazon ECR:

  1. Определите права на чтение образов в политиках репозитория. Важно, чтобы в Principal был указан существующий IAM-Role (IAM-роль), привязанная к узлам Deckhouse Kubernetes Platform (DKP).

    Пример политики:

     {
       "Version": "2012-10-17",
       "Statement": [
         {
           "Sid": "RepositoryRead",
           "Effect": "Allow",
           "Principal": {
             "AWS": "arn:aws:iam::xxx:role/xxx-node"
           },
           "Action": [
             "ecr:BatchCheckLayerAvailability",
             "ecr:BatchGetImage",
             "ecr:DescribeImages",
             "ecr:DescribeRepositories",
             "ecr:GetAuthorizationToken",
             "ecr:GetDownloadUrlForLayer",
             "ecr:ListImages",
             "ecr:ListTagsForResource"
           ]
         }
       ]
     }
    
  2. Настройте эту политику в AWS Console: Amazon ECR → Private registry → Repositories → требуемый репозиторий → Permissions.

  3. Добавьте ecr:GetAuthorizationToken в additionalRolePolicies в AWSClusterConfiguration, чтобы узлы могли автоматически получать токен доступа к образам:

    additionalRolePolicies:
      - ecr:GetAuthorizationToken
      - ecr:BatchGetImage
      - ecr:DescribeRepositories
    

Параметр additionalRolePolicies позволяет расширить набор IAM-действий, назначаемых EC2-инстансам, управляемым DKP. Это особенно полезно, если требуется доступ к:

  • Amazon ECR;
  • Amazon S3;
  • другим сервисам AWS, требующим специфических прав.

Если параметр не задан, IAM-роли будут содержать только базовые действия:

ec2:DescribeTags
ec2:DescribeInstances