PolicySet

一组一个或多个 Policy 资源。

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)

必需。要评估的通用表达式语言 (CEL) 表达式。如果某个资源的表达式计算结果为 true,则系统会生成一个发现结果。

customOutput

object (CustomOutputSpec)

可选。要包含在发现结果中的自定义来源属性的定义。

resourceSelector

object (ResourceSelector)

必需。自定义模块操作的资源类型。

severity

enum (Severity)

必需。自定义模块生成的发现结果的严重程度。

description

string

可选。自定义模块检测到的漏洞或配置错误的说明。

该说明会显示在每项发现结果中。提供足够的信息,帮助调查人员了解相关发现。

值必须用英文引号括起来。

recommendation

string

可选。说明安全团队可以执行来解决检测到的问题的步骤。解释会显示在每项发现结果中。

Expr

表示采用通用表达式语言 (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

采用通用表达式语言语法的表达式的文本表示法。

title

string

可选。表达式的标题,即说明表达式用途的短字符串。该标题可用于允许输入表达式的内容(例如界面)中。

description

string

可选。表达式的说明。该说明是描述表达式的较长文本,例如在界面中将鼠标悬停在表达式上时显示的文本。

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() 通用表达式语言 (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')

联合字段 kindPolicyRule 定义的规则类型。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

必须包含 1 到 62 个字符(不包括前缀 organizations/{organization_id}/customConstraints/custom.)。

resourceTypes[]

string

不可变。限制条件适用的资源类型,格式为 {canonical_service_name}/{resource_type_name}。例如 compute.googleapis.com/Instance

methodTypes[]

enum (MethodType)

限制条件适用的操作类型。

condition

string

一个通用表达式语言 (CEL) 条件表达式,必须求值为 true 才能强制执行限制。长度上限为 1,000 个字符。

例如:

  • resource.instanceName.matches('(production|test)_(.+_)?[\d]+'):如果资源的 instanceName 属性包含以下内容,则求值为 true
    • 前缀 productiontest
    • 下划线 (_)
    • 可选:一个或多个字符,后跟下划线 (_)
    • 一个或多个数字
  • resource.management.auto_upgrade == true:如果资源的 management.auto_upgrade 属性为 true,则评估为 true
actionType

enum (ActionType)

是否允许或拒绝相应操作。

displayName

string

约束条件的显示名称。长度上限为 200 个字符。

description

string

对限制条件的说明。长度上限为 2000 个字符。

updateTime

string (Timestamp format)

仅限输出。上次更新或创建该约束条件的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"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 拒绝相应操作。