Um atacante poderia fazer upload de uma imagem Docker contendo código malicioso para um repositório ECR e usá-lo para manter persistência na conta AWS de destino. O atacante poderia então implantar a imagem maliciosa em vários serviços dentro da conta, como Amazon ECS ou EKS, de maneira furtiva.
Política do Repositório
Adicione uma política a um único repositório concedendo a si mesmo (ou a todos) acesso a um repositório:
awsecrset-repository-policy \--repository-name cluster-autoscaler \--policy-text file:///tmp/my-policy.json# With a .json such as{"Version":"2008-10-17","Statement": [{"Sid":"allow public pull","Effect":"Allow","Principal":"*","Action": ["ecr:BatchCheckLayerAvailability","ecr:BatchGetImage","ecr:GetDownloadUrlForLayer"]}]}
Note que o ECR requer que os usuários tenham permissão para fazer chamadas para a API ecr:GetAuthorizationToken através de uma política IAM antes de poderem autenticar em um registro e fazer push ou pull de imagens de qualquer repositório Amazon ECR.
Política de Registro & Replicação entre Contas
É possível replicar automaticamente um registro em uma conta externa configurando a replicação entre contas, onde você precisa indicar a conta externa para a qual deseja replicar o registro.
Primeiramente, você precisa conceder acesso da conta externa sobre o registro com uma política de registro como:
awsecrput-registry-policy--policy-textfile://my-policy.json# With a .json like:{"Sid":"asdasd","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::947247140022:root"},"Action": ["ecr:CreateRepository","ecr:ReplicateImage"],"Resource":"arn:aws:ecr:eu-central-1:947247140022:repository/*"}
Em seguida, aplique a configuração de replicação:
awsecrput-replication-configuration \--replication-configuration file://replication-settings.json \--region us-west-2# Having the .json a content such as:{"rules": [{"destinations": [{"region":"destination_region","registryId":"destination_accountId"}],"repositoryFilters": [{"filter":"repository_prefix_name","filterType":"PREFIX_MATCH"}]}]}