Atakujący mógłby przesłać obraz Dockera zawierający złośliwy kod do repozytorium ECR i użyć go do utrzymania trwałości w docelowym koncie AWS. Następnie atakujący mógłby w dyskretny sposób wdrożyć złośliwy obraz do różnych usług w koncie, takich jak Amazon ECS lub EKS.
Polityka Repozytorium
Dodaj politykę do pojedynczego repozytorium, udzielając sobie (lub wszystkim) dostępu do repozytorium:
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"]}]}
Należy pamiętać, że ECR wymaga, aby użytkownicy mieli uprawnienia do wywoływania API ecr:GetAuthorizationToken za pomocą polityki IAM zanim będą mogli się uwierzytelnić w rejestrze i przesyłać lub pobierać obrazy z dowolnego repozytorium Amazon ECR.
Polityka rejestru i replikacja międzykontowa
Możliwe jest automatyczne replikowanie rejestru w zewnętrznym koncie, konfigurując replikację międzykontową, gdzie musisz wskazać zewnętrzne konto, do którego chcesz replikować rejestr.
Po pierwsze, musisz nadać zewnętrznemu kontu dostęp do rejestru za pomocą polityki rejestru jak poniżej:
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/*"}
Następnie zastosuj konfigurację replikacji:
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"}]}]}