第 5 章 策略(policy)
每个 OpenStack 服务都包含由访问策略管理的资源。例如,资源可能包含以下功能:
- 创建和启动实例的权限
- 将卷附加到实例的功能
作为 Red Hat OpenStack Platform (RHOSP)管理员,您可能需要创建自定义策略来引入具有不同级别访问权限的新角色,或更改现有角色的默认行为。您还需要在更改后验证 API 访问策略,并在策略无法正常工作时对其进行调试。验证和调试生产部署之外的策略,其中语法错误可能会导致停机,并且应用错误的授权可能会对安全性或可用性造成负面影响。
5.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
,如下例所示:docker exec -it keystone oslopolicy-policy-generator --namespace keystone
默认情况下,生成的策略通过 osly.policy CLI 工具推送到 stdout。