기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
퍼블릭 IP 주소에서 액세스를 허용하는 AWS 보안 그룹 자동 감사
작성자: Eugene Shifer(AWS) 및 Stephen DiCato(AWS)
요약
보안 모범 사례로서 반드시 필요한 것에만 AWS 리소스가 노출되는 것을 최소화하는 것이 중요합니다. 예를 들어 일반 대중에게 서비스를 제공하는 웹 서버는 인터넷에서 인바운드 액세스를 허용해야 하지만 불필요한 노출을 줄이기 위해 다른 워크로드에 대한 액세스를 특정 네트워크로 제한해야 합니다. Amazon Virtual Private Cloud(Amazon VPC)의 보안 그룹은 리소스 액세스를 제한하는 데 도움이 되는 효과적인 제어입니다. 그러나 보안 그룹을 평가하는 것은 특히 다중 계정 아키텍처에서 번거로운 작업일 수 있습니다. AWS Config 규칙 및 AWS Security Hub 제어는 퍼블릭 인터넷(0.0.0.0/0)에서 Secure Shell(SSH), HTTP, HTTPS 및 Windows 원격 데스크톱 프로토콜(RDP)과 같은 특정 네트워크 통신 프로토콜에 대한 액세스를 허용하는 보안 그룹을 식별하는 데 도움이 될 수 있습니다. 그러나 서비스가 비표준 포트에서 실행되거나 액세스가 특정 퍼블릭 IP 주소로 제한된 경우에는 이러한 규칙 및 제어가 적용되지 않습니다. 예를 들어 웹 서비스가 표준 TCP 포트 443 대신 TCP 포트 8443과 연결된 경우 발생할 수 있습니다. 이는 개발자가 테스트와 같이 홈 네트워크에서 서버에 액세스할 수 있는 경우에도 발생할 수 있습니다.
이를 해결하기 위해이 패턴에 제공된 코드형 인프라(IaC) 솔루션을 사용하여 AWS 계정 또는 AWS 조직의 모든 워크로드에 대한 비프라이빗(RFC 1918
사전 조건 및 제한 사항
사전 조건
활성 AWS 계정
GitHub
사용 경험 단일에 배포하는 경우 AWS 계정:
CloudFormation 스택을 생성할 수 있는 권한
대상 계정에AWS Config 설정
(선택 사항) 대상 계정에 Security Hub 설정
AWS 조직에 배포하는 경우:
제한 사항
Security Hub가 활성화되지 않은 개별 계정에 배포하는 경우 AWS Config 를 사용하여 결과를 평가할 수 있습니다.
AWS Config 및 Security Hub에 대한 위임된 관리자가 없는 조직에 배포하는 경우 개별 멤버 계정에 로그인하여 결과를 확인해야 합니다.
AWS Control Tower 를 사용하여 조직의 계정을 관리하고 관리하는 경우 Customizations for AWS Control Tower (CfCT)를 사용하여이 패턴으로 IaC를 배포합니다. CloudFormation 콘솔을 사용하면 AWS Control Tower 가드레일에서 구성 드리프트가 생성되어 조직 단위(OUs) 또는 관리형 계정을 다시 등록해야 합니다.
일부 AWS 서비스 는 전혀 사용할 수 없습니다 AWS 리전. 리전 가용성은 AWS 서비스 리전별
섹션을 참조하세요. 특정 엔드포인트는 서비스 엔드포인트 및 할당량 페이지를 참조하고 서비스의 링크를 선택합니다.
아키텍처
개인에 배포 AWS 계정
다음 아키텍처 다이어그램은 단일 내에서 AWS 리소스의 배포를 보여줍니다 AWS 계정. CloudFormation 콘솔을 통해 직접 CloudFormation 템플릿을 사용하여 리소스를 프로비저닝합니다. Security Hub가 활성화된 경우 AWS Config 또는 Security Hub에서 결과를 볼 수 있습니다. Security Hub가 활성화되지 않은 경우 에서만 결과를 볼 수 있습니다 AWS Config.

이 다이어그램은 다음 워크플로를 보여줍니다.
CloudFormation 스택을 생성합니다. 그러면 Lambda 함수와 AWS Config 규칙이 배포됩니다. 규칙과 함수 모두 AWS Config 및 로그에 리소스 평가를 게시하는 데 필요한 AWS Identity and Access Management (IAM) 권한으로 설정됩니다.
AWS Config 규칙은 탐지 평가 모드에서 작동하며 24시간마다 Lambda 함수를 호출합니다.
Lambda 함수는 보안 그룹을 평가하고에 업데이트를 전송합니다 AWS Config.
Security Hub는 모든 AWS Config 조사 결과를 수신합니다.
계정에서 설정한 서비스에 AWS Config따라 Security Hub 또는에서 조사 결과를 볼 수 있습니다.
AWS 조직에 배포
다음 다이어그램은 AWS Organizations 및를 통해 관리되는 여러 계정에 패턴 배포를 보여줍니다 AWS Control Tower. CfCT를 통해 CloudFormation 템플릿을 배포합니다. 평가 결과는 Security Hub의 위임된 관리자 계정에서 중앙 집중화됩니다. 다이어그램의 AWS CodePipeline 워크플로 섹션에는 CfCT 배포 중에 발생하는 배경 단계가 나와 있습니다.

이 다이어그램은 다음 워크플로를 보여줍니다.
관리 계정에서 IaC 템플릿의 압축(ZIP) 파일을 CfCT에서 배포한 Amazon Simple Storage Service(Amazon S3) 버킷에 업로드합니다.
CfCT 파이프라인은 파일의 압축을 풀고, cfn-nag
(GitHub) 검사를 실행하고, 템플릿을 CloudFormation 스택 세트로 배포합니다. CfCT 매니페스트 파일에서 지정하는 구성에 따라 CloudFormation StackSets는 스택을 개별 계정 또는 지정된 OUs. 그러면 대상 계정에 Lambda 함수와 AWS Config 규칙이 배포됩니다. 규칙과 함수 모두 AWS Config 및 로그에 리소스 평가를 게시하는 데 필요한 IAM 권한으로 설정됩니다.
AWS Config 규칙은 탐지 평가 모드에서 작동하며 24시간마다 Lambda 함수를 호출합니다.
Lambda 함수는 보안 그룹을 평가하고에 업데이트를 전송합니다 AWS Config.
AWS Config 는 모든 조사 결과를 Security Hub로 전달합니다.
Security Hub 조사 결과는 위임된 관리자 계정에 집계됩니다.
Security Hub의 위임된 관리자 계정에서 집계된 결과를 볼 수 있습니다.
도구
AWS 서비스
AWS CloudFormation는 AWS 리소스를 설정하고, 빠르고 일관되게 프로비저닝하고, AWS 계정 및의 수명 주기 전반에 걸쳐 리소스를 관리할 수 있도록 지원합니다 AWS 리전.
AWS Config는의 리소스 AWS 계정 와 리소스 구성 방법에 대한 세부 보기를 제공합니다. 리소스가 서로 관련되는 방식과 리소스의 구성이 시간이 지남에 따라 변경된 방식을 식별하는 데 도움이 됩니다. An AWS Config rule은 리소스에 대한 이상적인 구성 설정을 정의하고 AWS 리소스가 규칙의 조건을 준수하는지 여부를 평가할 AWS Config 수 있습니다.
AWS Control Tower는 규범적 모범 사례를 따라 AWS 다중 계정 환경을 설정하고 관리하는 데 도움이 됩니다. AWS Control Tower (CfCT)에 대한 사용자 지정을 사용하면 AWS Control Tower 랜딩 존을 사용자 지정하고 AWS 모범 사례에 맞게 조정할 수 있습니다. 이 솔루션에 대한 사용자 지정은 CloudFormation 템플릿 및 AWS Organizations 서비스 제어 정책(SCPs)을 통해 구현됩니다.
AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.
AWS Organizations는 여러를 생성하여 중앙에서 관리하는 조직 AWS 계정 으로 통합하는 데 도움이 되는 계정 관리 서비스입니다.
AWS Security Hub는의 보안 상태에 대한 포괄적인 보기를 제공합니다 AWS. 또한 보안 업계 표준 및 모범 사례를 기준으로 AWS 환경을 확인하는 데 도움이 됩니다.
기타 도구
Python
은 범용 컴퓨터 프로그래밍 언어입니다.
코드 리포지토리
이 패턴의 코드는 GitHub Detect 취약한 보안 그룹
모범 사례
다음 리소스의 모범 사례를 준수하는 것이 좋습니다.
를 사용한 조직 단위 모범 사례 AWS Organizations
(AWS 클라우드 운영 및 마이그레이션 블로그) (AWS Solutions Library)AWS Control Tower 에서를 사용하여 초기 파운데이션을 설정하기 위한 지침 AWS
AWS Control Tower 리소스 생성 및 수정 지침(AWS Control Tower 문서)
CfCT 배포 고려 사항(AWS Control Tower 문서)
최소 권한 적용(IAM 설명서)
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
배포 전략을 결정합니다. | 솔루션과 코드를 검토하여 AWS 환경에 대한 배포 전략을 결정합니다. 단일 계정에 배포할지 아니면 AWS 조직에 배포할지 결정합니다. | 앱 소유자, 일반 AWS |
리포지토리를 복제합니다. | 다음 명령을 입력하여 취약한 보안 그룹 감지
| 앱 개발자, 앱 소유자 |
Python 버전을 검증합니다. |
| 관리자, 앱 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
CloudFormation 템플릿을 배포합니다. | CloudFormation 템플릿을 AWS 환경에 배포합니다. 다음 중 하나를 수행합니다.
| 앱 개발자, AWS 관리자, 일반 AWS |
배포를 확인합니다. | CloudFormation 콘솔 | AWS 관리자, 앱 소유자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
AWS Config 규칙 조사 결과를 봅니다. | Security Hub에서 다음을 수행하여 개별 조사 결과 목록을 봅니다.
Security Hub에서 다음을 수행하여 그룹화된 총 조사 결과 목록을 봅니다. AWS 계정
에서 조사 결과 목록을 AWS Config보려면 AWS Config 설명서의 규정 준수 정보 및 평가 결과 보기의 지침을 따르세요. | AWS 관리자, AWS 시스템 관리자, 클라우드 관리자 |
문제 해결
문제 | Solution |
---|---|
CloudFormation 스택 세트 생성 또는 삭제에 실패했습니다. | AWS Control Tower 가 배포되면 필요한 가드레일을 적용하고 AWS Config 집계자 및 규칙을 제어합니다. 여기에는 CloudFormation을 통한 직접 변경 방지가 포함됩니다. 연결된 모든 리소스를 포함하여이 CloudFormation 템플릿을 올바르게 배포하거나 제거하려면 CfCT를 사용해야 합니다. |
CfCT가 CloudFormation 템플릿을 삭제하지 못합니다. | 매니페스트 파일에서 필요한 변경을 수행하고 템플릿 파일을 제거한 후에도 CloudFormation 템플릿이 지속되는 경우 매니페스트 파일에 |
관련 리소스
AWS Config 사용자 지정 규칙(AWS Config 문서)