SEC06-BP02 강화 이미지에서 컴퓨팅 프로비저닝 - AWS Well-Architected 프레임워크

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

SEC06-BP02 강화 이미지에서 컴퓨팅 프로비저닝

강화된 이미지에서 배포하여 런타임 환경에 의도치 않게 액세스하는 상황을 줄이세요. 신뢰할 수 있는 레지스트리에서 컨테이너 이미지 및 애플리케이션 라이브러리와 같은 런타임 종속성만 획득하고 해당 서명을 확인합니다. 자체 프라이빗 레지스트리를 생성하여 빌드 및 배포 프로세스에 사용할 신뢰할 수 있는 이미지와 라이브러리를 저장하세요.

원하는 성과: 컴퓨팅 리소스가 강화된 기준 이미지에서 프로비저닝됩니다. 신뢰할 수 있는 레지스트리에서만 컨테이너 이미지 및 애플리케이션 라이브러리와 같은 외부 종속성을 검색하고 해당 서명을 확인합니다. 이러한 정보는 빌드 및 배포 프로세스에서 참조할 수 있도록 프라이빗 레지스트리에 저장됩니다. 이미지와 종속성을 정기적으로 스캔하고 업데이트하여 새로 발견된 취약성으로부터 보호합니다.

일반적인 안티 패턴:

  • 신뢰할 수 있는 레지스트리에서 이미지와 라이브러리를 가져오지만, 사용하기 전에 서명을 확인하거나 취약성 스캔을 수행하지는 않습니다.

  • 이미지를 강화하지만, 정기적으로 새로운 취약성을 테스트하거나 최신 버전으로 업데이트하지는 않습니다.

  • 이미지의 예상 수명 주기 동안 필요하지 않은 소프트웨어 패키지를 설치하거나 제거하지 않습니다.

  • 프로덕션 컴퓨팅 리소스를 최신 상태로 유지하는 데 패치 작업에만 의존합니다. 패치만 적용하면 시간이 지나면서 컴퓨팅 리소스가 강화된 표준에서 벗어날 수 있습니다. 또한, 패치를 적용해도 보안 이벤트 중에 위협 행위자가 설치했을 수 있는 맬웨어를 제거하지 못할 수 있습니다.

이 모범 사례 확립의 이점: 이미지를 강화하면 런타임 환경에서 승인되지 않은 사용자나 서비스에 의도하지 않은 액세스를 허용할 수 있는 경로의 수를 줄일 수 있습니다. 또한, 의도하지 않은 액세스가 발생할 경우 영향을 받는 범위를 줄일 수 있습니다.

이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 높음

구현 가이드

시스템을 강화하려면 최신 버전의 운영 체제, 컨테이너 이미지, 애플리케이션 라이브러리부터 시작하세요. 알려진 문제에 패치를 적용합니다. 불필요한 애플리케이션, 서비스, 디바이스 드라이버, 기본 사용자 및 기타 자격 증명을 제거하여 시스템을 최소화합니다. 워크로드에 필요한 리소스와 기능만 갖춘 환경을 만들기 위해 포트를 비활성화하는 등 필요한 기타 조치를 수행합니다. 이 기준에서 워크로드 모니터링 또는 취약성 관리와 같은 목적에 필요한 소프트웨어, 에이전트 또는 기타 프로세스를 설치할 수 있습니다.

Center for Internet Security(CIS) 및 Defense Information Systems Agency()DISA Security Technical Implementation Guides(STIGs)와 같이 신뢰할 수 있는 소스가 제공하는 지침을 사용하여 시스템 강화의 부담을 줄일 수 있습니다. AWS 또는 APN 파트너가 게시한 Amazon Machine Image(AMI)로 시작하고 EC2 Image Builder를 사용하여AWS CIS 및 STIG 제어의 적절한 조합에 따라 구성을 자동화하는 것이 좋습니다.

CIS 또는 DISA STIG 권장 사항을 적용하는 강화 이미지 및 EC2 Image Builder 레시피를 사용할 수 있지만 구성으로 인해 소프트웨어가 성공적으로 실행되지 못할 수 있습니다. 이 상황에서는 고정되지 않은 기본 이미지에서 시작하여 소프트웨어를 설치한 다음 점진적으로 CIS 제어를 적용하여 영향을 테스트할 수 있습니다. 소프트웨어 실행을 방해하는 CIS 제어의 경우 DISA 대신 에서 더 세분화된 강화 권장 사항을 구현할 수 있는지 테스트합니다. 성공적으로 적용할 수 있는 다양한 CIS 제어 및 DISA STIG 구성을 추적합니다. 이를 사용하여 이에 따라 EC2 Image Builder에서 이미지 강화 레시피를 정의할 수 있습니다.

컨테이너화된 워크로드의 경우 Amazon Elastic Container Registry(ECR) 퍼블릭 리포지토리 에서 Docker의 강화 이미지를 사용할 수 있습니다. EC2 Image Builder를 사용하여 와 함께 컨테이너 이미지를 강화할 수 있습니다AMIs.

운영 체제 및 컨테이너 이미지와 마찬가지로 pip, npm, Maven 및 와 같은 도구를 통해 퍼블릭 리포지토리에서 코드 패키지(또는 라이브러리)를 가져올 수 있습니다 NuGet. AWS CodeArtifact 내부와 같은 프라이빗 리포지토리를 신뢰할 수 있는 퍼블릭 리포지토리와 통합하여 코드 패키지를 관리하는 것이 좋습니다. 이 통합을 통해 패키지를 검색, 저장 및 보관할 수 up-to-date 있습니다. 그런 다음 애플리케이션 빌드 프로세스는 소프트웨어 구성 분석(SCA), 정적 애플리케이션 보안 테스트(), 동적 애플리케이션 보안 테스트(SAST)와 같은 기술을 사용하여 애플리케이션과 함께 이러한 패키지의 최신 버전을 획득하고 테스트할 수 있습니다DAST.

를 사용하는 서버리스 워크로드의 경우 Lambda 계층을 사용하여 패키지 종속성 관리를 AWS Lambda간소화합니다. https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html Lambda 계층을 사용하여 여러 기능에서 공유되는 표준 종속성 집합을 독립형 아카이브로 구성합니다. 자체 빌드 프로세스를 통해 계층을 생성하고 유지 관리하여 함수가 를 유지할 수 있는 중앙 방법을 제공할 수 있습니다 up-to-date.

구현 단계

  • 운영 체제를 강화합니다. 신뢰할 수 있는 소스의 기본 이미지를 강화 를 구축하기 위한 기반으로 사용합니다AMIs. EC2 Image Builder를 사용하면 이미지에 설치된 소프트웨어를 사용자 지정할 수 있습니다.

  • 컨테이너식 리소스를 강화합니다. 보안 모범 사례에 맞춰 컨테이너식 리소스를 구성합니다. 컨테이너를 사용할 때는 빌드 파이프라인에서 ECR 이미지 스캔을 구현하고 컨테이너CVEs에서 찾을 이미지 리포지토리에 대해 정기적으로 구현합니다. 

  • 에서 서버리스 구현을 사용하는 경우 Lambda 계층을 AWS Lambda사용하여 애플리케이션 함수 코드와 공유 종속 라이브러리를 분리합니다. 신뢰할 수 있는 코드만 Lambda 함수에서 실행되도록 Lambda에 대한 코드 서명을 구성합니다.

리소스

관련 모범 사례:

관련 비디오:

관련 예제: