

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

# 테마 2: 보안 파이프라인을 통해 변경 불가능한 인프라 관리
<a name="theme-2"></a>

**Essential Eight 전략 설명**  
애플리케이션 제어, 애플리케이션 패치, 운영 체제 패치

변경 불가능한 인프라의 경우 시스템 변경에 대한 배포 파이프라인을 보호해야 합니다. AWS Distinguished Engineer인 Colm MacC árthaigh는 2022 AWS re[:Invent 컨퍼런스의 제로 권한 작업: 데이터에 액세스하지 않고 서비스 실행](https://www.youtube.com/watch?v=kNbNWxVQP4w)(YouTube 비디오) 프레젠테이션에서이 원칙을 설명했습니다.

 AWS 리소스 구성에 대한 직접 액세스를 제한하면 승인되고 안전하며 자동화된 파이프라인을 통해 모든 리소스를 배포하거나 변경하도록 요구할 수 있습니다. 일반적으로 사용자가 배포 파이프라인을 호스팅하는 계정에만 액세스하도록 허용하는 [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 정책을 생성합니다. 또한 제한된 수의 사용자에 대해 [긴급 액세스 권한](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/break-glass-access.html)을 허용하는 IAM 정책도 구성할 수 있습니다. 수동 변경을 방지하기 위해 보안 그룹을 사용하여 서버에 대한 SSH 및 Windows 원격 데스크톱 프로토콜(RDP) 액세스를 차단할 수 있습니다. 의 기능인 [Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)는 인바운드 포트를 열거나 접속 호스트를 유지 관리할 필요 없이 인스턴스에 대한 액세스를 제공할 AWS Systems Manager수 있습니다.

Amazon Machine Image(AMI) 및 컨테이너 이미지는 안전하고 반복적으로 빌드해야 합니다. Amazon EC2 인스턴스의 경우 [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html)를 사용하여 인스턴스 검색, 애플리케이션 제어 및 로깅과 같은 기본 제공 보안 기능을 포함하는 AMI를 빌드할 수 있습니다. 애플리케이션 제어에 대한 자세한 내용은 ACSC 웹 사이트의 [Implementing Application Control](https://www.cyber.gov.au/resources-business-and-government/maintaining-devices-and-systems/system-hardening-and-administration/system-hardening/implementing-application-control)을 참조하세요. Image Builder를 사용하여 컨테이너 이미지를 빌드하고 [Amazon Elastic Container Registry(Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)를 사용하여 여러 계정에서 해당 이미지를 공유할 수도 있습니다. 중앙 보안 팀은 이러한 AMI 및 컨테이너 이미지를 빌드하는 자동화된 프로세스를 승인할 수 있습니다. 그러면 애플리케이션 팀이 결과로 생성된 AMI 또는 컨테이너 이미지를 사용하도록 승인할 수 있습니다.

애플리케이션은 [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 또는 [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)와 같은 서비스를 사용하여 코드형 인프라(IaC)에서 정의해야 합니다. AWS CloudFormation Guard cfn-nag 또는 cdk-nag와 같은 코드 분석 도구는 승인된 파이프라인의 보안 모범 사례에 대해 코드를 자동으로 테스트할 수 있습니다.

[테마 1: 관리형 서비스 사용](theme-1.md)와 마찬가지로 Amazon Inspector는 AWS 계정에서 취약성을 보고할 수 있습니다. 중앙 집중식 클라우드 및 보안 팀은이 정보를 사용하여 애플리케이션 팀이 보안 및 규정 준수 요구 사항을 충족하는지 확인할 수 있습니다.

규정 준수를 모니터링하고 보고하려면 IAM 리소스 및 로그를 지속적으로 검토합니다. AWS Config 규칙을 사용하여 승인된 AMIs만 사용되고 Amazon Inspector가 Amazon ECR 리소스의 취약성을 스캔하도록 구성되어 있는지 확인합니다.

## AWS Well-Architected 프레임워크의 관련 모범 사례
<a name="theme-2-best-practices"></a>
+ [OPS05-BP04 구축 및 배포 관리 시스템 사용](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_build_mgmt_sys.html)
+ [REL08-BP04 변경 불가능한 인프라를 사용하여 배포](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_tracking_change_management_immutable_infrastructure.html)
+ [SEC06-BP03 수동 관리 및 대화형 액세스 감소](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_protect_compute_reduce_manual_management.html)

## 이 테마 구현
<a name="theme-2-implementation"></a>

### AMI 및 컨테이너 빌드 파이프라인 구현
<a name="t2-ami-pipelines"></a>
+ [EC2 Image Builder를 사용](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html)하고 AMI에 다음을 빌드합니다.
  + 인스턴스 검색 및 관리에 사용되는 [AWS Systems Manager 에이전트(SSM 에이전트)](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html)
  + 애플리케이션 제어에 대한 보안 도구(예: [Security Enhanced Linux(SELinux)](https://github.com/SELinuxProject)(GitHub), [File Access Policy Daemon(fapolicyd)](https://github.com/linux-application-whitelisting/fapolicyd/blob/main/README.md)(GitHub) 또는 [OpenSCAP](https://www.open-scap.org/))
  + [Amazon CloudWatch Agent](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html): 로깅에 사용됨
+ 모든 EC2 인스턴스의 경우 Systems Manager가 인스턴스에 액세스하는 데 사용하는 [인스턴스 프로파일 또는 IAM 역할](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-permissions.html)에 `CloudWatchAgentServerPolicy` 및 `AmazonSSMManagedInstanceCore` 정책을 포함합니다.
+ [전체 조직과 AMI 공유](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/share-amis-with-organizations-and-OUs.html)
+ [EC2 Image Builder 리소스 공유](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-shared-resources.html)
+ [애플리케이션 팀이 최신 AMI를 참조하도록 보장](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-custom-resources-lambda-lookup-amiids.html)
+ [패치 관리를 위해 AMI 파이프라인 사용](https://docs.aws.amazon.com/imagebuilder/latest/userguide/security-patch-management.html)
+ 컨테이너 빌드 파이프라인을 구현합니다.
  + [EC2 Image Builder 콘솔 마법사를 사용하여 컨테이너 이미지 파이프라인 생성](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-container-pipeline.html)
  + [Amazon ECR을 소스로 사용하여 컨테이너 이미지에 대한 지속적 전송 파이프라인 구축](https://aws.amazon.com/blogs/devops/build-a-continuous-delivery-pipeline-for-your-container-images-with-amazon-ecr-as-source/)(AWS 블로그 게시물)
+ [다중 계정 및 다중 리전 아키텍처를 통해 조직 전체에서 ECR 컨테이너 이미지 공유](https://aws.amazon.com/blogs/containers/amazon-ecr-in-multi-account-and-multi-region-architectures/)

### 보안 애플리케이션 빌드 파이프라인 구현
<a name="t2-secure-pipelines"></a>
+ [EC2 Image Builder 및 AWS CodePipeline](https://aws.amazon.com/blogs/mt/create-immutable-servers-using-ec2-image-builder-aws-codepipeline/) (AWS 블로그 게시물)를 사용하여 IaC용 빌드 파이프라인 구현
+ CI/CD 파이프라인에서 [AWS CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html), [cfn-nag](https://github.com/stelligent/cfn_nag)(GitHub) 또는 [cdk-nag](https://github.com/cdklabs/cdk-nag)(GitHub)와 같은 코드 분석 도구를 사용하여 다음과 같은 모범 사례 위반을 감지할 수 있습니다.
  + 와일드카드를 사용하는 정책과 같이 너무 허용적인 IAM 정책
  + 와일드카드를 사용하거나 SSH 액세스를 허용하는 규칙과 같이 너무 허용적인 보안 그룹 규칙
  + 활성화되지 않은 액세스 로그
  + 활성화되지 않은 암호화
  + 암호 리터럴
+ [파이프라인에서 스캔 도구 구현](https://aws.amazon.com/blogs/devops/building-end-to-end-aws-devsecops-ci-cd-pipeline-with-open-source-sca-sast-and-dast-tools/)(AWS 블로그 게시물)
+ [파이프라인(블로그 게시물) AWS Identity and Access Management Access Analyzer 에서를 사용하여](https://aws.amazon.com/blogs/security/validate-iam-policies-in-cloudformation-templates-using-iam-access-analyzer/) CloudFormation 템플릿에 정의된 IAM 정책 검증AWS 
+ 파이프라인을 사용하거나 수정하도록 최소 권한 액세스에 대한 [IAM 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#:~:text=IAM%20policies%20define%20permissions%20for,CLI%2C%20or%20the%20AWS%20API.) 및 [서비스 제어 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) 구성

### 취약성 스캔 구현
<a name="t2-vulnerability-scanning"></a>
+ [조직의 모든 계정에서 Amazon Inspector 활성화](https://docs.aws.amazon.com/inspector/latest/user/designating-admin.html)
+ Amazon Inspector를 사용하여 AMI 빌드 파이프라인에서 AMI를 스캔합니다.
  + [Manage the lifecycle of AMIs in EC2 Image Builder](https://github.com/aws-samples/ec2-imagebuilder-ami-lifecycle)(GitHub)
+ [Amazon Inspector를 사용하여 Amazon ECR 리포지토리에 대한 향상된 스캔 구성](https://docs.aws.amazon.com/inspector/latest/user/scanning-ecr.html#configure-ecr)
+ [보안 조사 결과를 분류하고 해결하기 위해 취약성 관리 프로그램 빌드](https://docs.aws.amazon.com/prescriptive-guidance/latest/vulnerability-management/)

## 이 테마 모니터링
<a name="theme-2-monitoring"></a>

### IAM 및 로그를 지속적으로 모니터링
<a name="t2-monitor"></a>
+ IAM 정책을 정기적으로 검토하여 다음을 확인합니다.
  + 배포 파이프라인만 리소스에 직접 액세스할 수 있음
  + 승인된 서비스만 데이터에 직접 액세스할 수 있음
  + 사용자가 AWS 리소스에 직접 액세스할 수 없음
+  AWS CloudTrail 로그를 모니터링하여 사용자가 파이프라인을 통해 리소스를 수정하고 리소스를 직접 수정하거나 데이터에 액세스하지 않는지 확인합니다.
+ 주기적으로 IAM Access Analyzer 조사 결과 검토
+  AWS 계정 에 대한 루트 사용자 자격 증명이 사용되는 경우 알리도록 알림 설정

### 다음 AWS Config 규칙 구현
<a name="t2-config"></a>
+ `APPROVED_AMIS_BY_ID`
+ `APPROVED_AMIS_BY_TAG`
+ `ECR_PRIVATE_IMAGE_SCANNING_ENABLED`