策略

警告

自 Watcher 6.0.0 (Wallaby) 起,JSON 格式的策略文件已被弃用。此 oslopolicy-convert-json-to-yaml 工具将以向后兼容的方式将现有的 JSON 格式策略文件迁移到 YAML。

Watcher 的公共 API 调用可以通过策略配置文件限制为特定用户集。本文档详细说明了策略的配置方式以及它们适用的对象。

策略由一组规则组成,这些规则用于确定授权租户是否可以执行特定操作。

构建策略配置文件

策略配置文件是一个简单的 JSON 对象,其中包含一组规则。每个顶级键是规则的名称。每个规则都是一个字符串,描述了可以在 Watcher API 中执行的操作。

可以对其强制执行规则的操作包括

  • strategy:get_all, strategy:detail - 列出可用的策略

    • GET /v1/strategies

    • GET /v1/strategies/detail

  • strategy:get - 获取特定的策略实体

    • GET /v1/strategies/<STRATEGY_UUID>

    • GET /v1/strategies/<STRATEGY_NAME>

  • goal:get_all, goal:detail - 列出可用的目标

    • GET /v1/goals

    • GET /v1/goals/detail

  • goal:get - 获取特定的目标实体

    • GET /v1/goals/<GOAL_UUID>

    • GET /v1/goals/<GOAL_NAME>

  • audit_template:get_all, audit_template:detail - 列出可用的审计模板

    • GET /v1/audit_templates

    • GET /v1/audit_templates/detail

  • audit_template:get - 获取特定的审计模板实体

    • GET /v1/audit_templates/<AUDIT_TEMPLATE_UUID>

    • GET /v1/audit_templates/<AUDIT_TEMPLATE_NAME>

  • audit_template:create - 创建审计模板实体

    • POST /v1/audit_templates

  • audit_template:delete - 删除审计模板实体

    • DELETE /v1/audit_templates/<AUDIT_TEMPLATE_UUID>

    • DELETE /v1/audit_templates/<AUDIT_TEMPLATE_NAME>

  • audit_template:update - 更新审计模板实体

    • PATCH /v1/audit_templates/<AUDIT_TEMPLATE_UUID>

    • PATCH /v1/audit_templates/<AUDIT_TEMPLATE_NAME>

  • audit:get_all, audit:detail - 列出可用的审计

    • GET /v1/audits

    • GET /v1/audits/detail

  • audit:get - 获取特定的审计实体

    • GET /v1/audits/<AUDIT_UUID>

  • audit:create - 创建审计实体

    • POST /v1/audits

  • audit:delete - 删除审计实体

    • DELETE /v1/audits/<AUDIT_UUID>

  • audit:update - 更新审计实体

    • PATCH /v1/audits/<AUDIT_UUID>

  • action_plan:get_all, action_plan:detail - 列出可用的行动计划

    • GET /v1/action_plans

    • GET /v1/action_plans/detail

  • action_plan:get - 获取特定的行动计划实体

    • GET /v1/action_plans/<ACTION_PLAN_UUID>

  • action_plan:delete - 删除行动计划实体

    • DELETE /v1/action_plans/<ACTION_PLAN_UUID>

  • action_plan:update - 更新行动计划实体

    • PATCH /v1/audits/<ACTION_PLAN_UUID>

  • action:get_all, action:detail - 列出可用的操作

    • GET /v1/actions

    • GET /v1/actions/detail

  • action:get - 获取特定的行动计划实体

    • GET /v1/actions/<ACTION_UUID>

  • service:get_all, service:detail - 列出可用的 Watcher 服务

    • GET /v1/services

    • GET /v1/services/detail

  • service:get - 获取特定的 Watcher 服务实体

    • GET /v1/services/<SERVICE_ID>

要将操作限制为特定的角色或角色,您可以像这样列出角色

{
  "audit:create": ["role:admin", "role:superuser"]
}

以上将添加一个规则,仅允许具有“admin”或“superuser”角色的用户启动审计。