클라우드 제어 관리

규정 준수 관리자에는 프레임워크에 추가하고 환경에 배포할 수 있는 기본 제공 클라우드 컨트롤이 많이 포함되어 있습니다. 필요한 경우 자체 커스텀 클라우드 컨트롤을 만들고 관리하고 기본 제공 클라우드 컨트롤을 업데이트할 수 있습니다.

시작하기 전에

이 페이지의 남은 태스크를 수행하기 전에 먼저 다음 태스크를 수행하세요.

권한 설정

Google Cloud CLI 설정

Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

Cloud Shell 활성화

Google Cloud 콘솔 하단에 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

서비스 계정 가장 기능을 사용하여 사용자 인증 정보 대신 Google API에 인증하도록 gcloud CLI를 설정하려면 다음 명령어를 실행합니다.

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

자세한 내용은 서비스 계정 가장을 참고하세요.

클라우드 제어 보기

기본 제공 클라우드 컨트롤과 이미 만든 커스텀 클라우드 컨트롤을 보려면 다음 단계를 완료하세요.

콘솔

  1. Google Cloud 콘솔에서 규정 준수 페이지로 이동합니다.

    규정 준수로 이동

  2. 조직 또는 프로젝트를 선택합니다.

  3. 구성 탭에서 클라우드 제어를 클릭합니다. 사용 가능한 클라우드 컨트롤이 표시됩니다.

    대시보드에는 클라우드 컨트롤이 포함된 프레임워크와 클라우드 컨트롤이 적용된 리소스(조직, 폴더, 프로젝트) 수가 표시됩니다.

  4. 클라우드 제어에 대한 세부정보를 보려면 제어 이름을 클릭합니다.

CLI

특정 클라우드 제어에 관한 정보를 확인하거나 조직의 모든 클라우드 제어를 나열할 수 있습니다.

클라우드 제어에 대한 세부정보 보기

특정 클라우드 컨트롤에 대한 세부정보를 보려면 gcloud compliance-manager cloud-controls describe 명령어를 실행합니다.

gcloud compliance-manager cloud-controls describe CLOUD_CONTROL \
   --location=LOCATION \
   --organization=ORGANIZATION \
   [--major-revision-id=MAJOR_REVISION_ID]

다음 값을 바꿉니다.

  • CLOUD_CONTROL: 클라우드 컨트롤의 이름

  • ORGANIZATION: 조직 ID입니다.

  • LOCATION: 클라우드 컨트롤이 저장된 리전

  • MAJOR_REVISION_ID는 확인할 클라우드 제어 버전을 지정하는 선택적 플래그입니다. 플래그를 포함하지 않으면 최신 버전이 반환됩니다.

예를 들어 이름이 builtin-block-external-ip-addresses-for-vm-access이고 주요 버전 번호가 1인 클라우드 제어를 보려면 다음을 실행합니다.

gcloud compliance-manager cloud-controls describe \
   builtin-block-external-ip-addresses-for-vm-access \
   --organization=3589215982 \
   --location=global \
   --major-revision-id=1

자세한 내용은 gcloud compliance-manager cloud-controls describe를 참고하세요.

클라우드 제어 목록 가져오기

조직의 클라우드 컨트롤 목록을 가져오려면 gcloud compliance-manager cloud-controls list 명령어를 실행합니다.

gcloud compliance-manager cloud-controls list \
   --location=LOCATION \
   --organization=ORGANIZATION

다음 값을 바꿉니다.

  • ORGANIZATION: 조직 ID입니다.

  • LOCATION: 클라우드 컨트롤이 저장된 리전

예를 들어 조직 3589215982 내에 있고 전역 위치에 저장된 모든 클라우드 제어를 보려면 다음을 실행합니다.

gcloud compliance-manager cloud-controls list \
   --organization=3589215982 \
   --location=global

선택적 플래그에 대한 자세한 내용은 gcloud compliance-manager cloud-controls list를 참고하세요.

커스텀 클라우드 제어 만들기

맞춤 클라우드 제어를 만들 때 Cloud 애셋 인벤토리 리소스 유형에 규칙을 적용합니다.

콘솔

콘솔을 사용하는 경우 하나의 리소스 유형에 적용되는 하나의 규칙으로 커스텀 클라우드 컨트롤을 만들 수 있습니다.

  1. Google Cloud 콘솔에서 규정 준수 페이지로 이동합니다.

    규정 준수로 이동

  2. 조직 또는 프로젝트를 선택합니다.

  3. 구성 탭에서 클라우드 제어를 클릭합니다. 사용 가능한 클라우드 컨트롤 목록이 표시됩니다.

  4. Gemini 또는 수동으로 클라우드 제어를 만듭니다.

Gemini 사용하기

  1. Gemini에게 클라우드 제어를 생성해 달라고 요청합니다. 프롬프트에 따라 Gemini는 고유 식별자, 이름, 연결된 감지 로직, 가능한 수정 단계를 제공합니다.

  2. 권장사항을 검토하고 필요한 사항을 변경합니다.

  3. 커스텀 클라우드 제어를 저장합니다.

수동으로 만들기

  1. 클라우드 제어 ID에 컨트롤의 고유 식별자를 입력합니다.

  2. 조직의 사용자가 커스텀 클라우드 제어의 목적을 이해하는 데 도움이 되는 이름과 설명을 입력합니다.

  3. 선택사항: 컨트롤의 카테고리를 선택합니다. 계속을 클릭합니다.

  4. 커스텀 클라우드 제어에 사용할 수 있는 리소스 유형을 선택합니다. 규정 준수 관리자는 모든 리소스 유형을 지원합니다. 리소스 이름을 찾으려면 애셋 유형을 참고하세요.

  5. 클라우드 제어에 대한 감지 로직을 Common Expression Language (CEL) 형식으로 제공합니다.

    CEL 표현식을 사용하면 리소스의 속성을 평가하는 방법을 정의할 수 있습니다. 자세한 내용과 예시는 맞춤 클라우드 컨트롤을 위한 규칙 작성을 참고하세요. 계속을 클릭합니다.

    평가 규칙이 유효하지 않으면 오류가 표시됩니다.

  6. 적절한 발견 항목 심각도를 선택합니다.

  7. 조직의 이슈 대응자와 관리자가 클라우드 제어에 대한 모든 발견 항목을 해결할 수 있도록 해결 방법 안내를 작성합니다. 계속을 클릭합니다.

  8. 항목을 검토한 다음 만들기를 클릭합니다.

CLI

gcloud CLI를 사용하는 경우 최대 3개의 규칙이 있는 맞춤 클라우드 컨트롤을 만들 수 있습니다. 각 규칙은 하나의 리소스 유형에만 적용할 수 있습니다.

커스텀 클라우드 제어를 만들려면 gcloud compliance-manager cloud-controls create 명령어를 실행합니다.

gcloud compliance-manager cloud-controls create CLOUD_CONTROL \
   --location=LOCATION \
   --organization=ORGANIZATION \
   [--display-name=DISPLAY_NAME] \
   [--description=DESCRIPTION] \
   [--categories=[CATEGORIES,...]] \
   [--finding-category=FINDING_CATEGORY] \
   [--parameter-spec=[defaultValue=DEFAULTVALUE],[description=DESCRIPTION],[displayName=DISPLAYNAME],[isRequired=ISREQUIRED],[name=NAME],[substitutionRules=SUBSTITUTIONRULES],[validation=VALIDATION],[valueType=VALUETYPE]] \
   [--remediation-steps=REMEDIATION_STEPS] \
   [--rules=[celExpression=CELEXPRESSION],[description=DESCRIPTION],[ruleActionTypes=RULEACTIONTYPES]] \
   [--severity=SEVERITY] \
   [--supported-cloud-providers=[SUPPORTED_CLOUD_PROVIDERS,…]] \
   [--supported-target-resource-types=[SUPPORTED_TARGET_RESOURCE_TYPES,…]]

다음 값을 바꿉니다.

  • CLOUD_CONTROL: 클라우드 컨트롤의 고유한 영숫자 이름

  • ORGANIZATION: 조직 ID입니다.

  • LOCATION: 클라우드 컨트롤이 저장된 리전

  • DISPLAY_NAME: 클라우드 컨트롤의 인간이 읽을 수 있는 이름

  • DESCRIPTION: 클라우드 컨트롤의 목적에 대한 설명(선택사항)

  • CATEGORIES,…: 클라우드 제어가 속한 카테고리를 정의하는 선택적 매개변수입니다. 허용되는 카테고리 목록은 gcloud compliance-manager cloud-controls create를 참고하세요.

  • FINDING_CATEGORY: 클라우드 컨트롤에서 발견 사항을 생성할 때 Security Command Center 발견 사항 대시보드에 표시되는 값입니다.

  • --parameter-spec=[defaultValue=DEFAULTVALUE], \
     [description=DESCRIPTION], \
     [displayName= DISPLAYNAME], \
     [isRequired=ISREQUIRED], \
     [name=NAME], \
     [substitutionRules=SUBSTITUTIONRULES], \
     [validation=VALIDATION], \
     [valueType=VALUETYPE]...]
    

    다음 형식의 클라우드 제어를 위한 선택적 매개변수 정보입니다.

    • DEFAULTVALUE: 사용자가 프레임워크를 배포할 때 매개변수를 맞춤설정하지 않는 경우 적용되는 데이터입니다. 지원되는 값 유형은 boolValue, numberValue, stringListValue, stringValue입니다.

    • DESCRIPTION: 컨트롤에 대한 설명(선택사항)

    • ISREQUIRED: 컨트롤에 파라미터 설정이 필요한 경우 true

    • NAME: 매개변수 이름

    • SUBSTITUTIONRULES: 규정 준수 관리자가 매개변수의 맞춤 값을 삽입하는 방법과 위치입니다. 프로토 점 표기법 (예: rules[0].org_policy_constraint...)을 사용하여 규칙 내에서 타겟팅된 경로를 지정합니다. 다음 옵션 중 하나를 선택합니다.

      • attributeSubstitutionRule 규칙의 구조적 필드에 매개변수 값을 직접 삽입하려는 경우 (예: 조직 정책 제약 조건 규칙 템플릿 내 제한된 값 목록 채우기)

      • 규칙에서 텍스트 문자열 (또는 CEL 표현식)을 사용하는 경우 placeholderSubstitutionRule 문자열에는 $ 접두사가 붙은 자리표시자 변수 (예: $deniedServices)가 포함되어야 하며 이 규칙은 컴파일러에 매개변수를 해당 자리표시자에 매핑하도록 지시합니다.

      다음 예에서는 STRINGLIST 유형으로 deniedServices라는 목록 매개변수를 만듭니다. 배포 시 attributeSubstitutionRule를 사용하여 사용자 제공 서비스 이름 (예: compute.googleapis.com)을 구조적 맞춤 조직 정책 규칙(denied_values)에 직접 추가합니다.

      --parameter-spec='name=deniedServices,isRequired=true,valueType=STRINGLIST,substitutionRules=[{attributeSubstitutionRule={attribute="rules[0].org_policy_constraint.policy_rules[0].values.denied_values"}}]'
    • VALIDATION은 허용된 값의 집합입니다. 다음 옵션 중 하나를 선택하세요.

      • allowedValues를 사용하여 정적 허용 목록을 적용합니다. 예를 들어 위치 매개변수를 특정 문자열 필드로 제한합니다. validation={allowedValues={values=[{stringValue=us-central1},{stringValue=us-west1}]}}

      • intRange를 사용하여 정수에 숫자 범위를 적용합니다. 예를 들어 1~365 사이의 보관 기간을 설정합니다. validation={intRange={min=1,max=365}}

      • regexpPattern를 사용하여 문자열 텍스트에 정규 표현식 일치를 적용합니다. 예를 들어 엄격한 영숫자 이름 지정이 필요합니다. validation={regexpPattern={pattern="^[a-z][-a-z0-9]*$"}}

    • VALUETYPE: 사용자가 이 매개변수에 제공하는 값의 데이터 유형 또는 형식입니다. 지원되는 값 유형은 STRING, BOOLEAN, STRINGLIST, NUMBER, ONEOF입니다.

    또는 매개변수를 정의하는 JSON 또는 YAML 파일을 지정할 수 있습니다. 예를 들면 --parameter-spec=path_to_file.(yaml|json)입니다. 다음 섹션을 펼쳐 JSON 및 YAML 파일의 예를 확인하세요.

    JSON 파일 예

      [
        {
          "name": "deniedServices",
          "displayName": "Services Requiring CMEK",
          "description": "List of service names that must use Customer-Managed Encryption Keys.",
          "isRequired": true,
          "valueType": "STRINGLIST",
          "substitutionRules": [
            {
              "attributeSubstitutionRule": {
                "attribute": "rules[0].org_policy_constraint.policy_rules[0].values.denied_values"
              }
            }
          ]
        }
      ]
          

    YAML 파일 예시

      - name: deniedServices
        displayName: "Services Requiring CMEK"
        description: "List of service names that must use Customer-Managed Encryption Keys."
        isRequired: true
        valueType: STRINGLIST
        substitutionRules:
        - attributeSubstitutionRule:
            attribute: "rules[0].org_policy_constraint.policy_rules[0].values.denied_values"
          
  • REMEDIATION_STEPS: 발견된 문제를 해결하는 데 필요한 단계입니다. 이 문자열은 400자로 제한됩니다.

  • --rules=[celExpression=CELEXPRESSION],[description=DESCRIPTION],[ruleActionTypes=RULEACTIONTYPES]은 시행하려는 규칙으로, 형식은 다음과 같습니다.

    • CELEXPRESSION: 규칙의 Common Expression Language (CEL) 표현식입니다. CEL 표현식 작성에 대한 자세한 내용은 커스텀 클라우드 제어 규칙 작성을 참고하세요. 포함 사항:

      • expression: CEL 표현식(최대 1, 000자(영문 기준))

      • resourceTypesValues: 리소스의 이름이며 형식은 SERVICE_NAME/type입니다. values 배열을 사용하여 규칙을 적용할 모든 리소스 유형을 나열합니다(예: values=[compute.googleapis.com/Instance]).

    • DESCRIPTION: 규칙에 대한 설명

    • RULEACTIONTYPES: 규칙이 실행하는 작업입니다. 지원되는 값은 rule-action-type-detective, rule-action-type-preventive, rule-action-type-audit입니다.

    예를 들어 Cloud Key Management Service 키 순환 기간을 확인하려면 다음을 입력합니다.

    --rules="[
      {
        \"celExpression\": {
          \"expression\": \"has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')\",
          \"resourceTypesValues\": {
            \"values\": [
              \"cloudkms.googleapis.com/CryptoKey\"
            ]
          }
        },
        \"description\": \"Check KMS key rotation period\",
        \"ruleActionTypes\": [
          \"rule-action-type-detective\"
        ]
      }
    ]"
    

    또는 규칙을 정의하는 JSON 또는 YAML 파일을 지정할 수 있습니다. 예를 들면 --rules=path_to_file.(yaml|json)입니다. 다음 섹션을 펼쳐 JSON 및 YAML 파일의 예를 확인하세요.

    JSON 파일 예

      [
        {
          "celExpression": {
            "expression": "has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')",
            "resourceTypesValues": {
              "values": [
                "cloudkms.googleapis.com/CryptoKey"
              ]
            }
          },
          "description": "Check KMS key rotation period to ensure it is under 60 hours.",
          "ruleActionTypes": [
            "rule-action-type-detective"
          ]
        }
      ]
          

    YAML 파일 예시

      - celExpression:
          expression: "has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')"
          resourceTypesValues:
            values:
            - cloudkms.googleapis.com/CryptoKey
        description: "Check KMS key rotation period to ensure it is under 60 hours."
        ruleActionTypes:
        - rule-action-type-detective
          
  • SEVERITY: 클라우드 컨트롤의 중요도 수준입니다. 지원되는 값은 critical, high, medium, low입니다.

  • SUPPORTED_CLOUD_PROVIDERS,…: 이 클라우드 컨트롤이 적용되는 클라우드 제공업체입니다. 지원 값은 gcp입니다.

  • SUPPORTED_TARGET_RESOURCE_TYPES,…: 클라우드 컨트롤이 지원하는 리소스 유형(조직, 폴더, 프로젝트 또는 App Hub의 앱 지원 폴더)입니다. 지원되는 값은 target-resource-crm-type-folder, target-resource-crm-type-org, target-resource-crm-type-project, target-resource-type-application입니다.

예를 들어 리소스 위치를 적용하는 클라우드 컨트롤을 만들려면 다음 명령어를 실행합니다.

  gcloud compliance-manager cloud-controls create \
     restrict-resource-locations \
     --organization=3589215982 \
     --location=global \
     --display-name="Restrict Resource Locations" \
     --description="Enforces checks to ensure resources are only deployed in approved cloud regions." \
     --severity=high \
     --finding-category="LOCATION_VIOLATION" \
     --supported-cloud-providers="gcp" \
     --supported-target-resource-types="target-resource-crm-type-project" \
     --parameter-spec='name=allowedLocations,isRequired=true,valueType=STRINGLIST,substitutionRules=[{placeholderSubstitutionRule={attribute="rules[0].cel_expression.expression"}}]' \
     --rules="[{\"celExpression\": {\"expression\": \"resource.location in \$allowedLocations\", \"resourceTypesValues\": {\"values\": [\"compute.googleapis.com/Instance\"]}}, \"description\": \"Check Compute Engine instance locations\", \"ruleActionTypes\": [\"rule-action-type-detective\"]}]"

동일한 컨트롤을 만들지만 YAML 파일을 사용하여 매개변수와 규칙을 정의하려면 다음을 실행합니다.

     gcloud compliance-manager cloud-controls create \
     restrict-resource-locations \
     --organization=3589215982 \
     --location=global \
     --display-name="Restrict Resource Locations" \
     --description="Enforces checks to ensure resources are only deployed in approved cloud regions." \
     --severity=high \
     --finding-category="LOCATION_VIOLATION" \
     --supported-cloud-providers="gcp" \
     --supported-target-resource-types="target-resource-crm-type-project" \
     --parameter-spec=parameters.yaml \
     --rules=rules.yaml

자세한 내용은 gcloud compliance-manager cloud-controls create를 참고하세요.

Terraform

Terraform을 사용하는 경우 최대 3개의 규칙이 있는 맞춤 클라우드 컨트롤을 만들 수 있습니다. 각 규칙은 하나의 리소스 유형에만 적용할 수 있습니다.

다음 샘플은 Terraform을 사용하여 맞춤 클라우드 컨트롤을 만드는 방법을 보여줍니다.

resource "google_cloud_security_compliance_cloud_control" "example" {
  organization        = "123456789"
  location            = "global"
  cloud_control_id    = "example-cloudcontrol"

  display_name      = "TF test CloudControl Name"
  description       = "A test cloud control for security compliance"
  categories        = ["CC_CATEGORY_INFRASTRUCTURE"]
  severity          = "HIGH"
  finding_category  = "SECURITY_POLICY"
  remediation_steps = "Review and update the security configuration according to best practices."

  supported_cloud_providers        = ["GCP"]

  rules {
    description         = "Ensure compute instances have secure boot enabled"
    rule_action_types   = ["RULE_ACTION_TYPE_DETECTIVE"]

    cel_expression {
      expression = "resource.data.shieldedInstanceConfig.enableSecureBoot == true"
      resource_types_values {
        values = ["compute.googleapis.com/Instance"]
      }
    }
  }

  parameter_spec {
    name         = "location"
    display_name = "Resource Location"
    description  = "The location where the resource should be deployed"
    value_type   = "STRING"
    is_required  = true

    default_value {
      string_value = "us-central1"
    }

    validation {
      regexp_pattern {
        pattern = "^[a-z]+-[a-z]+[0-9]$"
      }
    }
  }

  parameter_spec {
    name         = "enable_secure_boot"
    display_name = "Enable Secure Boot"
    description  = "Whether to enable secure boot for instances"
    value_type   = "BOOLEAN"
    is_required  = true

    default_value {
      bool_value = true
    }

    substitution_rules {
      attribute_substitution_rule {
        attribute = "rules[0].cel_expression.expression"
      }
    }

    validation {
      allowed_values {
        values {
          bool_value = true
        }
      }
    }
  }

  parameter_spec {
    name         = "max_instances"
    display_name = "Maximum Instances"
    description  = "Maximum number of instances allowed"
    value_type   = "NUMBER"
    is_required  = false

    default_value {
      number_value = 10
    }

    substitution_rules {
      placeholder_substitution_rule {
        attribute = "rules[0].description"
      }
    }

    validation {
      int_range {
        min = "1"
        max = "100"
      }
    }
  }

  parameter_spec {
    name         = "allowed_regions"
    display_name = "Allowed Regions"
    description  = "List of regions where resources can be deployed"
    value_type   = "STRINGLIST"
    is_required  = true

    default_value {
      string_list_value {
        values = ["us-central1", "us-east1", "us-west1"]
      }
    }

    validation {
      allowed_values {
        values {
          string_list_value {
            values = ["us-central1", "us-east1"]
          }
        }
        values {
          string_list_value {
            values = ["us-west1", "us-west2"]
          }
        }
      }
    }
  }

  parameter_spec {
    name         = "environment_type"
    display_name = "Environment Type"
    description  = "The type of environment"
    value_type   = "STRING"
    is_required  = true

    default_value {
      string_value = "production"
    }

    validation {
      allowed_values {
        values {
          string_value = "production"
        }
        values {
          string_value = "staging"
        }
        values {
          number_value = 1
        }
      }
    }
  }
}

커스텀 클라우드 제어 수정

클라우드 컨트롤을 만든 후 이름, 설명, 규칙, 수정 단계, 심각도 수준을 변경할 수 있습니다. 클라우드 제어 카테고리는 변경할 수 없습니다.

  1. Google Cloud 콘솔에서 규정 준수 페이지로 이동합니다.

    규정 준수로 이동

  2. 조직 또는 프로젝트를 선택합니다.

  3. 구성 탭에서 클라우드 제어를 클릭합니다. 사용 가능한 클라우드 컨트롤 목록이 표시됩니다.

  4. 수정하려는 클라우드 제어를 클릭합니다.

  5. 클라우드 컨트롤 세부정보 페이지에서 클라우드 컨트롤이 프레임워크에 포함되어 있지 않은지 확인합니다. 필요한 경우 프레임워크를 수정하여 클라우드 제어를 삭제합니다.

  6. 수정을 클릭합니다.

  7. 맞춤 클라우드 제어 수정 페이지에서 필요에 따라 이름과 설명을 변경합니다. 계속을 클릭합니다.

  8. 규칙, 발견 사항 심각도, 해결 단계를 업데이트합니다. 계속을 클릭합니다.

  9. 변경사항을 검토하고 저장을 클릭합니다.

내장 클라우드 제어를 최신 버전으로 업데이트

Google은 서비스에서 새로운 기능을 배포하거나 새로운 권장사항이 등장할 때 기본 제공 클라우드 컨트롤에 대한 정기 업데이트를 게시합니다. 업데이트에는 새로운 컨트롤 또는 기존 컨트롤의 변경사항이 포함될 수 있습니다.

구성 탭의 클라우드 컨트롤 대시보드 또는 클라우드 컨트롤 세부정보 페이지에서 기본 제공 클라우드 컨트롤의 출시를 확인할 수 있습니다.

다음 항목이 업데이트되면 출시 노트에 알림이 표시됩니다.

  • 클라우드 제어 이름
  • 발견 항목 카테고리
  • 규칙의 탐지 또는 예방 로직 변경
  • 규칙의 기본 로직

알림을 받은 후 클라우드 제어를 업데이트하려면 클라우드 제어가 포함된 프레임워크를 할당 해제하고 다시 배포해야 합니다. 자세한 내용은 프레임워크를 최신 버전으로 업데이트를 참고하세요.

맞춤 클라우드 제어 삭제

더 이상 필요하지 않은 클라우드 제어를 삭제합니다. 직접 만든 클라우드 제어만 삭제할 수 있습니다. 기본 제공 클라우드 제어는 삭제할 수 없습니다.

콘솔

  1. Google Cloud 콘솔에서 규정 준수 페이지로 이동합니다.

    규정 준수로 이동

  2. 조직 또는 프로젝트를 선택합니다.

  3. 구성 탭에서 클라우드 제어를 클릭합니다. 사용 가능한 클라우드 컨트롤 목록이 표시됩니다.

  4. 삭제하려는 클라우드 컨트롤을 클릭합니다.

  5. 클라우드 컨트롤 세부정보 페이지에서 클라우드 컨트롤이 프레임워크에 포함되어 있지 않은지 확인합니다. 필요한 경우 프레임워크를 수정하여 클라우드 제어를 삭제합니다.

  6. 삭제를 클릭합니다.

  7. 삭제 창에서 메시지를 검토합니다. Delete를 입력하고 확인을 클릭합니다.

CLI

커스텀 클라우드 제어를 삭제하려면 gcloud compliance-manager cloud-controls delete 명령어를 실행합니다.

gcloud compliance-manager cloud-controls delete CLOUD_CONTROL \
   --location=LOCATION \
   --organization=ORGANIZATION

다음 값을 바꿉니다.

  • CLOUD_CONTROL: 클라우드 컨트롤의 이름

  • ORGANIZATION: 조직 ID입니다.

  • LOCATION: 클라우드 컨트롤이 저장된 리전

예를 들어 이름이 restrict-resource-locations인 클라우드 제어를 삭제하려면 다음을 실행합니다.

gcloud compliance-manager cloud-controls delete \
   restrict-resource-locations \
   --organization=3589215982 \
   --location=global

자세한 내용은 gcloud compliance-manager cloud-controls delete를 참고하세요.

Security Health Analytics 감지기를 클라우드 컨트롤에 매핑

다음 표에서는 규정 준수 관리자 클라우드 컨트롤이 Security Health Analytics 감지기에 매핑되는 방식을 보여줍니다.

Security Health Analytics의 발견 항목 카테고리 규정 준수 관리자의 클라우드 컨트롤 이름

ACCESS_TRANSPARENCY_DISABLED

액세스 투명성 사용 설정

ADMIN_SERVICE_ACCOUNT

서비스 계정의 관리자 역할 차단

ALLOWED_INGRESS_ORG_POLICY

Cloud Run 조직 정책 제약 조건에 허용된 인그레스 설정 구성

ALLOWED_VPC_EGRESS_ORG_POLICY

Cloud Run 조직 정책 제약 조건의 허용된 VPC 이그레스 설정 구성

ALLOYDB_AUTO_BACKUP_DISABLED

클러스터에서 AlloyDB 자동 백업 사용 설정

ALLOYDB_BACKUPS_DISABLED

클러스터에서 AlloyDB 백업 사용 설정

ALLOYDB_CMEK_DISABLED

AlloyDB 클러스터에 CMEK 사용 설정

ALLOYDB_LOG_ERROR_VERBOSITY

AlloyDB 인스턴스의 로그 오류 세부정보 수준 플래그 설정

ALLOYDB_LOG_MIN_ERROR_STATEMENT_SEVERITY

AlloyDB 인스턴스의 로그 최소 오류 문 플래그 설정

ALLOYDB_LOG_MIN_MESSAGES

AlloyDB 인스턴스의 로그 최소 메시지 플래그 설정

ALLOYDB_PUBLIC_IP

AlloyDB 클러스터 인스턴스의 공개 IP 주소 차단

ALPHA_CLUSTER_ENABLED

GKE 클러스터에서 알파 기능 사용 중지

API_KEY_APPS_UNRESTRICTED

필수 API에만 API 키 제한

API_KEY_EXISTS

사용 불가

API_KEY_NOT_ROTATED

API 키 순환 필요

AUDIT_CONFIG_NOT_MONITORED

감사 로깅 변경사항에 대한 로그 측정항목 및 알림 구성

AUDIT_LOGGING_DISABLED

Google Cloud 서비스의 이벤트 로깅 구현

AUTO_BACKUP_DISABLED

Cloud SQL 데이터베이스의 자동 백업 사용 설정

AUTO_REPAIR_DISABLED

GKE 클러스터의 자동 복구 사용 설정

AUTO_UPGRADE_DISABLED

GKE 클러스터에서 자동 업그레이드 사용 설정

BIGQUERY_TABLE_CMEK_DISABLED

BigQuery 테이블의 CMEK 사용 설정

BINARY_AUTHORIZATION_DISABLED

클러스터에서 Binary Authorization 요구

BUCKET_CMEK_DISABLED

Cloud Storage 버킷에 CMEK 사용 설정

BUCKET_IAM_NOT_MONITORED

Cloud Storage IAM 정책 변경사항에 대한 로그 측정항목 및 알림 구성

BUCKET_LOGGING_DISABLED

Cloud Storage 버킷 로깅 필요

BUCKET_POLICY_ONLY_DISABLED

Cloud Storage 버킷에서 균일한 버킷 수준 액세스 사용 설정

CLOUD_ASSET_API_DISABLED

Cloud 애셋 인벤토리 서비스 사용 설정

CLUSTER_LOGGING_DISABLED

GKE 클러스터에서 Cloud Logging 사용 설정

CLUSTER_MONITORING_DISABLED

GKE 클러스터에서 Cloud Monitoring 사용 설정

CLUSTER_PRIVATE_GOOGLE_ACCESS_DISABLED

인스턴스에서 비공개 Google 액세스 사용 설정

CLUSTER_SECRETS_ENCRYPTION_DISABLED

GKE 클러스터에서 암호화 사용 설정

CLUSTER_SHIELDED_NODES_DISABLED

클러스터에서 보안 GKE 노드 사용 설정

COMPUTE_PROJECT_WIDE_SSH_KEYS_ALLOWED

Compute Engine 인스턴스에서 프로젝트 전체 SSH 키 차단

COMPUTE_SECURE_BOOT_DISABLED

Compute Engine 인스턴스에서 보안 부팅 사용 설정

COMPUTE_SERIAL_PORTS_ENABLED

Compute Engine 인스턴스의 직렬 포트 차단

CONFIDENTIAL_COMPUTING_DISABLED

Compute Engine 인스턴스에 컨피덴셜 컴퓨팅 사용 설정

COS_NOT_USED

GKE 클러스터에 Container-Optimized OS 필요

CUSTOM_ORG_POLICY_VIOLATION

사용 불가

CUSTOM_ROLE_NOT_MONITORED

커스텀 역할 변경사항에 대한 로그 측정항목 및 알림 구성

DATAPROC_CMEK_DISABLED

Dataproc 클러스터에 CMEK 필요

DATAPROC_IMAGE_OUTDATED

Dataproc 클러스터에서 최신 이미지 버전 사용

DATASET_CMEK_DISABLED

BigQuery 데이터 세트에 대해 CMEK 사용 설정

DEFAULT_NETWORK

맞춤 방화벽 규칙이 있는 네트워크 사용

DEFAULT_SERVICE_ACCOUNT_USED

Compute Engine 인스턴스에 커스텀 서비스 계정 사용

DISABLE_VPC_EXTERNAL_IP_V6_ORG_POLICY

VPC 외부 IPv6 사용 중지 조직 정책 구성

DISABLE_VPC_INTERNAL_IP_V6_ORG_POLICY

VPC 외부 IPv6 사용 중지 조직 정책 구성

DISABLED_SERIAL_PORT_ACCESS_ORG_POLICY

Stackdriver에 VM 직렬 포트 로깅 사용 중지 조직 정책 구성

DISK_CMEK_DISABLED

Compute Engine 영구 디스크에서 CMEK 사용 설정

DISK_CSEK_DISABLED

Compute Engine 영구 디스크에서 CSEK 사용 설정

DNS_LOGGING_DISABLED

Cloud DNS 로그 모니터링 사용 설정

DNSSEC_DISABLED

Cloud DNS에 DNSSEC 사용 설정

EGRESS_DENY_RULE_NOT_SET

모든 이그레스 방화벽 규칙 거부 적용

ESSENTIAL_CONTACTS_NOT_CONFIGURED

필수 연락처 정의

FIREWALL_NOT_MONITORED

VPC 네트워크 방화벽 변경사항에 대한 로그 측정항목 및 알림 구성

FIREWALL_RULE_LOGGING_DISABLED

방화벽 규칙 로깅 사용 설정

FLOW_LOGS_DISABLED

VPC 서브넷의 흐름 로그 사용 설정

FULL_API_ACCESS

Compute Engine 인스턴스의 Google Cloud API에 대한 API 액세스 제한

HTTP_LOAD_BALANCER

HTTPS 트래픽만 적용

INCORRECT_BQ4G_SERVICE_PERIMETER

VPC 서비스 제어에서 서비스 경계 정의

INSTANCE_OS_LOGIN_DISABLED

OS 로그인 사용 설정

INTEGRITY_MONITORING_DISABLED

GKE 클러스터에서 무결성 모니터링 사용 설정

INTRANODE_VISIBILITY_DISABLED

GKE 클러스터의 노드 내 가시성 사용 설정

IP_ALIAS_DISABLED

GKE 클러스터의 IP 별칭 범위 사용 설정

IP_FORWARDING_ENABLED

Compute Engine 인스턴스에서 IP 전달 방지

KMS_KEY_NOT_ROTATED

Cloud KMS 키의 순환 기간 정의

KMS_PROJECT_HAS_OWNER

사용 불가

KMS_PUBLIC_KEY

사용 불가

KMS_ROLE_SEPARATION

직무 분리 시행

LEGACY_AUTHORIZATION_ENABLED

GKE 클러스터에서 기존 승인 차단

LEGACY_METADATA_ENABLED

Compute Engine에서 기존 메타데이터 서버 엔드포인트 사용 중지

LEGACY_NETWORK

이전 네트워크 사용 안 함

LOAD_BALANCER_LOGGING_DISABLED

부하 분산기 로깅 사용 설정

LOCKED_RETENTION_POLICY_NOT_SET

스토리지 버킷 보관 정책 잠금

LOG_NOT_EXPORTED

로그 싱크 구성

MASTER_AUTHORIZED_NETWORKS_DISABLED

GKE 클러스터에서 컨트롤 플레인 승인 네트워크 사용 설정

MFA_NOT_ENFORCED

사용 불가

NETWORK_NOT_MONITORED

VPC 네트워크 변경사항에 대한 로그 측정항목 및 알림 구성

NETWORK_POLICY_DISABLED

GKE 클러스터에서 네트워크 정책 사용 설정

NODEPOOL_BOOT_CMEK_DISABLED

GKE 노드 풀 부팅 디스크에서 CMEK 사용 설정

NODEPOOL_SECURE_BOOT_DISABLED

보안 GKE 노드에 보안 부트 사용 설정

NON_ORG_IAM_MEMBER

사용 불가

OBJECT_VERSIONING_DISABLED

버킷에서 객체 버전 관리 사용 설정

OPEN_CASSANDRA_PORT

모든 IP 주소에서 Cassandra 포트로의 연결 차단

OPEN_CISCOSECURE_WEBSM_PORT

모든 IP 주소에서 CiscoSecure/WebSM 포트로의 연결 차단

OPEN_DIRECTORY_SERVICES_PORT

모든 IP 주소에서 디렉터리 서비스 포트로의 연결 차단

OPEN_DNS_PORT

모든 IP 주소에서 DNS 포트로의 연결 차단

OPEN_ELASTICSEARCH_PORT

모든 IP 주소에서 Elasticsearch 포트로의 연결 차단

OPEN_FIREWALL

사용 불가

OPEN_FTP_PORT

모든 IP 주소에서 FTP 포트로의 연결 차단

OPEN_GROUP_IAM_MEMBER

사용 불가

OPEN_HTTP_PORT

모든 IP 주소에서 HTTP 포트로의 연결 차단

OPEN_LDAP_PORT

모든 IP 주소에서 LDAP 포트로의 연결 차단

OPEN_MEMCACHED_PORT

모든 IP 주소에서 Memcached 포트로의 연결 차단

OPEN_MONGODB_PORT

모든 IP 주소에서 MongoDB 포트로의 연결 차단

OPEN_MYSQL_PORT

모든 IP 주소에서 MySQL 포트로의 연결 차단

OPEN_NETBIOS_PORT

모든 IP 주소에서 NetBIOS 포트로의 연결 차단

OPEN_ORACLEDB_PORT

모든 IP 주소에서 Oracle 데이터베이스 포트로의 연결 차단

OPEN_POP3_PORT

모든 IP 주소에서 POP3 서버 포트로의 연결 차단

OPEN_POSTGRESQL_PORT

모든 IP 주소에서 PostgreSQL 서버 포트로의 연결 차단

OPEN_RDP_PORT

RDP 포트 액세스 차단

OPEN_REDIS_PORT

모든 IP 주소에서 Redis 서버 포트로의 연결 차단

OPEN_SMTP_PORT

모든 IP 주소에서 SMTP 서버 포트로의 연결 차단

OPEN_SSH_PORT

SSH 포트 액세스 차단

OPEN_TELNET_PORT

모든 IP 주소에서 텔넷 서버 포트로의 연결 차단

ORG_POLICY_CONFIDENTIAL_VM_POLICY

컨피덴셜 VM 조직 정책 제약 조건 사용 설정

OS_LOGIN_DISABLED

프로젝트 수준에서 모든 인스턴스에 OS 로그인 사용 설정

OVER_PRIVILEGED_ACCOUNT

GKE 클러스터에 최소 권한 서비스 계정 사용

OVER_PRIVILEGED_SCOPES

제한된 서비스 계정 액세스 범위로 GKE 클러스터 만들기

OVER_PRIVILEGED_SERVICE_ACCOUNT_USER

서비스 계정의 관리자 역할 차단

OWNER_NOT_MONITORED

사용 불가

POD_SECURITY_POLICY_DISABLED

사용 불가

PRIMITIVE_ROLES_USED

기존 IAM 역할 제한

PRIVATE_CLUSTER_DISABLED

GKE용 비공개 클러스터 사용 설정

PRIVATE_GOOGLE_ACCESS_DISABLED

VPC 서브넷에 비공개 Google 액세스 사용 설정

PUBLIC_BUCKET_ACL

Cloud Storage 버킷에 대한 공개 액세스 제한

PUBLIC_COMPUTE_IMAGE

컴퓨트 이미지에 대한 공개 액세스 제한

PUBLIC_DATASET

BigQuery 데이터 세트에 대한 공개 액세스 제한

PUBLIC_IP_ADDRESS

Compute Engine 인스턴스로 공개 IP 주소 제한

PUBLIC_LOG_BUCKET

Cloud Storage 버킷에 대한 공개 액세스 제한

PUBLIC_SQL_INSTANCE

Cloud SQL 데이터베이스 인스턴스에 대한 공개 액세스 제한

PUBSUB_CMEK_DISABLED

CMEK로 Pub/Sub 주제 암호화

QL_LOG_STATEMENT_STATS_ENABLED

PostgreSQL의 로그 문 플래그 사용 설정

REDIS_ROLE_USED_ON_ORG

사용 불가

RELEASE_CHANNEL_DISABLED

GKE 클러스터를 출시 채널에 구독

REQUIRE_OS_LOGIN_ORG_POLICY

OS 로그인 사용 설정

REQUIRE_VPC_CONNECTOR_ORG_POLICY

Cloud Run Functions의 VPC 커넥터 이그레스 정의

RESTRICT_AUTHORIZED_NETWORKS_ORG_POLICY

Cloud SQL 인스턴스의 승인된 네트워크 제한 조직 정책 제약조건 사용 설정

ROUTE_NOT_MONITORED

VPC 경로 변경사항에 대한 로그 측정항목 및 알림 구성

RSASHA1_FOR_SIGNING

DNSSEC 서명에 RSASHA1 사용하지 않기

S3_BUCKET_ACCESS_LOGGING_ENABLED_CLOUDTRAIL_S3_BUCKET

사용 불가

S3_BUCKETS_CONFIGURED_BLOCK_PUBLIC_ACCESS_BUCKET_AND_ACCOUNT_SETTINGS

사용 불가

SERVICE_ACCOUNT_KEY_NOT_ROTATED

서비스 계정 키 순환 필요

SERVICE_ACCOUNT_ROLE_SEPARATION

직무 분리 시행

SHIELDED_VM_DISABLED

Compute Engine 인스턴스에 보안 VM 사용 설정

SKIP_DEFAULT_NETWORK_CREATION_ORG_POLICY

Compute Engine 인스턴스의 기본 네트워크 생성 제한

SQL_CMEK_DISABLED

Cloud SQL 데이터베이스에 CMEK 사용 설정

SQL_CONTAINED_DATABASE_AUTHENTICATION

SQL Server의 포함된 데이터베이스 인증 플래그 사용 중지

SQL_CROSS_DB_OWNERSHIP_CHAINING

SQL Server의 교차 데이터베이스 소유권 체이닝 플래그 사용 중지

SQL_EXTERNAL_SCRIPTS_ENABLED

SQL Server의 외부 스크립트 플래그 사용 중지

SQL_INSTANCE_NOT_MONITORED

Cloud SQL 구성 변경사항에 대한 로그 측정항목 및 알림 구성

SQL_LOCAL_INFILE

MySQL의 Local Infile 플래그 사용 중지

SQL_LOG_CHECKPOINTS_DISABLED

PostgreSQL의 로그 체크포인트 플래그 사용 설정

SQL_LOG_CONNECTIONS_DISABLED

PostgreSQL의 연결 로깅 플래그 사용 설정

SQL_LOG_DISCONNECTIONS_DISABLED

PostgreSQL의 연결 해제 로깅 플래그 사용 설정

SQL_LOG_DURATION_DISABLED

PostgreSQL 인스턴스의 로그 기간 플래그 사용 설정

SQL_LOG_ERROR_VERBOSITY

PostgreSQL의 로그 오류 상세도 플래그 사용 설정

SQL_LOG_EXECUTOR_STATS_ENABLED

PostgreSQL의 로그 실행자 통계 플래그 사용 중지

SQL_LOG_HOSTNAME_ENABLED

PostgreSQL의 로그 호스트 이름 플래그 사용 중지

SQL_LOG_LOCK_WAITS_DISABLED

PostgreSQL 인스턴스에 대한 로그 잠금 대기 플래그 사용 설정

SQL_LOG_MIN_DURATION_STATEMENT_ENABLED

PostgreSQL의 로그 최소 시간 문 플래그 사용 중지

SQL_LOG_MIN_ERROR_STATEMENT_SEVERITY

PostgreSQL의 로그 최소 오류 문 플래그 사용 설정

SQL_LOG_MIN_ERROR_STATEMENT_SEVERITY

사용 불가

SQL_LOG_MIN_MESSAGE

PostgreSQL의 Log Min Messages 플래그 사용 설정

SQL_LOG_PARSER_STATS_ENABLED

PostgreSQL의 로그 파서 통계 플래그 사용 중지

SQL_LOG_PLANNER_STATS_ENABLED

PostgreSQL의 로그 플래너 통계 플래그 사용 중지

SQL_LOG_STATEMENT

PostgreSQL의 로그 문 플래그 사용 설정

SQL_LOG_TEMP_FILES

PostgreSQL 인스턴스에 대해 임시 파일 로깅 플래그 사용 설정

SQL_NO_ROOT_PASSWORD

사용 불가

SQL_PUBLIC_IP

Cloud SQL 인스턴스의 공개 IP 주소 차단

SQL_REMOTE_ACCESS_ENABLED

SQL Server의 원격 액세스 플래그 사용 중지

SQL_SCANNER

AlloyDB 인스턴스에서 SSL 암호화 사용 설정

SQL_SKIP_SHOW_DATABASE_DISABLED

MySQL의 데이터베이스 표시 건너뛰기 플래그 사용 설정

SQL_TRACE_FLAG_3625

SQL Server의 3625 추적 데이터베이스 플래그 사용 설정

SQL_USER_CONNECTIONS_CONFIGURED

SQL Server에 사용자 연결 플래그를 사용하지 않음

SQL_USER_OPTIONS_CONFIGURED

SQL Server에 사용자 옵션 플래그를 사용하지 않음

SQL_WEAK_ROOT_PASSWORD

사용 불가

SSL_NOT_ENFORCED

모든 수신 데이터베이스 연결에 SSL 적용

TOO_MANY_KMS_USERS

KMS 암호화 키 사용자 수를 3명으로 제한

UNIFORM_BUCKET_LEVEL_ACCESS_ORG_POLICY

Cloud Storage 버킷에서 균일한 버킷 수준 액세스 사용 설정

USER_MANAGED_SERVICE_ACCOUNT_KEY

사용자 관리 서비스 계정 키 제한

VPC_FLOW_LOGS_SETTINGS_NOT_RECOMMENDED

사용 불가

WEAK_SSL_POLICY

Compute Engine 인스턴스의 보안되지 않은 SSL 정책 제한

WEB_UI_ENABLED

Kubernetes 웹 UI를 사용하지 않음

WORKLOAD_IDENTITY_DISABLED

클러스터에 GKE용 워크로드 아이덴티티 제휴 사용 설정

다음 단계