정책

클라우드 인프라 구성을 스캔하고 평가하기

개요

정책은 잘못 구성된 클라우드 인프라를 식별하고 팀에 경고를 생성하는 데 사용됩니다. Panther는 이미 작성되어 지속적으로 업데이트되는 여러 Panther 관리 정책.

정책은 다음으로 작성될 수 있습니다 Python 탐지; 다음으로는 작성할 수 없습니다 간단한 탐지.

정책에서 일치 항목이 발견되면 규정 준수 실패가 생성되지만, 시그널은 생성되지 않습니다. 규정 준수 실패는 다음에서 확인할 수 있습니다:

  • 데이터 탐색기에서, panther_cloudsecurity.public 데이터베이스의 compliance_history 테이블

  • 검색에서, 가능한 보안 데이터베이스의 규정 준수 기록 테이블

정책 작성 방법

새 정책을 작성하기 전에 기존에 해당 요구를 충족하는 Panther 관리 정책 이 있는지 확인하는 것을 잊지 마세요.

circle-exclamation

정책 본문

정책 본문은 다음을 충족해야 합니다:

  • 유효한 Python3여야 합니다.

  • 다음을 정의해야 합니다 policy() 하나의 resource 인수를 받는 함수.

    • 각 정책은 주어진 리소스 유형의 resource 입력을 지원되는 리소스 페이지를 참조하세요.

  • 에서 받습니다. 부울 정책 함수에서

def policy(resource): policy() function resource Python 본문은

  • 에 대한 인수 이름을 지정해야 하며 또한 다음을 수행할 수 있습니다:

  • 표준 Python3 라이브러리 가져오기 사용자 정의에서 가져오기 aws_globals

  • 모듈 Panther에서 정의한 것에서 가져오기 aws_globals

  • panther

  • 필요에 따라 추가 보조 함수를 정의하기

규칙 함수 범위 외부에 변수 및 클래스를 정의하기 지원되는 리소스 의 스키마를 사용하면 리소스의 모든 사용 가능한 필드에 대한 세부 정보를 제공합니다. 최상위 키는 항상 존재하지만, 그 값은 NoneType 값을 포함할 수 있습니다.

로컬 및 Panther 콘솔에서 정책 작성하기

Panther 콘솔에서 정책을 작성 및 배포할 수 있으며, 로컬에서 작성한 후 Panther 분석 도구(PAT) CLI 워크플로:

Panther 콘솔에서 정책 작성 방법

  1. Panther 콘솔의 왼쪽 탐색 바에서 클릭하십시오 탐지.

  2. 오른쪽 상단에서 클릭하십시오 새로 만들기.

  3. 다음 정책 타일에서, 클릭 시작.

  4. 생성 페이지에서 정책을 구성하세요:

    • 이름: 정책에 대한 설명 이름을 입력하세요.

    • ID (선택 사항): 펜 아이콘을 클릭하고 정책에 대한 고유한 ID를 입력하세요.

    • 오른쪽 상단에서, 활성화됨 토글은 기본적으로 켜기 로 설정됩니다. 정책을 비활성화하려면 토글을 OFF.

    • 다음 다음 리소스 유형에 대해 섹션:

      • 리소스 유형: 이 정책이 적용될 하나 이상의 리소스 유형을 선택하세요. 모든 리소스에 적용하려면 비워두세요.

    • 다음 탐지 섹션:

    • 다음 에서 확인하세요. 섹션:

      • 경고 필드 설정심각도 : 이 탐지로 트리거되는 경고에 대한 심각도 수준을 선택하세요.

      • 다음 선택적 필드 섹션에서 선택적으로 다음 필드에 대한 값을 제공하세요:

        • 설명: 정책에 대한 추가 컨텍스트를 입력하세요.

        • 런북: 이 정책과 관련된 절차 및 운영을 입력하세요.

        • 참조: 이 규칙과 관련된 추가 정보를 위한 외부 링크를 입력하세요.

        • 대상 재정의: 심각도에 상관없이 이 탐지에 대해 경고를 받을 대상을 선택하세요. 대상은 규칙 함수에서 동적으로 설정할 수도 있습니다. 라우팅 우선 순위에 대해 더 알아보려면 라우팅 우선순위 를 참조하세요.

        • 무시 패턴: 무시할 패턴을 입력하세요.

        • 사용자 지정 태그: 규칙을 한눈에 이해하는 데 도움이 되도록 사용자 지정 태그를 입력하세요(예: HIPAA.)

        • 다음 프레임워크 매핑 섹션:

          1. 클릭 새로 추가 를 클릭하여 보고서를 입력하세요.

          2. 다음 필드에 대한 값을 제공하세요:

            • 보고서 키: 보고서와 관련된 키를 입력하세요.

            • 보고서 값: 해당 보고서에 대한 값을 입력하세요.

    • 다음 테스트 섹션:

      • 다음 단위 테스트 섹션에서, 새로 추가 에서 를 클릭하여 테스트 생성 이전 단계에서 정의한 정책에 대한 테스트를 만드세요.

  5. 오른쪽 상단에서 클릭하십시오 저장.

연관된 경고의 제목

정책에 대한 경고 제목 설정 우선순위는 규칙 및 예약 규칙과 동일합니다—자세한 내용은 경고 제목이 설정되는 방법 섹션.

특정 클라우드 리소스 무시하기

정책을 구성하여 특정 클라우드 리소스에 예외를 둘 수 있으며, 이는 해당 리소스에 대해 정책이 실행되지 않고 경고가 생성되지 않음을 의미합니다. 이를 때때로 "정책 억제(policy suppression)"라고 합니다.

정책 억제를 구성하는 세 가지 방법이 있습니다:

circle-exclamation
circle-info

정책 억제를 추가하는 것이 가능하지만, 나중에 제거해야 하는 경우에는 다른 두 가지 방법 중 하나를 통해 정책을 편집해야 합니다. 리소스의 Panther 콘솔 페이지에서 정책이 해당 리소스를 무시하도록 구성하려면: 클라우드 리소스

무시하려는 클라우드 리소스의 이름을 클릭하세요.

  1. Panther 콘솔의 왼쪽 탐색 바에서 클릭하십시오 정책.

  2. 이 리소스에 적용되는 모든 정책을 포함하는 섹션에서, 이 리소스를 무시하도록 구성하려는 정책을 찾으세요.

  3. 다음 해당 행의 오른쪽에 있는 점 세 개 아이콘을 클릭한 다음 무시

  4. 를 선택하세요. 이 작업은 정책을 편집하여 그 정책의.

    • 콘솔: 정책 페이지 무시 패턴 필드에 붙여넣으세요.

A "Policies" section shows three policies in a table. Each policy has a status, severity, and a three dots icon.

정책 작성 모범 사례

테스트 리소스 구성

수동으로 테스트 케이스를 구성하면 사람의 실수가 발생하기 쉽습니다. 다음 방법 중 하나를 권장합니다:

  • 옵션 1: Panther 콘솔에서, 조사 > 클라우드 리소스로 이동하세요. 테스트에서 모방하려는 리소스 유형의 필터를 적용하세요. 환경에서 리소스를 선택하고, 속성 카드에서 " root.

  • " 옆의 복사 버튼을 선택하여 해당 리소스의 전체 JSON 표현을 복사할 수 있습니다. 옵션 2: Panther리소스 문서 를 열고, 모방하려는 리소스 섹션으로 이동하세요. 제공된 예제 리소스를 복사하세요. 웹 UI에서 작업 중이면 리소스 편집기에 붙여넣거나 로컬에서 작업 중이면 리소스

필드에 붙여넣으세요. 이제 정책 및 특정 테스트 케이스에 관련된 필드를 수동으로 수정할 수 있습니다.

옵션 1은 실용적일 때 가장 좋습니다. 실제 정책에 대한 실제 테스트 데이터를 제공할 수 있기 때문입니다. 또한 대개 특정 문제가 있는 리소스 때문에 정책을 작성/수정하는 경우가 많습니다. 해당 리소스의 정확한 JSON 표현을 테스트 케이스로 사용하면 유사한 리소스가 향후 정책에 의해 포착된다는 것을 보장할 수 있습니다.

예외 디버깅

정책을 실행하는 Python 환경에 직접 액세스할 수 없기 때문에 예외를 디버깅하기 어려울 수 있습니다. 특정 리소스에서 정책이 오류 상태를 표시하는 경우, 이는 정책이 예외를 발생시켰음을 의미합니다. 이러한 오류를 해결하는 가장 좋은 방법은 위의 테스트 리소스 구성

섹션의 옵션 1을 사용하여 예외를 일으키는 리소스에서 테스트 케이스를 생성하는 것입니다.

circle-exclamation

로 출력된 모든 내용은 CloudWatch에 기록됩니다. SaaS/CPaaS 고객의 경우, Panther 엔지니어는 정기적인 애플리케이션 모니터링 중에 이러한 CloudWatch 로그를 확인할 수 있습니다.

정책 예시

S3 공개 읽기 접근

return False

IAM 비밀번호 정책

다음 policy() return resource['MaxPasswordAge'] <= 90 본문에서 True 값을 반환하면 해당 리소스가 규정 준수 상태이며 경고를 보내지 않아야 함을 나타냅니다. False

값을 반환하면 해당 리소스가 비규정 준수임을 나타냅니다. return False 정책은 다음

참조

Last updated

Was this helpful?