第 11 章 策略(policy)

每个 OpenStack 服务都包含由访问策略管理的资源。例如,资源可能包括以下功能:

  • 创建和启动实例的权限
  • 将卷附加到实例的功能

如果您是 Red Hat OpenStack Platform (RHOSP)管理员,您可以创建自定义策略来引入具有不同访问级别的新角色,或更改现有角色的默认行为。

重要

红帽不支持自定义角色或策略。语法错误或应用错误授权可能会对安全或可用性造成负面影响。如果在生产环境中需要自定义角色或策略,请联系红帽支持例外。

11.1. 查看现有策略

通常位于 /etc/$service 目录中服务的策略文件。例如,Compute (nova)的 policy.json 文件的完整路径是 /etc/nova/policy.json

有两个重要的架构更改会影响如何查找现有策略:

  • Red Hat OpenStack Platform 现已容器化。

    • 如果您从服务容器内查看,策略文件位于传统路径中:

      /etc/$service/policy.json

    • 如果您从服务容器外部查看,策略文件位于以下路径中:

      /var/lib/config-data/puppet-generated/$service/etc/$service/policy.json

  • 每个服务都有在代码中提供的默认策略,其中文件只在手动创建文件时可用,或者使用 oslopolicy 工具生成这些文件。要生成策略文件,请使用容器中的 oslopolicy-policy-generator,如下例所示:

    podman exec -it keystone oslopolicy-policy-generator --namespace keystone

默认情况下,生成的策略由 oslo.policy CLI 工具推送到 stdout。