Want to allow secondary account to Push or Pull images in ECR image repository? We can help you.
We can push or pull images to or from an Amazon ECR repository in another account.
Here, at Bobcares, we assist our customers with several AWS queries as part of our AWS Support Services.
Today, let us see how we can allow the same.
Allow secondary account to Push or Pull images in ECR image repository
In order to do so, thew are two steps that we need to follow. Here, our Support Techs discuss the same.
-
Create a policy that allows the secondary account to perform API calls against the image repository
1. Initially, we open the Amazon ECR console for the primary account.
2. Then for the repository we want to modify, we select the hyperlinked Repository name.
3. After that, we go to Amazon ECR > Repositories > Permissions.
4. To add a repository policy for the secondary account from primary account, we select, Edit policy JSON.
Here, we can enter the policy into the code editor, and then Save.
Fo example, the below repository policy allows a specific account to push and pull images:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPushPull",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account-id:root"
},
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"ecr:BatchCheckLayerAvailability",
"ecr:PutImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload"
]
}
]
}
5. Later, in the task definition, we set the image that we want to use with Amazon ECS.
Now, the image is hosted in the primary account’s Amazon ECR repository.
-
Generate a temporary Docker authentication token
We need to do this from the secondary account and perform a test push or pull
In addition, we need to make sure that we use the most recent AWS CLI version.
Unless the secondary account receives a temporary authentication toket, it can’t perform policy actions on the repository.
The token allows it to use Docker push and pull commands against the primary account’s repository.
To troubleshoot issues with Docker, we enable debug mode on the Docker daemon.
1. To generate a Docker authentication token for an account, we run the following command.
We need to replace the aws_account_id with the primary account ID, and replace regionID with the Region ID.
Using the AWS CLI:
aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.regionID.amazonaws.com
Using AWS Tools for Windows PowerShell:
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.regionID.amazonaws.com
aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-south-1.amazonaws.com WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
2. Finally, we perform a test image pull or push to the primary account.
[Need help with the procedures? We’d be happy to assist you]
Conclusion
In short, we saw how our Support Techs go about allowing secondary account to Push or Pull images.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
0 Comments