×

POST /v1/detect/build

DetectBuildTime 检查是否有任何镜像违反构建时策略。

描述

参数

主体参数

名称 描述 必填 默认值 模式

主体

V1BuildDetectionRequest

内容类型

  • application/json

响应

表 1. HTTP 响应代码
代码 消息 数据类型

200

成功的响应。

V1BuildDetectionResponse

0

意外的错误响应。

GooglerpcStatus

示例

常用对象引用

AlertDeploymentContainer

字段名称 必填 可空 类型 描述 格式

镜像

StorageContainerImage

名称

字符串

AlertEnforcement

字段名称 必填 可空 类型 描述 格式

操作

StorageEnforcementAction

UNSET_ENFORCEMENT, SCALE_TO_ZERO_ENFORCEMENT, UNSATISFIABLE_NODE_CONSTRAINT_ENFORCEMENT, KILL_POD_ENFORCEMENT, FAIL_BUILD_ENFORCEMENT, FAIL_KUBE_REQUEST_ENFORCEMENT, FAIL_DEPLOYMENT_CREATE_ENFORCEMENT, FAIL_DEPLOYMENT_UPDATE_ENFORCEMENT,

消息

字符串

AlertEntityType

枚举值

UNSET

DEPLOYMENT

CONTAINER_IMAGE

RESOURCE

AlertProcessViolation

字段名称 必填 可空 类型 描述 格式

消息

字符串

进程

StorageProcessIndicator 列表

AlertResourceResourceType

枚举值

未知 (UNKNOWN)

密钥 (SECRETS)

配置映射 (CONFIGMAPS)

集群角色 (CLUSTER_ROLES)

集群角色绑定 (CLUSTER_ROLE_BINDINGS)

网络策略 (NETWORK_POLICIES)

安全上下文约束 (SECURITY_CONTEXT_CONSTRAINTS)

出口防火墙 (EGRESS_FIREWALLS)

AlertViolation

字段名称 必填 可空 类型 描述 格式

消息

字符串

keyValueAttrs

ViolationKeyValueAttrs

networkFlowInfo

ViolationNetworkFlowInfo

类型 (type)

AlertViolationType

通用 (GENERIC), Kubernetes事件 (K8S_EVENT), 网络流量 (NETWORK_FLOW), 网络策略 (NETWORK_POLICY),

时间 (time)

日期 (Date)

指示违规时间。此字段与顶级字段“time”不同,“time”表示在策略警报多次出现的情况下警报最后一次出现的时间。从55.0版本开始,此字段仅为Kubernetes事件违规设置,但在未来可能不限于此。

日期时间 (date-time)

AlertViolationType

枚举值

通用 (GENERIC)

Kubernetes事件 (K8S_EVENT)

网络流量 (NETWORK_FLOW)

网络策略 (NETWORK_POLICY)

GooglerpcStatus

字段名称 必填 可空 类型 描述 格式

代码 (code)

整数 (Integer)

int32

消息

字符串

详情 (details)

ProtobufAny列表 (ProtobufAny 的列表)

KeyValueAttrsKeyValueAttr

字段名称 必填 可空 类型 描述 格式

键 (key)

字符串

值 (value)

字符串

NetworkFlowInfoEntity

字段名称 必填 可空 类型 描述 格式

名称

字符串

实体类型 (entityType)

StorageNetworkEntityInfoType

未知类型 (UNKNOWN_TYPE), 部署 (DEPLOYMENT), 互联网 (INTERNET), 监听端点 (LISTEN_ENDPOINT), 外部来源 (EXTERNAL_SOURCE), 内部实体 (INTERNAL_ENTITIES),

部署命名空间 (deploymentNamespace)

字符串

部署类型 (deploymentType)

字符串

端口 (port)

整数 (Integer)

int32

PolicyMitreAttackVectors

字段名称 必填 可空 类型 描述 格式

战术 (tactic)

字符串

技术 (techniques)

字符串列表 (string 的列表)

ProcessSignalLineageInfo

字段名称 必填 可空 类型 描述 格式

父UID (parentUid)

长整型 (Long)

int64

父执行文件路径 (parentExecFilePath)

字符串

ProtobufAny

Any包含任意序列化的协议缓冲区消息以及描述序列化消息类型的URL。

Protobuf库提供支持,以实用函数或Any类型的附加生成方法的形式打包/解包Any值。

示例1:在C++中打包和解包消息。

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
  ...
}

示例2:在Java中打包和解包消息。

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}
// or ...
if (any.isSameTypeAs(Foo.getDefaultInstance())) {
  foo = any.unpack(Foo.getDefaultInstance());
}
Example 3: Pack and unpack a message in Python.
foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
  any.Unpack(foo)
  ...
Example 4: Pack and unpack a message in Go
foo := &pb.Foo{...}
any, err := anypb.New(foo)
if err != nil {
  ...
}
...
foo := &pb.Foo{}
if err := any.UnmarshalTo(foo); err != nil {
  ...
}

Protobuf库提供的打包方法默认使用'type.googleapis.com/full.type.name'作为类型URL,解包方法仅使用类型URL中最后一个'/'之后的全限定类型名称,例如"foo.bar.com/x/y.z"将产生类型名称"y.z"。

JSON表示

Any值的JSON表示使用反序列化的嵌入式消息的常规表示,以及一个附加字段@type,其中包含类型URL。示例

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}
{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

如果嵌入式消息类型是众所周知的并且具有自定义JSON表示,则该表示将被嵌入,并添加一个字段value,该字段除了@type字段外还包含自定义JSON。示例(对于消息[google.protobuf.Duration][])

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
字段名称 必填 可空 类型 描述 格式

@type

字符串

一个URL/资源名称,唯一标识序列化协议缓冲区消息的类型。此字符串必须包含至少一个“/”字符。URL路径的最后一部分必须表示类型的全限定名称(如path/google.protobuf.Duration)。名称应采用规范形式(例如,不允许使用前导“.”)。实际上,团队通常会将其预期在Any上下文中使用的所有类型预编译到二进制文件中。但是,对于使用方案httphttps或无方案的URL,可以选择设置一个类型服务器,该服务器将类型URL映射到消息定义,如下所示:* 如果未提供方案,则假定为https。* 对URL的HTTP GET必须产生二进制格式的[google.protobuf.Type][]值,或者产生错误。* 应用程序允许基于URL缓存查找结果,或者将其预编译到二进制文件中以避免任何查找。因此,需要在类型更改时保留二进制兼容性。(使用版本化的类型名称来管理重大更改。)注意:此功能当前在官方protobuf版本中不可用,并且不适用于以type.googleapis.com开头的类型URL。截至2023年5月,没有广泛使用的类型服务器实现,也没有计划实现一个。除了httphttps(或空方案)之外的方案可能会与实现特定的语义一起使用。

StorageAlert

Next available tag: 24
字段名称 必填 可空 类型 描述 格式

ID (id)

字符串

策略 (policy)

StoragePolicy

生命周期阶段 (lifecycleStage)

StorageLifecycleStage

部署 (DEPLOY), 构建 (BUILD), 运行时 (RUNTIME),

集群ID (clusterId)

字符串

集群名称 (clusterName)

字符串

命名空间 (namespace)

字符串

命名空间ID (namespaceId)

字符串

部署 (deployment)

StorageAlertDeployment

镜像

StorageContainerImage

资源 (resource)

StorageAlertResource

违规 (violations)

AlertViolation列表 (AlertViolation 的列表)

对于运行时阶段警报,最多保留40个违规。

进程违规 (processViolation)

AlertProcessViolation

执行 (enforcement)

AlertEnforcement

时间 (time)

日期 (Date)

日期时间 (date-time)

首次出现 (firstOccurred)

日期 (Date)

日期时间 (date-time)

解决时间 (resolvedAt)

日期 (Date)

警报解决的时间。仅当ViolationState为RESOLVED时才设置。

日期时间 (date-time)

状态 (state)

StorageViolationState

活动 (ACTIVE), 暂停 (SNOOZED), 已解决 (RESOLVED), 已尝试 (ATTEMPTED),

暂停到 (snoozeTill)

日期 (Date)

日期时间 (date-time)

平台组件 (platformComponent)

布尔值 (Boolean)

实体类型 (entityType)

AlertEntityType

未设置 (UNSET), 部署 (DEPLOYMENT), 容器镜像 (CONTAINER_IMAGE), 资源 (RESOURCE),

StorageAlertDeployment

字段名称 必填 可空 类型 描述 格式

ID (id)

字符串

名称

字符串

类型 (type)

字符串

命名空间 (namespace)

字符串

此字段必须在Alert中重复,以便进行范围管理和搜索。

命名空间ID (namespaceId)

字符串

此字段必须在Alert中重复,以便进行范围管理和搜索。

标签 (labels)

字符串映射 (string 的映射)

集群ID (clusterId)

字符串

此字段必须在Alert中重复,以便进行范围管理和搜索。

集群名称 (clusterName)

字符串

此字段必须在Alert中重复,以便进行范围管理和搜索。

容器 (containers)

AlertDeploymentContainer列表 (AlertDeploymentContainer 的列表)

注释 (annotations)

字符串映射 (string 的映射)

非活动 (inactive)

布尔值 (Boolean)

StorageAlertResource

Represents an alert on a kubernetes resource other than a deployment (configmaps, secrets, etc.)
字段名称 必填 可空 类型 描述 格式

资源类型 (resourceType)

AlertResourceResourceType

未知 (UNKNOWN), 密钥 (SECRETS), 配置映射 (CONFIGMAPS), 集群角色 (CLUSTER_ROLES), 集群角色绑定 (CLUSTER_ROLE_BINDINGS), 网络策略 (NETWORK_POLICIES), 安全上下文约束 (SECURITY_CONTEXT_CONSTRAINTS), 出口防火墙 (EGRESS_FIREWALLS),

名称

字符串

集群ID (clusterId)

字符串

此字段必须在Alert中重复,以便进行范围管理和搜索。

集群名称 (clusterName)

字符串

此字段必须在Alert中重复,以便进行范围管理和搜索。

命名空间 (namespace)

字符串

此字段必须在Alert中重复,以便进行范围管理和搜索。

命名空间ID (namespaceId)

字符串

此字段必须在Alert中重复,以便进行范围管理和搜索。

StorageBooleanOperator

枚举值

或 (OR)

且 (AND)

StorageContainerImage

Next tag: 12
字段名称 必填 可空 类型 描述 格式

ID (id)

字符串

名称

StorageImageName

不可拉取 (notPullable)

布尔值 (Boolean)

集群本地 (isClusterLocal)

布尔值 (Boolean)

StorageEnforcementAction

  • FAIL_KUBE_REQUEST_ENFORCEMENT: FAIL_KUBE_REQUEST_ENFORCEMENT 仅在启用准入控制Webhook以侦听exec和port-forward事件时才生效。

  • FAIL_DEPLOYMENT_CREATE_ENFORCEMENT: FAIL_DEPLOYMENT_CREATE_ENFORCEMENT 仅当配置准入控制Webhook以强制执行对象创建时才生效。

  • FAIL_DEPLOYMENT_UPDATE_ENFORCEMENT: FAIL_DEPLOYMENT_UPDATE_ENFORCEMENT 仅当配置准入控制Webhook以强制执行对象更新时才生效。

枚举值

未设置执行 (UNSET_ENFORCEMENT)

缩容到零执行 (SCALE_TO_ZERO_ENFORCEMENT)

不可满足的节点约束执行 (UNSATISFIABLE_NODE_CONSTRAINT_ENFORCEMENT)

杀死Pod执行 (KILL_POD_ENFORCEMENT)

构建失败执行 (FAIL_BUILD_ENFORCEMENT)

Kubernetes请求失败执行 (FAIL_KUBE_REQUEST_ENFORCEMENT)

部署创建失败执行 (FAIL_DEPLOYMENT_CREATE_ENFORCEMENT)

部署更新失败执行 (FAIL_DEPLOYMENT_UPDATE_ENFORCEMENT)

StorageEventSource

枚举值

不适用 (NOT_APPLICABLE)

部署事件 (DEPLOYMENT_EVENT)

审计日志事件 (AUDIT_LOG_EVENT)

StorageExclusion

字段名称 必填 可空 类型 描述 格式

名称

字符串

部署 (deployment)

StorageExclusionDeployment

镜像

StorageExclusionImage

过期时间 (expiration)

日期 (Date)

日期时间 (date-time)

StorageExclusionDeployment

字段名称 必填 可空 类型 描述 格式

名称

字符串

范围 (scope)

StorageScope

StorageExclusionImage

字段名称 必填 可空 类型 描述 格式

名称

字符串

StorageImageName

字段名称 必填 可空 类型 描述 格式

注册表 (registry)

字符串

远程 (remote)

字符串

标签 (tag)

字符串

全名 (fullName)

字符串

StorageL4Protocol

枚举值

未知L4协议 (L4_PROTOCOL_UNKNOWN)

TCP协议 (L4_PROTOCOL_TCP)

UDP协议 (L4_PROTOCOL_UDP)

ICMP协议 (L4_PROTOCOL_ICMP)

原始协议 (L4_PROTOCOL_RAW)

SCTP协议 (L4_PROTOCOL_SCTP)

任意L4协议 (L4_PROTOCOL_ANY)

StorageLifecycleStage

枚举值

部署 (DEPLOY)

构建 (BUILD)

运行时 (RUNTIME)

StorageNetworkEntityInfoType

  • 内部实体 (INTERNAL_ENTITIES): INTERNAL_ENTITIES 用于将所有内部实体分组到单个网络图节点下

枚举值

未知类型 (UNKNOWN_TYPE)

DEPLOYMENT

互联网 (INTERNET)

监听端点 (LISTEN_ENDPOINT)

外部来源 (EXTERNAL_SOURCE)

内部实体 (INTERNAL_ENTITIES)

StoragePolicy

Next tag: 28
字段名称 必填 可空 类型 描述 格式

ID (id)

字符串

名称

字符串

策略名称。必须唯一。

描述 (description)

字符串

此策略的自由格式文本描述。

基本原理 (rationale)

字符串

补救措施 (remediation)

字符串

描述如何补救此策略的违规。

禁用 (disabled)

布尔值 (Boolean)

切换此策略是否执行并主动触发警报。

类别

字符串列表 (string 的列表)

此策略所属的类别列表。类别名称必须已存在于中心。

生命周期阶段

的列表 StorageLifecycleStage

描述此策略适用的策略生命周期阶段。选项包括 DEPLOY、BUILD 和 RUNTIME。

事件源

StorageEventSource

NOT_APPLICABLE、DEPLOYMENT_EVENT、AUDIT_LOG_EVENT、

排除项

的列表 StorageExclusion

定义应从此策略中排除的部署或镜像。

范围 (scope)

的列表 StorageScope

定义应包含在此策略中的集群、命名空间和部署。未定义范围表示包含所有内容。

严重性

StorageSeverity

UNSET_SEVERITY、LOW_SEVERITY、MEDIUM_SEVERITY、HIGH_SEVERITY、CRITICAL_SEVERITY、

执行操作

的列表 StorageEnforcementAction

FAIL_DEPLOYMENT_CREATE_ENFORCEMENT 仅在准入控制 Webhook 配置为强制执行对象创建/更新时生效。FAIL_KUBE_REQUEST_ENFORCEMENT 仅在准入控制 Webhook 启用以侦听 exec 和端口转发事件时生效。FAIL_DEPLOYMENT_UPDATE_ENFORCEMENT 仅在准入控制 Webhook 配置为强制执行对象更新时生效。列出识别此策略冲突时要采取的执行操作。可能的值包括 UNSET_ENFORCEMENT、SCALE_TO_ZERO_ENFORCEMENT、UNSATISFIABLE_NODE_CONSTRAINT_ENFORCEMENT、KILL_POD_ENFORCEMENT、FAIL_BUILD_ENFORCEMENT、FAIL_KUBE_REQUEST_ENFORCEMENT、FAIL_DEPLOYMENT_CREATE_ENFORCEMENT 和 FAIL_DEPLOYMENT_UPDATE_ENFORCEMENT。

通知程序

字符串列表 (string 的列表)

应在识别此策略冲突时触发的通知程序 ID 列表。ID 应采用 UUID 格式,可通过中心 API 找到。

上次更新时间

日期 (Date)

日期时间 (date-time)

SORTName

字符串

仅供内部使用。

SORTLifecycleStage

字符串

仅供内部使用。

SORTEnforcement

布尔值 (Boolean)

仅供内部使用。

策略版本

字符串

策略部分

的列表 StoragePolicySection

PolicySections 定义此策略的违规条件。

MITRE 攻击向量

的列表 PolicyMitreAttackVectors

条件锁定

布尔值 (Boolean)

只读字段。如果为 true,则策略的条件字段将被设置为只读。

MITRE 向量锁定

布尔值 (Boolean)

只读字段。如果为 true,则策略的 MITRE ATT&CK 字段将被设置为只读。

是否为默认值

布尔值 (Boolean)

只读字段。如果为 true,则表示该策略是默认策略;如果为 false,则表示该策略是自定义策略。

来源

StoragePolicySource

IMPERATIVE、DECLARATIVE、

StoragePolicyGroup

字段名称 必填 可空 类型 描述 格式

字段名称

字符串

定义此 PolicyGroup 评估部署或镜像上的哪个字段。有关可能值的完整列表,请参阅 https://docs.openshift.org.cn/acs/operating/manage-security-policies.html#policy-criteria_manage-security-policies

布尔运算符

StorageBooleanOperator

OR、AND、

否定

布尔值 (Boolean)

确定此 PolicyGroup 的评估是否被否定。默认为 false。

的列表 StoragePolicyValue

StoragePolicySection

字段名称 必填 可空 类型 描述 格式

部分名称

字符串

策略组

的列表 StoragePolicyGroup

构成此部分的策略组集。每个组都可以被视为单个条件。

StoragePolicySource

枚举值

IMPERATIVE

DECLARATIVE

StoragePolicyValue

字段名称 必填 可空 类型 描述 格式

值 (value)

字符串

StorageProcessIndicator

Next available tag: 13
字段名称 必填 可空 类型 描述 格式

ID (id)

字符串

部署 ID

字符串

容器名称

字符串

Pod ID

字符串

Pod UID

字符串

信号

StorageProcessSignal

集群ID (clusterId)

字符串

命名空间 (namespace)

字符串

容器启动时间

日期 (Date)

日期时间 (date-time)

镜像 ID

字符串

StorageProcessSignal

字段名称 必填 可空 类型 描述 格式

ID (id)

字符串

用于标识消息的唯一 UUID。我们将其放在此处而不是顶层,因为我们希望每条消息都是自包含的。

容器 ID

字符串

时间 (time)

日期 (Date)

日期时间 (date-time)

名称

字符串

参数

字符串

执行文件路径

字符串

PID

长整型 (Long)

int64

UID

长整型 (Long)

int64

GID

长整型 (Long)

int64

血统

字符串列表 (string 的列表)

已抓取

布尔值 (Boolean)

血统信息

的列表 ProcessSignalLineageInfo

StorageScope

字段名称 必填 可空 类型 描述 格式

集群

字符串

命名空间 (namespace)

字符串

标签

StorageScopeLabel

StorageScopeLabel

字段名称 必填 可空 类型 描述 格式

键 (key)

字符串

值 (value)

字符串

StorageSeverity

枚举值

UNSET_SEVERITY

LOW_SEVERITY

MEDIUM_SEVERITY

HIGH_SEVERITY

CRITICAL_SEVERITY

StorageViolationState

枚举值

ACTIVE

SNOOZED

RESOLVED

ATTEMPTED

V1BuildDetectionRequest

字段名称 必填 可空 类型 描述 格式

镜像

StorageContainerImage

镜像名称

字符串

无外部元数据

布尔值 (Boolean)

发送通知

布尔值 (Boolean)

强制

布尔值 (Boolean)

策略类别

字符串列表 (string 的列表)

集群

字符串

要委托扫描的集群,可以是集群的名称或 ID。

V1BuildDetectionResponse

字段名称 必填 可空 类型 描述 格式

警报

的列表 StorageAlert

ViolationKeyValueAttrs

字段名称 必填 可空 类型 描述 格式

属性

的列表 KeyValueAttrsKeyValueAttr

ViolationNetworkFlowInfo

字段名称 必填 可空 类型 描述 格式

协议

StorageL4Protocol

L4_PROTOCOL_UNKNOWN、L4_PROTOCOL_TCP、L4_PROTOCOL_UDP、L4_PROTOCOL_ICMP、L4_PROTOCOL_RAW、L4_PROTOCOL_SCTP、L4_PROTOCOL_ANY、

来源

NetworkFlowInfoEntity

目标

NetworkFlowInfoEntity