Работа с Amazon Elastic Container Registry (ECR)
Чтобы узлы кластера имели доступ к частным репозиториям Amazon ECR:
-
Определите права на чтение образов в политиках репозитория. Важно, чтобы в
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" ] } ] }
-
Настройте эту политику в AWS Console: Amazon ECR → Private registry → Repositories → требуемый репозиторий → Permissions.
-
Добавьте
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