Я хочу ограничить экземпляр EC2 репозиториями реестра контейнеров EC2 (ECR) с тем же пространство имен.
Роль экземпляра IAM должна только извлекать все репозитории под AWS_ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/test-namespace/...
. Ничего больше.
Я попробовал следующую политику IAM для роли экземпляра EC2:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1490955256000",
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:GetRepositoryPolicy",
"ecr:DescribeRepositories",
"ecr:ListImages",
"ecr:DescribeImages",
"ecr:BatchGetImage"
],
"Resource": [
"arn:aws:ecr:REGION:AWS_ACCOUNT_ID:repository/test-namespace/*"
]
}
]
}
Но мне удалось docker pull
изображения из всех репозиториев этого экземпляра. Например. AWS_ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/test-repo:latest
Я не вижу, что я сделал не так. Это не может быть ресурс- уровень разрешений. Их поддерживают все вышеперечисленные действия, кроме ecr:GetAuthorizationToken
.
Поскольку у нас много репозиториев, я не хочу устанавливать права доступа к ресурсам для каждого репозитория.