簡體   English   中英

手動 Openstack 安裝:警告:……沒有服務“身份”的策略規則

[英]Manual Openstack Install: WARNING: … No Policy rules for service 'identity'

手動安裝 Openstack Train 版本。

當以非管理員角色登錄 Horizon 儀表板並單擊儀表板時,右上角會彈出錯誤。

具體來說,在 Compute > Images 下會出現兩個錯誤:

  1. 錯誤:禁止。 請求的操作權限不足
  2. 錯誤:無法檢索項目

查看 httpd 的 error_log 會一遍又一遍地顯示這些錯誤:

WARNING openstack_auth.policy No policy rules for service 'network' in /usr/share/openstack-dashboard/openstack_dashboard/conf/neutron_policy.json 
WARNING openstack_auth.policy No policy rules for service 'identity' in /usr/share/openstack-dashboard/openstack_dashboard/conf/keystone_policy.json

嘗試將 go 到/usr/share/openstack-dashboard/openstack_dashboard/並查看 keystone_policy.json 或 neutron_policy.Z466DEEC76ECDF5FCA6D38571F63245 目錄時缺少文件。

Openstack 聲明每個服務都有自己的 policy.json 文件(或 yaml,如果使用較新版本)。 Openstack 文檔但是,當我將 go 轉到服務文件時,它們是空的。 我的問題是是否可以簡單地創建這些 policy.json 文件? Openstack 文檔指出不建議更改 policy.json 文件,這讓我認為這是一個錯誤。 其他人是否遇到過類似的問題?

更新

我已經在/usr/share/openstack-dashboard/openstack_dashboard下創建了conf目錄。 然后,我使用 oslo 生成器使用以下命令為每個服務創建新的策略文件: oslopolicy-policy-generator --namespace keystone --output-file keystone_policy.json

我重新啟動了 apache 並以管理員身份登錄到 Horizon,發現我的管理員用戶無法創建項目、用戶或角色。

目前被困在這個問題上大約一個星期。

有人有類似的問題嗎?

我自己經歷了這個問題的一部分。

例如,在glance部分,所有策略都在 glncs-api/registry hosts /etc/glance/policy.json中定義,並且相同的文件存在於我的儀表板集群中的路徑/etc/openstack-dashboard下。 local_settings查找POLICY_FILES =部分並將其注釋掉,這樣role = user就不會遇到錯誤。

至於政策下的identity

POLICY_FILES = {
   'identity': 'keystone_policy.json',
}

您必須確保keystone_policy.json存在於 openstack-dashboard 路徑下。

作為用戶角色,您將看到您擁有/成員的項目沒有錯誤。

我已經進行了這些更改,現在在測試環境中運行,然后再投入生產,以確保所有更改都不會造成損害。

所以看起來 yaml 文件在 Train 版本中可能無法正常工作。

oslopolicy-policy-generator --namespace keystone --output-file keystone_policy.json命令生成一個以.json 結尾的文件,但實際上看起來像 Z6EEDC03A68A69933C763ZE674F2D7C42F。

當放置在/usr/share/openstack-dashboard/openstack_dashboard/conf文件夾中時,策略文件未正確應用。

以下命令最終解決了我與策略文件有關的所有問題:

oslopolicy-policy-upgrade \
--config-file /etc/keystone/keystone.conf \
--format json \
--namespace keystone \
--output-file keystone_policy_2.json \
--policy keystone_policy.json

檢查/var/log/keystone/keystone.log時,注意到以下消息:
Deprecated policy rules found. Use oslopolicy-policy-generator and oslopolicy-policy-upgrade to detect and resolve deprecated policies in your configuration. 這就是促使使用oslopolicy-policy-upgrade -h的原因

還要確保/openstack_dashboard/defaults.py說以下內容:

POLICY_FILES = {
    'identity': 'keystone_policy.json',
    'compute': 'nova_policy.json',
    'volume': 'cinder_policy.json',
    'image': 'glance_policy.json',
    'network': 'neutron_policy.json',
}

我想指出,這兩個不同的命令輸出了兩個不同的 keystone_policy.json 文件。 第一個命令有很多關於 system_scope:all 的提及,第二個命令有更簡單的規則,例如:“identity:list_users_in_group”:“rule:admin_required”。 所以也許這與使用 IdentityV3 和 V2 有關?

我不確定。 但我很高興權限被正確應用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM