Security Health Analytics용 커스텀 모듈 테스트

이 페이지에서는 테스트 데이터가 포함된 YAML 파일을 업로드하여 Google Cloud 콘솔에서 Security Health Analytics 커스텀 모듈을 테스트하는 방법을 설명합니다.

시작하기 전에

커스텀 모듈을 테스트하려면 먼저 다음 기본 요건을 충족해야 합니다.

  • 다음을 포함하여 Security Health Analytics 커스텀 모듈을 사용하는 데 적용되는 모든 일반 기본 요건:

    • 프리미엄 서비스 등급 활성화
    • Security Command Center API 사용 설정

    전체 기본 요건 목록은 Security Health Analytics용 커스텀 모듈 사용을 참조하세요.

  • Security Command Center 및 커스텀 모듈 작업을 수행할 수 있을 뿐만 아니라 securitycenter.securityhealthanalyticscustommodules.test 권한을 포함하는 Identity and Access Management(IAM) 역할이 사용자 계정에 하나 이상 부여되어 있어야 합니다. 커스텀 모듈 작업에 필요한 권한과 역할에 대한 자세한 내용은 필요한 IAM 권한을 참조하세요.

  • 커스텀 모듈 테스트를 위한 API 호출에는 할당량이 적용됩니다. 자세한 내용은 커스텀 모듈 할당량을 참조하세요.

YAML 파일로 테스트 리소스 만들기

커스텀 모듈을 테스트하려면 허위 리소스 정의나 허위 정책 정의 또는 둘 다 YAML 파일에 정의합니다.

이러한 정의는 실제 리소스 또는 정책 인스턴스에 해당하지 않지만 정의가 커스텀 모듈에 지정된 리소스 또는 정책 유형의 스키마를 준수해야 합니다.

테스트 정의에서 지정해야 하는 유일한 속성은 커스텀 모듈이 평가하는 속성입니다. 커스텀 모듈이 참조하지 않는 리소스 속성은 포함할 필요가 없습니다.

커스텀 모듈에서 CEL 표현식을 테스트하려면 CEL 표현식을 true로 결정되게 만드는 속성 값을 테스트 파일에 지정합니다.

테스트 데이터의 형식

첫 번째 줄에서 testData:로 시작하고 이후 하나 이상의 - asset 정의로 이어지는 파일을 시작합니다.

testData:
- asset:
    resource: ARBITRARY_ASSET_NAME_1
    assetType: RESOURCE_TYPE_1
    resourceData:
      PROPERTIES_TO_TEST_1: PROPERTY_VALUE_1
        SUB_PROPERTY: SUB_PROPERTY_VALUE
      PROPERTIES_TO_TEST_2: PROPERTY_VALUE_2
- asset:
    resource: ARBITRARY_ASSET_NAME_2
    assetType: RESOURCE_TYPE_2
    iamPolicyData:
      PROPERTIES_TO_TEST_3: PROPERTY_VALUE_3
      PROPERTIES_TO_TEST_4: PROPERTY_VALUE_4

다음을 바꿉니다.

  • ARBITRARY_ASSET_NAME_N: 테스트가 성공할 때 테스트 결과에 표시되는 임의 값입니다.
  • RESOURCE_TYPE_N: API 서비스 엔드포인트의 도메인 이름과 리소스 이름(예: cloudkms.googleapis.com/CryptoKey)으로 지정되어 커스텀 모듈이 검사하는 애셋 또는 리소스의 유형입니다.
  • PROPERTIES_TO_TEST_N: 발견 항목을 트리거하기 위해 커스텀 모듈의 감지 논리에 사용되는 속성입니다.
  • PROPERTY_VALUE_N: 발견 항목을 트리거하는 속성의 값입니다.
  • SUB_PROPERTY: 리소스 정의에서 대상 리소스가 참조하는 다른 리소스의 하위 속성 또는 속성입니다.

테스트 정의 예시

이 섹션에는 테스트 리소스 정의 및 테스트 정책 정의 예시가 포함되어 있습니다. 두 예시가 개별 파일에 정의된 것으로 표시되지만 리소스 및 정책의 asset 정의는 단일 testData 파일로 조합할 수 있습니다.

리소스 정의 예시

다음 테스트 리소스 정의 예시는 CryptoKey 리소스의 rotationPeriod 속성이 2592000초(30일)를 초과하는지 검사하는 커스텀 모듈을 테스트합니다. 정의에 표시된 다른 속성은 커스텀 모듈에 사용되지 않지만 리소스 스키마를 준수합니다. 이 예시가 테스트하는 커스텀 모듈의 전체 정의는 커스텀 모듈 정의 예시를 참조하세요.

testData:
- asset:
    resource: THE CRYPTOKEY TEST WAS SUCCESSFUL!
    assetType: cloudkms.googleapis.com/CryptoKey
    resourceData:
      nextRotationTime:  '2020-02-05T12:00:55.192645Z'
      primary:
        state: 'ENABLED'
      purpose: 'ENCRYPT_DECRYPT'
      rotationPeriod: '2592001s'

정책 정의 예시

다음은 IAM 정책의 테스트 정의 예시입니다.

testData:
- asset:
    resource: //cloudresourcemanager.googleapis.com/projects/fake-project
    assetType: cloudresourcemanager.googleapis.com/Project
    iamPolicyData:
      bindings:
      - role: "roles/viewer"
        members:
        - "serviceAccount:fake-service-account@compute-system.iam.gserviceaccount.com"
        - "user:fake-email-account"

커스텀 모듈 테스트

Google Cloud 콘솔에서 새로운 커스텀 모듈 또는 기존 커스텀 모듈을 테스트할 수 있습니다.

커스텀 모듈을 테스트하려면 다음 단계를 수행합니다.

  1. Security Command Center 설정에서 Security Health Analytics 모듈 페이지로 이동합니다.

    모듈로 이동

  2. 테스트용 커스텀 모듈을 열거나 만듭니다.

    • 새 커스텀 모듈을 만들려면 모듈 만들기를 클릭하고 커스텀 모듈 만들기의 안내를 따르세요.
    • 기존 커스텀 모듈을 열려면 테스트하려는 모듈의 행 오른쪽에서 작업 아래에 있는 수정() 아이콘을 클릭합니다.
  3. 테스트 모듈 탭을 선택합니다.

  4. YAML 파일 업로드에서 찾아보기를 클릭하여 샘플 애셋 데이터가 포함된 파일을 업로드합니다. YAML 파일이 업로드되는 즉시 테스트가 실행됩니다.

  5. 테스트 결과 미리보기에서 결과를 확인합니다.

    • YAML 파일에 구문 또는 다른 오류가 있으면 플로팅 오류 메시지가 브라우저 페이지 하단 근처에 표시됩니다.
    • 테스트가 성공하면 다음 정보가 반환됩니다.

      • 커스텀 모듈의 표시 이름
      • 테스트 데이터 파일에서 resource 속성에 지정한 임의 이름
      • 커스텀 모듈이 생성되었거나 생성될 예정인 조직, 폴더, 프로젝트

    테스트 결과는 Security Command Center에 저장되거나 기록되��� 않습니다.

다음 단계