AWS 및 AWS Config를 사용하여 Amazon ECR 리포지토리에서 와일드카드 권한을 모니터링합니다. CloudFormation - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS 및 AWS Config를 사용하여 Amazon ECR 리포지토리에서 와일드카드 권한을 모니터링합니다. CloudFormation

작성자: Vikrant Telkar(AWS), Sajid Momin(AWS), 및 Wassim Benhallam(AWS)

환경: 프로덕션

기술: DevOps; 컨테이너 및 마이크로서비스

AWS 서비스: AWS CloudFormation, AWS Config, 아마존 ECR, 아마존 SNS, AWS Lambda

요약

Amazon Web Services(AWS) Cloud에서 Amazon Elastic Container Registry(Amazon ECR)는 AWS Identity 및 Access Management(IAM)를 사용하여 리소스 기반 권한이 있는 프라이빗 리포지토리를 지원하는 관리형 컨테이너 이미지 레지스트리 서비스입니다.

IAM은 리소스 및 작업 속성 모두에서 "*" 와일드카드를 지원하므로 이로 인해 일치하는 여러 항목을 자동으로 더 쉽게 선택할 수 있습니다. 테스트 환경에서는 인증된 모든 AWS 사용자가 ecr:* 와일드카드 권한을 사용하여 리포지토리 정책 설명의 주요 요소에서 Amazon ECR 리포지토리에 액세스하도록 허용할 수 있습니다. ecr:* 와일드카드 권한은 프로덕션 데이터에 액세스할 수 없는 개발 계정에서 개발하고 테스트할 때 유용할 수 있습니다.

하지만 ecr:* 와일드카드 권한은 심각한 보안 취약성을 유발할 수 있으므로 프로덕션 환경에서 사용하지 않도록 해야 합니다. 이 패턴의 접근 방식을 사용하면 리포지토리 정책 설명에 ecr:* 와일드카드 권한이 포함된 Amazon ECR 리포지토리를 식별하는 데 도움을 줍니다.   패턴은 AWS Config에서 사용자 지정 규칙을 생성하기 위한 단계와 AWS CloudFormation 템플릿을 제공합니다. 그러면 AWS Lambda 함수가 ecr:* 와일드카드 권한에 대한 Amazon ECR 리포지토리 정책 설명을 모니터링합니다. 규정을 준수하지 않는 리포지토리 정책 설명을 발견하면 Lambda는 Amazon에 이벤트를 보내도록 AWS Config에 EventBridge 알리고 Amazon Simple Notification Service ( EventBridge Amazon SNS) 주제를 시작합니다. SNS 주제는 비준수 리포지토리 정책 설명에 대해 이메일로 알려줍니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정.

  • AWS Command Line Interface(AWS CLI), 설치 및 구성됨. 이에 대한 자세한 내용은 AWS CLI 설명서의 AWS CLI 설치, 업데이트 및 제거를 참조하세요.

  • 정책 설명이 첨부되어 있는 기존 Amazon ECR 리포지토리가 테스트 환경에 설치 및 구성됩니다. 이에 대한 자세한 내용은 Amazon ECR 설명서의 프라이빗 리포지토리 생성리포지토리 정책 설명 설정을 참조하세요.

  • AWS Config, 원하는 AWS 리전에 구성됩니다. 이에 대한 자세한 내용은 AWS Config 설명서의 AWS Config 시작하기를 참조하세요.

  • aws-config-cloudformation.template 파일(첨부), 로컬 시스템에 다운로드됩니다.

 

제한 사항

  • 이 패턴의 솔루션은 리전의 솔루션이며 리소스는 동일한 리전에 생성되어야 합니다. 

아키텍처

다음 다이어그램은 AWS Config가 Amazon ECR 리포지토리 정책 설명을 평가하는 방법을 보여줍니다. 

AWS 클라우드 architecture diagram showing interaction between services for event processing and notification.

이 다이어그램은 다음 워크플로우를 보여줍니다.

  1. AWS Config는 사용자 지정 규칙을 시작합니다. 

  2. 사용자 지정 규칙은 Lambda 함수를 호출하여 Amazon ECR 리포지토리 정책 설명의 규정 준수를 평가합니다. 그런 다음 Lambda 함수는 규정을 준수하지 않는 리포지토리 정책 설명을 식별합니다.

  3. Lambda 함수는 규정 미준수 상태를 AWS Config에 전송합니다.

  4. AWS Config는 에 이벤트를 전송합니다. EventBridge

  5. EventBridge 비준수 알림을 SNS 주제에 게시합니다.

  6. Amazon SNS에서는 귀하 또는 승인된 사용자에게 이메일 알림을 전송합니다.

자동화 및 규모 조정

이 패턴의 솔루션은 Amazon ECR 리포지토리 정책 설명을 얼마든지 모니터링할 수 있지만 평가하려는 모든 리소스는 동일한 리전에서 생성되어야 합니다.

도구

  • AWS CloudFormation — AWS는 AWS CloudFormation 리소스를 모델링 및 설정하고, 빠르고 일관되게 프로비저닝하고, 수명 주기 전반에 걸쳐 관리할 수 있도록 지원합니다. 템플릿을 사용하여 리소스와 해당 종속성을 설명하고 리소스를 개별적으로 관리하는 대신 스택으로 함께 시작 및 구성할 수 있습니다. 여러 AWS 계정 및 AWS 리전에서 스택을 관리하고 프로비저닝할 수 있습니다.

  • AWS Config - AWS Config는 AWS 계정의 AWS 리소스 구성에 대한 세부 정보 보기를 제공합니다. 이러한 보기에는 리소스 간에 어떤 관계가 있는지와 리소스가 과거에 어떻게 구성되었는지도 포함되므로, 시간이 지나면서 구성과 관계가 어떻게 변하는지 확인할 수 있습니다.

  • Amazon ECR  Amazon Elastic Container Registry(Amazon ECR)는 안전하고 확장 가능하고 신뢰할 수 있는 관리형 컨테이너 이미지 레지스트리 서비스입니다. Amazon ECR은 IAM을 사용하여 리소스 기반 권한을 가진 프라이빗 리포지토리를 지원합니다.                                

  • Amazon EventBridge — EventBridge Amazon은 애플리케이션을 다양한 소스의 데이터와 연결하는 데 사용할 수 있는 서버리스 이벤트 버스 서비스입니다. EventBridge 애플리케이션, 서비스형 소프트웨어 (SaaS) 애플리케이션 및 AWS 서비스의 실시간 데이터 스트림을 AWS Lambda 함수, API 대상을 사용하는 HTTP 호출 엔드포인트 또는 다른 계정의 이벤트 버스와 같은 대상으로 전달합니다.

  • AWS Lambda-AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 규모를 조정합니다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않습니다.

  • Amazon SNS – Amazon Simple Notification Service(SNS)는 웹 서버와 이메일 주소를 포함하여 게시자와 클라이언트 간에 메시지를 전달 또는 전송하는 것을 조정하고 관리합니다. 구독자는 구독하는 주제에 게시된 모든 메시지를 수신하며 주제에 대한 모든 구독자는 동일한 메시지를 수신합니다. 

코드

이 패턴의 코드는 aws-config-cloudformation.template 파일(첨부)에서 확인할 수 있습니다.

에픽

작업설명필요한 기술
AWS CloudFormation 스택을 생성합니다.

AWS CLI에서 다음 명령을 실행하여 AWS CloudFormation 스택을 생성합니다.

$ aws cloudformation create-stack --stack-name=AWSConfigECR \ --template-body file://aws-config-cloudformation.template \ --parameters ParameterKey=<email>,ParameterValue=<myemail@example.com> \ --capabilities CAPABILITY_NAMED_IAM
AWS DevOps
작업설명필요한 기술
AWS Config 사용자 지정 규칙을 테스트합니다.
  1. AWS Management Console에 로그인하여 AWS Config 콘솔을 연 다음 리소스를 선택합니다.

  2. 리소스 인벤토리 페이지에서 리소스 카테고리, 리소스 유형, 규정 준수 상태별로 필터링할 수 있습니다.

  3. ecr:*를 포함하는 Amazon ECR리포지토리는 NON-COMPLIANT?이고 ecr:*을(를) 포함하지 않는 Amazon ECR 리포지토리는 COMPLIANT입니다.

  4. Amazon ECR 리포지토리에 비준수 정책 설명이 포함된 경우 SNS 주제를 구독한 이메일 주소로 알림이 전송됩니다.

AWS DevOps

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.