Пользователям Amazon ECR требуются разрешения для вызова ecr: GetAuthorizationToken, прежде чем они смогут аутентифицироваться в реестре и выдвигать или извлекать любые изображения из любого хранилища Amazon ECR.Amazon ECR предоставляет несколько управляемых политик для управления доступом пользователей на разных уровнях;для получения дополнительной информации см. ecr_managed_policies
AmazonEC2ContainerRegistryPowerUser
Эта управляемая политика обеспечивает доступ опытного пользователя к Amazon ECR, что позволяет выполнять чтение и запись.доступ к репозиториям, но не позволяет пользователям удалять репозитории или изменять применяемые к ним документы политики.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:GetRepositoryPolicy",
"ecr:DescribeRepositories",
"ecr:ListImages",
"ecr:DescribeImages",
"ecr:BatchGetImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload",
"ecr:PutImage"
],
"Resource": "*"
}]
}
Таким образом, вместо использования ~ / .docker / config.json для этого назначьте вышеуказанную роль политикик вашей задаче ECS , и ваша служба док-контейнеров сможет вытолкнуть извлекаемое изображение из ECR.
Роли IAM для задач
С помощью ролей IAM для задач Amazon ECS вы можете указать роль IAM, которая может использоваться контейнерами в задаче.Приложения должны подписывать свои запросы API AWS с помощью учетных данных AWS, и эта функция предоставляет стратегию управления учетными данными для использования вашими приложениями, подобно тому, как профили экземпляров Amazon EC2 предоставляют учетные данные для экземпляров EC2.Вместо создания и распространения учетных данных AWS среди контейнеров или использования роли экземпляра EC2 вы можете связать роль IAM с определением задачи ECS или операцией API RunTask.Приложения в контейнерах задачи могут затем использовать AWS SDK или CLI для отправки запросов API авторизованным сервисам AWS.
Преимущества использования ролей IAM для задач
Изоляция учетных данных : контейнер может получать учетные данные только для роли IAM, определенной в определении задачи, которой он принадлежит;контейнер никогда не имеет доступа к учетным данным, предназначенным для другого контейнера, принадлежащего другой задаче.
Авторизация : неавторизованные контейнеры не могут получить доступ к учетным данным роли IAM, определенным для других задач.
Auditability : Доступ и регистрация событий доступны через CloudTrail для обеспечения ретроспективного аудита.Учетные данные задачи имеют контекст taskArn, который присоединен к сеансу, поэтому журналы CloudTrail показывают, какая задача использует какую роль.
Но вам нужно выполнить эту команду, как указано выше, чтобы получить токен аутентификации.
eval $(aws ecr get-login --no-include-email)
Вы получите ответ, подобный
Вход в систему выполнен успешно
Теперь вы нажимаете на push-изображение, как только получаете токен аутентификации из ECR.
docker push xxxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/nodejs:test
Автоматическая регистрация ECR