PaaS/CI CD
Gitlab-CI) AWS CLI 사용을 위한 인증 방법
armyost
2024. 3. 11. 22:33
728x90
ECR에 이미지를 Push하거나 할때 AWS Configure가 미리 선행되어 있어야 한다. Gitlab CI는 관련한 Action을 이미 정형화 해서 서비스 제공을 하는데...
1. AWS IAM에서 사용자를 추가한다. 그리고 Access Token을 발행한다.
2. 위 사용자에 Policy를 부여한다.
해당 Poilcy는 아래의 JSON과 같이 정의한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:CompleteLayerUpload",
"ecr:GetAuthorizationToken",
"ecr:UploadLayerPart",
"ecr:InitiateLayerUpload",
"ecr:BatchCheckLayerAvailability",
"ecr:PutImage"
],
"Resource": "*"
}
]
}
3. 해당 Repository의 Settings - CI/CD - Variables에 아래의 내용을 등록한다.
AWS_ACCESS_KEY_ID | Your Access key ID. |
AWS_SECRET_ACCESS_KEY | Your secret access key. |
AWS_DEFAULT_REGION | Your region code |
4. 그 다음 gitlab-ci.yml에서
아래와 같이 Gitlab에서 이 기능을 위해 제공하는 Image만 잘 사용하면 된다.
build-push-docker:
stage: build
image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
script:
- aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $DOCKER_REGISTRY
- docker push $DOCKER_REGISTRY/$APP_NAME:$CI_PIPELINE_ID