BLOG

Patch Manager 및 Security Hub를 통한 다중 계정 패치 컴플라이언스
작성일: 2020-08-04

소개

이 블로그 게시물에서는 중요한 패치 컴플라이언스 결과를 Security Hub로 가져 오는 방법을 다뤄보겠습니다. Security Hub는 고객의 AWS 계정 전체 보안 및 컴플라이언스 상태에 대한 전체 보기를 제공하는 서비스입니다. 고객은 Security Hub에서 보안 결과 집계, 구성 및 순위 지정을 모두 수행할 수 있습니다. Security Hub는 Amazon GuardDutyAmazon Inspector 및 Amazon Macie와 같은 여러 AWS 서비스에서 관련 결과를 수집합니다. OS 패치 컴플라이언스는 고객의 모니터링이 요구되는 중요한 항목들이며 별도의 AWS Systems Manager 컴플라이언스 콘솔을 사용하여 모니터링합니다.

 

또한 여러 계정에서 Security Hub 결과를 집계하여 여러 계정에서 집계된 패치 컴플라이언스 데이터를 볼 수 있습니다. AWS CloudFormation을 사용한 설정 외에 수동 설정도 보여드리겠습니다. 이 블로그에서는 AWS Systems Manager 탐색기를 대체할 방법을 알려드립니다.

 

 

전제 조건

시작 전 패치 기준의 컴플라이언스 수준중요로 설정되어 있어야 합니다.

 

 

개요

이 솔루션은 두 가지 작업으로 유지 관리 기간을 생성합니다.

  1. 스캔 모드에서 AWS-RunPatchBaseline을 실행하여 패치 결과를 컴플라이언스에 보고
  2. AWS Lambda 함수를 실행하여 각 Amazon EC2 인스턴스에 대한 논 컴플라이언스(non-compliance) 패치 정보를 가져옵니다. 이 기능은 컴플라이언스에서 데이터를 가져와서 Security Hub에 보고합니다. 다음은 설정 개요입니다.

 

 

 

튜토리얼

수동 설정

이 방식은 콘솔 기반 접근 방식에 따라 패치 준수 내보내기를 설정합니다.

패치 컴플라이언스 결과를 Security Hub로 내보내기의 네 가지 단계는 다음과 같습니다.

 

1단계: IAM 규칙 및 권한 설정
AWS Lambda 함수는 데이터를 가져오고 내보내려면 각각 Systems Manager 컴플라이언스 API 작업 및 Security Hub를 호출할 수 있는 권한을 필요로 합니다. 다음 세 단계를 수행하면 올바른 정책으로 IAM 역할을 생성할 수 있습니다.

  1. 결과를 Security Hub로 가져오는 새 IAM 정책을 생성하세요.
    • IAM 콘솔에서 결과를 Security Hub로 가져오기 위한 새 정책을 생성하세요.
    • JSON 탭을 선택하고 다음 언급된 정책을 복사하세요.

 

{

    “Version”: “2012-10-17”,

    “Statement”: [

        {

            “Sid”: “VisualEditor0”,

            “Effect”: “Allow”,

            “Action”: [

                “securityhub:EnableSecurityHub”,

                “securityhub:EnableImportFindingsForProduct”,

                “securityhub:BatchImportFindings”

            ],

            “Resource”: “*”

        }

    ]

}

 

    • 정책 이름을 지정하세요. 이 블로그의 목적으로 “Import-Into-Security-Hub”라는 이름을 사용했습니다.

 

2. Systems Manager 준수에서 결과를 내보내는 정책

    • IAM 콘솔로 이동하여 Systems Manager에서 규정 준수를 나열하기 위한 새 정책을 생성하세요.
    • JSON 탭을 선택하고 다음 언급된 정책을 복사하세요.

{

    “Version”: “2012-10-17”,

    “Statement”: [

        {

            “Sid”: “VisualEditor0”,

            “Effect”: “Allow”,

            “Action”: [

                “ssm:ListComplianceItems”,

                “ssm:ListComplianceSummaries”,

                “ssm:ListResourceComplianceSummaries”

            ],

            “Resource”: “*”

        }

    ]

}

 

    • 정책 이름을 지정하세요. 이 블로그의 목적으로 “List-Compliance-Items”라는 이름을 사용했습니다.

 

3. 새 역할을 작성하고 이 두 정책을 첨부하세요.

    • IAM 콘솔 및 “Create Role”로 이동하세요.
    • 역할을 사용할 서비스로 “Lambda”를 선택하고 다음을 클릭하세요.
    • 이전 단계에서 생성한 2개의 정책을 선택하세요.

 

    • 역할을 검토하고 이름을 지정하세요. 저는 블로그 이해를 위해 이름을 “SSM에서 보안 가져오기”로 지정했습니다.

 

2단계: Lambda 설정

  1. 람다 콘솔로 이동하여 “Create Function”을 클릭하세요.
  2. SSM으로 시작하는 Lambda에 적절한 이름을 제공하세요. 블로그 목적으로“SSMImportPatchComplianceToSecurityHub”라는 이름을 사용했습니다. 실행 역할에서 기존 역할 사용을 선택하고 역할을“SSM에서 가져오기-보안-허브”로 선택하세요.

3. 람다 배포 패키지 문서에 따라 index.js 기반의 람다 배포 패키지를 구축하시고 배포 패키지에는 AWS SDK가 필요하다는 점을 주의하세요. 폴더 구조에 대한 자세한 정보는 Lambda 개발자 안내서에서 확인할 수도 있습니다. 이 블로그에서 패키지 이름은“SSMExportFromSecHub.zip”입니다.

4. 기능 코드에서 “.zip 파일 업로드”, 런타임을 “Node.js 10.x”및 핸들러 “index.handler”를 선택하세요. “SSMExportFromSecHub.zip”패키지를 업로드하고 “저장”을 클릭하세요.

 

3단계: 설정 유지 관리 기간

  1. Systems Manager 콘솔 유지 관리 창 탭에서 적절한 이름과 일정으로 새 유지 관리 창을 만드세요. 튜토리얼 목적으로 유지 관리 기간을 “패치 관리”라고 지정했습니다.
  2. 유지 보수 창에 대상을 등록하여 패치할 필수 대상을 추가하세요.
  3. 다음 설정으로 실행 명령 태스크를 등록하여 유지 보수 창에 패치 스캔 태스크를 추가하세요.

    • “명령 문서”섹션의 AWS-RunPatchBaseline.
    • 창에서 첫 번째 작업이되도록 우선 순위를 지정합니다 (기본값은 1로 유지).
    • “매개 변수” 섹션에서 “작동”을 “스캔”으로 설정하세요.

 

4. Lambda 기능을 작업으로 실행하려면 창을 선택하고 “Actions (작업)”를 선택한 후 다음 설정으로 “Lambda task 등록”을 선택하세요.

    • Lambda 매개 변수의 기능을 “SSMImportPatchComplianceToSecurityHub”로 설정하세요.
    • 창에서 마지막 작업이 되도록 우선 순위 (10으로 설정).
    • 페이로드

{“instanceid”: “{{TARGET_ID}}”}

 

    • 적절한 비율 제어 및 오류 임곗값 (각각 10개의 목표와 10개의 오류를 설정했습니다).
    • “Systems Manager에 서비스 연결 역할 사용”으로서의 IAM 서비스 역할

 

 

4 단계: Security Hub에서 교차 계정 동기화 설정

GitHub 패키지에 호스팅 된 지침을 통해 한 계정의 보안 허브에 있는 여러 계정에서 정보를 수집할 수 있습니다. Security Hub는 지역별로 격리되어 있으며 각 구성원 계정에 대한 결과는 마스터 계정의 해당 지역으로 롤업 됩니다.

 

 

AWS CloudFormation을 사용하여 설정

  1. 람다 배포 패키지 문서에 따라 index.js기반의 빌람다 배포 패키지를 구축하시고 배포 패키지에는 AWS SDK가 필요하다는 점을 주의하세요. Lambda 개발자 안내서에서 폴더 구조에 대한 자세한 정보를 알아볼 수 있습니다. 이 블로그에서 패키지 이름은 “SSMExportFromSecHub.zip”입니다.
  2. SSMExportFromSecHub.zip을 Amazon S3에 업로드하세요.
  3. AWS CloudFormation 콘솔로 이동하여 새 스택 생성을 선택하세요.
  4. “템플릿 파일 업로드”옵션을 사용하고 AWS CloudFormation 템플릿을 업로드하세요.
  5. 이 블로그에 적절한 스택 이름을 제공하십시오. 이 이름을 패치 내보내기 스택”이라고합니다. 다음 지침에 따라 매개 변수를 제공하세요.
    • ExistingLambdaExecutionRole: 역할에는 Systems Manager 준수에 대한 목록 권한과 Security Hub의 가져오기 권한이 있어야 합니다. 이 매개 변수는 선택 사항입니다. 역할이 제공되지 않으면 템플릿은 “수동 설정” 섹션1에 나열된 권한으로 계정에 새 역할 및 정책을 만듭니다.
    • S3BucketParam: 2 단계에서 업로드 한 파일의 Amazon S3 버킷입니다. 이는 필수 사항입니다.
    • S3KeyParam: 2 단계에서 업로드 한 파일의 Amazon S3 객체 키입니다. 이는 필수 사항입니다.
    • TargetTagKey: 생성된 유지 관리 기간의 대상이 될 인스턴스의 태그 키입니다. 이는 필수 사항입니다.
    • TargetTagValue: 생성된 유지 관리 기간의 대상이 될 인스턴스의 태그 값입니다. 이는 필수 사항입니다.
  6. 적절한“Configure Stack Options”를 채우고 다음을 선택하세요.
  7. 스택을 검토하고 “스택 생성”을 선택하세요.
  8. GitHub 패키지의 가이드를 참조하여 Security Hub에서 교차 계정 동기화를 설정하세요. 이를 통해 한 계정의 보안 허브에 있는 여러 계정에서 정보를 수집할 수 있습니다. Security Hub는 지역별로 격리되어 있으며 각 구성원 계정에 대한 결과는 마스터 계정의 해당 지역으로 롤업됩니다.

 

 

요약

유지 관리 기간 작업을 실행한 후 Security Hub로 이동하여 모든 패치 컴플라이언스 결과를 볼 수 있습니다.

 

 

 

정리

이 블로그에서 작성된 모든 리소스를 제거하려면 다음 단계를 확인하세요.

  1. GitHub 패키지의 섹션 2b에 나오는 지침에 따라 마스터 계정과 연결된 계정 모두에서 Security Hub를 비활성화합니다.
  2. 수동 설정을 사용하면 다음을 수동으로 제거할 수 있습니다.
    • Lambda 함수 “SSMImportPatchComplianceToSecurityHub”를 삭제하세요.
    • 생성된 IAM 역할과 ” Import-From-SSM-To-Security-Hub”, ” List-Compliance-Items”및 ” Import-Into-Security-Hub” 두 가지 정책을 삭제하세요.
    • 유지 관리 창 ” Patch-Management”를 삭제하세요.
  3. AWS CloudFormation 을 사용 중인 경우 모든 리소스를 정리하려면 다음을 수행하세요.
    • AWS CloudFormation 스택을 삭제하여 다음 항목을 제거하세요.
      • Lambda 함수“SSMImportPatchComplianceToSecurityHub”.
      • IAM 역할과 두 가지 정책
      • 유지 관리 창 “패치 관리”
    • S3 버킷“SSMExportFromSecHub.zip”의 파일

 

 

결론

이 게시물에서는 AWS Organizations의 여러 계정에 대해 중요 패치 누락 상태를 Security Hub 콘솔에 수집하는 솔루션을 시연했습니다. 이는 고객이 Security Hub와 함께 사용하여 AWS 계정에서 우선순위가 높은 보안 경고 및 규정 준수 상태를 모니터링하는 새로운 설정 또는 기존 설정에 유용합니다. Patch Manager 에 대한 자세한 내용은 제품 설명서를 참고하세요.

 

원문URL: https://aws.amazon.com/ko/blogs/mt/multi-account-patch-compliance-with-patch-manager-and-security-hub/

** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.