1.23. 策略合规历史记录(技术预览)
1.23.1. 概述 复制链接链接已复制到粘贴板!
如果您希望长期存储 Red Hat Advanced Cluster Management for Kubernetes 策略合规事件,策略合规历史记录 API 是一个可选的技术预览功能。您可以使用 API 获取额外详情,如 spec 字段来审核和排除您的策略,并在策略被禁用或从集群中删除时获取合规性事件。策略合规历史记录 API 也可以生成以逗号分隔的值(CSV)电子策略合规事件表,以帮助您进行审核和故障排除。
1.23.1.1. 版本信息 复制链接链接已复制到粘贴板!
版本 : 2.10.0
1.23.2. API 端点 复制链接链接已复制到粘贴板!
1.23.2.1. 列出策略合规事件 复制链接链接已复制到粘贴板!
/api/v1/compliance-events
这会列出您默认有权访问的所有策略合规事件。响应格式如下,默认根据 event.timestamp 进行排序:
以下可选查询参数被接受。请注意,如果没有描述的那些只在它引用的字段上过滤。参数值 null 代表没有值。另外,可以使用逗号指定多个值。例如,?cluster.name=cluster1,cluster2 用于 "or" 过滤。如果需要,可以使用 \ 转义逗号。
| 查询参数 | 描述 |
|---|---|
| cluster.cluster_id | |
| cluster.name | |
| direction |
排序方向。默认值为 |
| event.compliance | |
| event.message_includes | 用于包含输入字符串的合规性消息的过滤器。仅支持单个值。 |
| event.message_like |
用于合规性消息的 SQL |
| event.reported_by | |
| event.timestamp | |
| event.timestamp_after |
RFC 3339 时间戳,用于仅在此时间后才会显示合规事件。例如: |
| event.timestamp_before |
RFC 3339 时间戳,用于仅显示此时间前的合规性事件。例如: |
| id | |
| include_spec |
在返回值中包含策略的 |
| page |
查询中的页面号。默认值为 |
| parent_policy.categories | |
| parent_policy.controls | |
| parent_policy.id | |
| parent_policy.name | |
| parent_policy.namespace | |
| parent_policy.standards | |
| per_page |
每个页面返回的合规事件数量。默认值为 |
| policy.apiGroup | |
| policy.id | |
| policy.kind | |
| policy.name | |
| policy.namespace | |
| policy.severity | |
| 排序 |
要排序的字段。默认为 |
1.23.2.2. 选择单个策略合规事件 复制链接链接已复制到粘贴板!
/api/v1/compliance-events/<id>
您可以通过指定数据库 ID 来选择单个策略合规事件。例如,/api/v1/compliance-events/1 选择 ID 为 1 的合规性事件。返回值的格式如下:
1.23.2.3. 生成电子表格 复制链接链接已复制到粘贴板!
/api/v1/reports/compliance-events
您可以生成以逗号分隔的值(CSV)电子表格,用于审计和故障排除。它输出相同的查询参数,并接受与 /api/v1/compliance-events API 端点相同的查询参数。默认情况下,没有设置 per_page 限制,并且 per_page 查询参数没有最大值。所有 CSV 标头与 /api/v1/compliance-events API 端点相同,带有下划线分隔 JSON 对象。例如,事件时间戳的标头为 event_timestamp。
1.23.3. 认证和授权 复制链接链接已复制到粘贴板!
策略合规历史记录 API 使用 Red Hat Advanced Cluster Management hub 集群用于身份验证和授权的 OpenShift 实例。您必须在 HTTPS 请求的 Authorization 标头中提供 OpenShift 令牌。
要查找您的令牌,请运行以下命令:
oc whoami --show-token
oc whoami --show-token
1.23.3.1. 查看审计事件 复制链接链接已复制到粘贴板!
要查看受管集群的合规事件,您需要访问 Red Hat Advanced Cluster Management hub 集群上的 ManagedCluster 对象的 get verb。例如,要查看 local-cluster 集群的合规事件,您可以使用 open-cluster-management:view:local-cluster ClusterRole 或创建自己的资源,如下例所示:
要验证您对特定受管集群的访问,请使用 oc auth can-i 命令。例如,要检查是否可以访问 local-cluster 受管集群,请运行以下命令:
oc auth can-i get managedclusters.cluster.open-cluster-management.io/local-cluster
oc auth can-i get managedclusters.cluster.open-cluster-management.io/local-cluster
1.23.3.2. 记录合规事件 复制链接链接已复制到粘贴板!
在对应受管集群命名空间中的 policies.policy.open-cluster-management.io/status 资源中具有 补丁 动词 访问权限的用户或服务帐户,可以访问记录策略合规事件。受管集群上的 governance-policy-framework pod 使用 Red Hat Advanced Cluster Management hub 集群上对应的受管集群命名空间中的 open-cluster-management-compliance-history-api-recorder 服务帐户来记录合规事件。每个服务帐户都有 open-cluster-management:compliance-history-api-recorder ClusterRole 绑定到受管集群命名空间。限制用户和服务帐户对策略状态的访问,以确保存储在策略合规历史记录 API 中数据的可信性。