Amazon ECS에서 비-AWS 컨테이너 이미지 사용
Amazon ECS에서 비-AWS 컨테이너 이미지 사용
프라이빗 레지스트리를 사용해 자격 증명을 AWS Secrets Manager에 저장하고, 태스크 정의에서 그 자격 증명을 참조해요. 이렇게 하면 태스크 정의에서 인증이 필요한 AWS 외부의 프라이빗 레지스트리에 있는 컨테이너 이미지를 참조할 수 있어요. 이 기능은 Fargate, Amazon EC2 인스턴스, Amazon ECS Anywhere를 사용하는 외부 인스턴스에서 호스팅되는 태스크에서 지원돼요. 중요: 태스크 정의가 Amazon ECR에 저장된 이미지를 참조한다면 이 주제는 해당되지 않아요. 자세한 내용은 Amazon Elastic Container Registry User Guide의 Using Amazon ECR Images with Amazon ECS를 참고하세요.
출처: 문서
본문
- Amazon EC2 인스턴스에서 호스팅되는 태스크의 경우 이 기능은 컨테이너 에이전트 버전 1.19.0 이상이 필요해요. 하지만 최신 컨테이너 에이전트 버전을 사용하는 것을 권장해요. 에이전트 버전을 확인하고 최신 버전으로 업데이트하는 방법은
Updating the Amazon ECS container agent를 참고하세요. - Fargate에서 호스팅되는 태스크의 경우 이 기능은 플랫폼 버전 1.2.0 이상이 필요해요. 자세한 내용은
Fargate platform versions for Amazon ECS를 참고하세요.
컨테이너 정의 내에서 만든 시크릿의 세부 정보와 함께 repositoryCredentials 객체를 지정해요. 참조된 시크릿은 이를 사용하는 태스크와 다른 AWS 리전 또는 다른 계정에서 온 것일 수 있어요.
참고: Amazon ECS API, AWS CLI 또는 AWS SDK를 사용할 때, 시크릿이 실행하는 태스크와 같은 AWS 리전에 있다면 시크릿의 전체 ARN 또는 이름을 사용할 수 있어요. 시크릿이 다른 계정에 있다면 시크릿의 전체 ARN을 지정해야 해요. AWS Management Console을 사용할 때는 항상 시크릿의 전체 ARN을 지정해야 해요.
다음은 필요한 파라미터를 보여 주는 태스크 정의 스니펫이에요. 다음 파라미터를 바꾸세요:
private-repo를 프라이빗 저장소 호스트 이름으로private-image를 이미지 이름으로arn:aws:secretsmanager:region:aws_account_id:secret:secret_name을 시크릿 Amazon Resource Name (ARN)으로
"containerDefinitions": [
{
"image": "private-repo/private-image",
"repositoryCredentials": {
"credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name"
}
}
]
참고: 프라이빗 레지스트리 인증을 활성화하는 또 다른 방법은 Amazon ECS 컨테이너 에이전트 환경 변수를 사용해 프라이빗 레지스트리에 인증하는 것이에요. 이 방법은 Amazon EC2 인스턴스에서 호스팅되는 태스크에서만 지원돼요. 자세한 내용은 Configuring Amazon ECS container instances for private Docker images를 참고하세요.
프라이빗 레지스트리를 사용하려면
태스크 정의에 태스크 실행 역할이 있어야 해요. 이 역할은 컨테이너 에이전트가 컨테이너 이미지를 pull 할 수 있게 해 줘요. 자세한 내용은 Amazon ECS task execution IAM role을 참고하세요.
프라이빗 레지스트리 인증을 사용하면 Amazon ECS 태스크가 인증 자격 증명이 필요한 AWS 외부의 프라이빗 레지스트리(Docker Hub, Quay.io 또는 자체 프라이빗 레지스트리 등)에서 컨테이너 이미지를 pull 할 수 있어요. 이 기능은 레지스트리 자격 증명을 안전하게 저장하기 위해 Secrets Manager를 사용하며, 태스크 정의에서 repositoryCredentials 파라미터로 그 자격 증명을 참조해요.