PolicySet

Policy 리소스 그룹(1개 이상)

JSON 표현
{
  "policySetId": string,
  "description": string,
  "policies": [
    {
      object (Policy)
    }
  ]
}
필드
policySetId

string

필수 입력란입니다. 정책 집합의 식별자입니다.

description

string

선택사항입니다. 정책 집합에 대한 설명입니다.

policies[]

object (Policy)

필수 입력란입니다. 정책 세트의 Policy 리소스입니다.

각 정책에는 정책 세트 내에서 고유한 policyId가 있어야 합니다.

정책

정책에 포함된 제약 조건을 포함한 정책의 세부정보입니다.

JSON 표현
{
  "policyId": string,
  "complianceStandards": [
    {
      object (ComplianceStandard)
    }
  ],
  "constraint": {
    object (Constraint)
  },
  "description": string
}
필드
policyId

string

필수 입력란입니다. 사용자가 지정한 정책 식별자입니다.

PolicySet에서 각 정책에는 고유한 식별자가 있어야 합니다.

complianceStandards[]

object (ComplianceStandard)

선택사항입니다. 정책이 시행하는 데 도움이 되는 규정 준수 표준입니다.

constraint

object (Constraint)

필수 입력란입니다. 정책에 포함된 제약조건입니다.

description

string

선택사항입니다. 정책에 대한 설명입니다.

ComplianceStandard

정책이 시행하는 데 도움이 되는 규정 준수 표준에 관한 정보입니다.

JSON 표현
{
  "standard": string,
  "control": string
}
필드
standard

string

선택사항입니다. 정책이 시행하는 규정 준수 표준입니다. 예를 들면 NIST SP 800-53입니다.

control

string

선택사항입니다. 정책이 시행하는 데 도움이 되는 규정 준수 표준의 제어입니다. 예를 들면 AC-3입니다.

제약조건

Policy의 제약 조건에 대한 메타데이터입니다.

JSON 표현
{

  // Union field implementation can be only one of the following:
  "securityHealthAnalyticsModule": {
    object (SecurityHealthAnalyticsModule)
  },
  "securityHealthAnalyticsCustomModule": {
    object (SecurityHealthAnalyticsCustomModule)
  },
  "orgPolicyConstraint": {
    object (OrgPolicyConstraint)
  },
  "orgPolicyConstraintCustom": {
    object (OrgPolicyConstraintCustom)
  }
  // End of list of possible types for union field implementation.
}
필드
통합 필드 implementation. 제약조건의 구현입니다. implementation은 다음 중 하나여야 합니다.
securityHealthAnalyticsModule

object (SecurityHealthAnalyticsModule)

선택사항입니다. Security Health Analytics의 기본 제공 감지기입니다.

securityHealthAnalyticsCustomModule

object (SecurityHealthAnalyticsCustomModule)

선택사항입니다. Security Health Analytics용 커스텀 모듈입니다.

orgPolicyConstraint

object (OrgPolicyConstraint)

선택사항입니다. 사전 정의된 조직 정책 제약조건입니다.

orgPolicyConstraintCustom

object (OrgPolicyConstraintCustom)

선택사항입니다. 맞춤 조직 정책 제약조건입니다.

SecurityHealthAnalyticsModule

Security Health Analytics의 기본 제공 감지기입니다.

JSON 표현
{
  "moduleName": string,
  "moduleEnablementState": enum (EnablementState)
}
필드
moduleName

string

필수 입력란입니다. 감지기의 이름입니다. 예를 들면 BIGQUERY_TABLE_CMEK_DISABLED입니다.

moduleEnablementState

enum (EnablementState)

리소스 계층 구조의 지정된 수준에서 감지기가 사용 설정되었는지 여부입니다.

EnablementState

리소스 계층 구조의 지정된 수준에서 기본 제공 감지기 또는 맞춤 모듈이 사용 설정되어 있는지 여부입니다.

열거형
ENABLEMENT_STATE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
ENABLED 감지기 또는 맞춤 모듈이 사용 설정되어 있습니다.
DISABLED 감지기 또는 맞춤 모듈이 사용 중지되었습니다.

SecurityHealthAnalyticsCustomModule

Security Health Analytics용 커스텀 모듈입니다.

JSON 표현
{
  "id": string,
  "displayName": string,
  "config": {
    object (CustomConfig)
  },
  "moduleEnablementState": enum (EnablementState)
}
필드
id

string

출력 전용입니다. 변경할 수 없습니다. 맞춤 모듈의 고유 식별자입니다. 1~20자리 숫자를 포함합니다.

displayName

string

선택사항입니다. 커스텀 모듈의 표시 이름 이 값은 맞춤 모듈이 반환하는 모든 발견 항목의 발견 항목 카테고리로 사용됩니다. 표시 이름은 1~128자(영문 기준)의 영숫자 문자 또는 밑줄을 포함해야 하며 소문자로 시작해야 합니다.

config

object (CustomConfig)

필수 입력란입니다. 커스텀 모듈의 구성 설정입니다.

moduleEnablementState

enum (EnablementState)

리소스 계층 구조의 지정된 수준에서 맞춤 모듈이 사용 설정되어 있는지 여부입니다.

CustomConfig

Security Health Analytics용 커스텀 모듈 구성입니다. CustomConfig를 사용하여 지정된 리소스에 대한 맞춤 발견 항목을 생성하는 맞춤 감지기를 만듭니다.

JSON 표현
{
  "predicate": {
    object (Expr)
  },
  "customOutput": {
    object (CustomOutputSpec)
  },
  "resourceSelector": {
    object (ResourceSelector)
  },
  "severity": enum (Severity),
  "description": string,
  "recommendation": string
}
필드
predicate

object (Expr)

필수 입력란입니다. 평가할 Common Expression Language (CEL) 표현식입니다. 리소스에 대해 표현식이 true로 평가되면 발견 항목이 생성됩니다.

customOutput

object (CustomOutputSpec)

선택사항입니다. 발견 항목에 포함할 맞춤 소스 속성의 정의입니다.

resourceSelector

object (ResourceSelector)

필수 입력란입니다. 커스텀 모듈이 작동하는 리소스 유형입니다.

severity

enum (Severity)

필수 입력란입니다. 커스텀 모듈에서 생성된 발견 항목의 심각도입니다.

description

string

선택사항입니다. 커스텀 모듈이 감지하는 취약점 또는 잘못된 구성에 관한 설명입니다.

설명은 각 발견 항목에 표시됩니다. 조사자가 발견사항을 이해하는 데 도움이 되는 충분한 정보를 제공합니다.

값은 따옴표로 묶어야 합니다.

recommendation

string

선택사항입니다. 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 조치에 대한 설명입니다. 설명은 각 발견 항목에 표시됩니다.

Expr

Common Expression Language(CEL) 문법으로 된 텍스트 표현식을 나타냅니다. CEL은 C와 같은 표현식 언어입니다. CEL의 문법과 시맨틱스는 https://github.com/google/cel-spec에 설명되어 있습니다.

예시(비교):

title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"

예시(균등):

title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"

예시(로직):

title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"

예시(데이터 조작):

title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"

표현식 내에서 참조할 수 있는 정확한 변수와 함수는 이를 계산하는 서비스에 의해 결정됩니다. 자세한 내용은 서비스 문서를 참조하세요.

JSON 표현
{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
필드
expression

string

Common Expression Language 구문으로 된 표현식의 텍스트 표현입니다.

title

string

선택사항. 표현식의 제목으로, 목적을 설명하는 짧은 문자열입니다. 표현식을 입력할 수 있는 UI 등에 사용할 수 있습니다.

description

string

선택사항. 표현식에 대한 설명입니다. 표현식을 설명하는 더 긴 텍스트입니다. 예를 들어 UI에서 마우스를 가져갈 때 표시할 수 있습니다.

location

string

선택사항. 오류 보고를 위해 표현식의 위치를 나타내는 문자열입니다. 예를 들어 파일 이름 및 파일 내 위치일 수 있습니다.

CustomOutputSpec

결과에 표시될 수 있는 맞춤 소스 속성의 정의입니다.

JSON 표현
{
  "properties": [
    {
      object (Property)
    }
  ]
}
필드
properties[]

object (Property)

선택사항입니다. 발견 항목에 표시될 수 있는 맞춤 소스 속성입니다.

속성

맞춤 소스 속성으로 사용되는 이름-값 쌍입니다.

JSON 표현
{
  "name": string,
  "valueExpression": {
    object (Expr)
  }
}
필드
name

string

필수 입력란입니다. 맞춤 소스 속성의 이름입니다.

valueExpression

object (Expr)

선택사항입니다. 맞춤 소스 속성 값의 CEL 표현식입니다. 리소스 속성의 경우 속성 값 또는 따옴표로 묶인 문자열을 반환할 수 있습니다.

ResourceSelector

감지기를 실행할 리소스 유형의 선택기입니다.

JSON 표현
{
  "resourceTypes": [
    string
  ]
}
필드
resourceTypes[]

string

필수 입력란입니다. 감지기를 실행할 리소스 유형입니다. 각 맞춤 모듈은 리소스 유형을 최대 5개까지 지정할 수 있습니다.

심각도

발견 항목의 심각도입니다.

열거형
SEVERITY_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
CRITICAL 심각한 심각도
HIGH 심각도가 높습니다.
MEDIUM 심각도가 중간입니다.
LOW 심각도가 낮습니다.

OrgPolicyConstraint

사전 정의된 조직 정책 제약조건입니다.

JSON 표현
{
  "cannedConstraintId": string,
  "policyRules": [
    {
      object (PolicyRule)
    }
  ]
}
필드
cannedConstraintId

string

필수 입력란입니다. 제약 조건의 고유 식별자입니다.

policyRules[]

object (PolicyRule)

필수 입력란입니다. 제약조건에 의해 적용되는 규칙입니다.

PolicyRule

조직 정책 제약조건의 허용되는 값과 거부되는 값을 정의하는 규칙입니다.

JSON 표현
{
  "condition": {
    object (Expr)
  },

  // Union field kind can be only one of the following:
  "values": {
    object (StringValues)
  },
  "allowAll": boolean,
  "denyAll": boolean,
  "enforce": boolean
  // End of list of possible types for union field kind.
}
필드
condition

object (Expr)

이 규칙을 정책 평가에 사용할지 여부를 결정하는 조건입니다.

google.type.Expr.expression 필드에는 || 또는 && 연산자로 조인된 1~10개의 하위 표현식이 포함되어야 합니다. 각 하위 표현식은 resource.matchTag() 또는 resource.matchTagId() Common Expression Language (CEL) 함수를 사용해야 합니다.

resource.matchTag() 함수는 다음 인수를 사용합니다.

  • key_name: 조직 ID와 슬래시(/)를 접두사로 사용하는 태그 키의 네임스페이스 이름입니다(예: 123456789012/environment).
  • value_name: 태그 값의 짧은 이름

예: resource.matchTag('123456789012/environment, 'prod')

resource.matchTagId() 함수는 다음 인수를 사용합니다.

  • key_id: 태그 키의 영구 ID입니다(예: tagKeys/123456789012).
  • value_id: 태그 값의 영구 ID입니다(예: tagValues/567890123456).

예: resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456')

통합 필드 kind. PolicyRule이 정의하는 규칙 유형입니다. kind은 다음 중 하나일 수 있습니다.
values

object (StringValues)

목록 제약조건의 허용 및 거부 값입니다. 목록 제약조건에만 유효합니다.

allowAll

boolean

목록 제약조건에 값을 허용할지 여부입니다. 목록 제약조건에만 유효합니다.

denyAll

boolean

목록 제약조건의 모든 값을 거부할지 여부입니다. 목록 제약조건에만 유효합니다.

enforce

boolean

제약조건을 적용할지 여부입니다. 불리언 제약조건에만 유효합니다.

StringValues

목록 제약조건의 허용 및 거부 값입니다.

모든 제약 조건의 경우 이러한 필드에 리터럴 값을 포함할 수 있습니다. 원하는 경우 이러한 값에 is: 접두사를 추가할 수 있습니다. 값에 콜론 (:)이 포함된 경우 is: 접두사가 필요합니다.

일부 제약조건을 사용하면 제약조건이 적용되는 리소스 계층 구조의 일부인 계층 구조 하위 트리를 지정할 수 있습니다. 계층 구조 하위 트리를 지정하려면 under: 접두사 뒤에 다음 형식 중 하나의 값을 사용합니다.

  • projects/{projectId}(예: projects/tokyo-rain-123)
  • folders/{folder_id}(예: folders/1234567890123)
  • organizations/{organization_id} (예: organizations/123456789012)

제약조건의 supportsUnder 필드는 계층 구조 하위 트리를 지정할 수 있는지 여부를 나타냅니다. 계층 구조 하위 트리를 지정할 수 있는 사전 정의된 제약조건을 알아보려면 제약조건 참조를 참고하세요.

JSON 표현
{
  "allowedValues": [
    string
  ],
  "deniedValues": [
    string
  ]
}
필드
allowedValues[]

string

제약조건에 허용되는 값입니다.

deniedValues[]

string

제약조건에서 거부된 값입니다.

OrgPolicyConstraintCustom

맞춤 조직 정책 제약조건입니다.

JSON 표현
{
  "customConstraint": {
    object (CustomConstraint)
  },
  "policyRules": [
    {
      object (PolicyRule)
    }
  ]
}
필드
customConstraint

object (CustomConstraint)

필수 입력란입니다. 제약조건의 메타데이터입니다.

policyRules[]

object (PolicyRule)

필수 입력란입니다. 제약조건에 의해 적용되는 규칙입니다.

CustomConstraint

사용자 정의 커스텀 제약조건입니다. 제약조건은 제약조건에 지정된 리소스 유형에만 적용할 수 있으며, 제약조건이 정의된 조직 내에서만 적용할 수 있습니다.

커스텀 제약조건을 만들 때는 자동으로 적용되지 않습니다. 조직 정책을 사용하여 제약조건을 적용해야 합니다.

JSON 표현
{
  "name": string,
  "resourceTypes": [
    string
  ],
  "methodTypes": [
    enum (MethodType)
  ],
  "condition": string,
  "actionType": enum (ActionType),
  "displayName": string,
  "description": string,
  "updateTime": string
}
필드
name

string

변경할 수 없습니다. organizations/{organization_id}/customConstraints/custom.{custom_constraint_id} 형식의 제약조건 이름입니다. 예를 들면 organizations/123456789012/customConstraints/custom.createOnlyE2TypeVms입니다.

접두사 organizations/{organization_id}/customConstraints/custom.를 제외하고 1~62자(영문 기준)여야 합니다.

resourceTypes[]

string

변경할 수 없습니다. 제약 조건이 적용되는 리소스 유형입니다. {canonical_service_name}/{resource_type_name} 형식입니다. 예를 들면 compute.googleapis.com/Instance입니다.

methodTypes[]

enum (MethodType)

제약조건이 적용되는 작업 유형입니다.

condition

string

제약조건이 적용되려면 true로 평가되어야 하는 Common Expression Language (CEL) 조건 표현식입니다. 최대 길이는 1,000자(영문 기준)입니다.

예를 들면 다음과 같습니다.

  • resource.instanceName.matches('(production|test)_(.+_)?[\d]+'): 리소스의 instanceName 속성에 다음이 포함된 경우 true로 평가됩니다.
    • production 또는 test 접두사
    • 밑줄 (_)
    • 선택사항: 하나 이상의 문자 뒤에 밑줄 (_)이 옴
    • 숫자 1 이상
  • resource.management.auto_upgrade == true: 리소스의 management.auto_upgrade 속성이 true인 경우 true로 평가됩니다.
actionType

enum (ActionType)

작업을 허용할지 거부할지 여부입니다.

displayName

string

제약조건의 표시 이름입니다. 최대 길이는 200자(영문 기준)입니다.

description

string

제약조건에 대한 설명입니다. 최대 길이는 2,000자(영문 기준)입니다.

updateTime

string (Timestamp format)

출력 전용입니다. 제약 조건이 마지막으로 업데이트되거나 생성된 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

MethodType

제약조건이 적용되는 작업 유형입니다.

제약 조건이 MethodType.UPDATE 작업에 적용되는 경우 MethodType.CREATE 작업에도 적용되어야 합니다.

열거형
METHOD_TYPE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
CREATE 리소스를 만들 때 적용된 제약조건입니다.
UPDATE 리소스를 업데이트할 때 적용된 제약조건입니다.
DELETE 지원되지 않음. 리소스를 삭제할 때 적용되는 제약조건입니다.

ActionType

작업을 허용할지 거부할지 여부입니다.

열거형
ACTION_TYPE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
ALLOW 작업을 허용합니다.
DENY 작업을 거부합니다.