策略¶
共享文件系统服务拥有自己的基于角色的访问策略。它们决定了哪些用户可以以何种方式访问哪些对象,并在服务的 policy.json 文件中定义。
提示
配置文件 policy.json 可以放置在任何位置。默认情况下,期望路径为 /etc/manila/policy.json。
每当对共享文件系统服务发出 API 调用时,策略引擎都会使用适当的策略定义来确定是否可以接受该调用。
策略规则确定允许 API 调用的条件。 /etc/manila/policy.json 文件包含规则,当规则为空字符串时,操作始终被允许:"";基于用户角色的规则;包含布尔表达式的规则。以下是共享文件系统服务的 policy.json 文件的一个片段。它可能在不同的 OpenStack 版本之间发生变化。
{
"context_is_admin": "role:admin",
"admin_or_owner": "is_admin:True or project_id:%(project_id)s",
"default": "rule:admin_or_owner",
"share_extension:quotas:show": "",
"share_extension:quotas:update": "rule:admin_api",
"share_extension:quotas:delete": "rule:admin_api",
"share_extension:quota_classes": "",
}
用户必须被分配到你在策略中引用的组和角色。当使用用户管理命令时,此操作由服务自动完成。
注意
对 /etc/manila/policy.json 的任何更改都会立即生效,这允许在共享文件系统服务运行时实施新策略。手动修改策略可能会产生意想不到的副作用,不建议这样做。有关详细信息,请参阅 policy.json 文件。