Keystone(Keystone各種專有名字解釋,Keystone功能,Keystone日志)


作為 OpenStack 的基礎支持服務,Keystone 做下面這幾件事情:
1.管理用戶及其權限
2.維護 OpenStack Services 的 Endpoint
3.Authentication(認證)和 Authorization(鑒權)

 

User;Credentials;Authentication;Token;Project;Service;Endpoint
===========================================================================================================
User 指代任何使用 OpenStack 的實體,可以是真正的用戶,其他系統或者服務。
當 User 請求訪問 OpenStack 時,Keystone 會對其進行驗證。

---------------------------------------------------------------------------------------------------------
Credentials 是 User 用來證明自己身份的信息,可以是:
    1. 用戶名/密碼
    2. Token
    3. API Key
    4. 其他高級方式

---------------------------------------------------------------------------------------------------------
Authentication 是 Keystone 驗證 User 身份的過程。User 訪問 OpenStack 時向 Keystone 提交用戶名和密碼形式的 Credentials,Keystone 驗證通過后會給 User 簽發一個 Token 作為后續訪問的 Credential。

---------------------------------------------------------------------------------------------------------
Token 是由數字和字母組成的字符串,User 成功 Authentication 后 Keystone 生成 Token 並分配給 User。
    1.Token 用做訪問 Service 的 Credential
    2.Service 會通過 Keystone 驗證 Token 的有效性
    3.Token 的有效期默認是 24 小時

---------------------------------------------------------------------------------------------------------
Project 用於將 OpenStack 的資源(計算、存儲和網絡)進行分組和隔離。
根據 OpenStack 服務的對象不同,Project 可以是一個客戶(公有雲,也叫租戶)、部門或者項目組(私有雲)。
這里請注意:
    1.資源的所有權是屬於 Project 的,而不是 User。
    2.在 OpenStack 的界面和文檔中,Tenant / Project / Account 這幾個術語是通用的,但長期看會傾向使用 Project
    3.每個 User(包括 admin)必須掛在 Project 里才能訪問該 Project 的資源。 一個User可以屬於多個 Project。
    4.admin 相當於 root 用戶,具有最高權限

---------------------------------------------------------------------------------------------------------
OpenStack 的 Service 包括 Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift)、Image Service (Glance) 、Networking Service (Neutron) 等。每個 Service 都會提供若干個 Endpoint,User 通過 Endpoint 訪問資源和執行操作。

---------------------------------------------------------------------------------------------------------
Endpoint 是一個網絡上可訪問的地址,通常是一個 URL。Service 通過 Endpoint 暴露自己的 API。 Keystone 負責管理和維護每個 Service 的 Endpoint。
User;Credentials;Authentication;Token;Project;Service;Endpoint

 

keystone認證和鑒權;Role與鑒權的關系;一次鑒權過程(白屏查看image列表)
===================================================================
安全包含兩部分:Authentication(認證)和 Authorization(鑒權)

Authentication 解決的是“你是誰?”的問題
Authorization 解決的是“你能干什么?”的問題

---------------------------------------------------------------------------------
Keystone 借助 Role 實現 Authorization:
    1.Keystone定義Role
    2.可以為 User 分配一個或多個 Role
    3.Service 決定每個 Role 能做什么事情,Service 通過各自的 policy.json 文件對 Role 進行訪問控制。
    [root@controller ~]# find / -name 'policy.json'
        /etc/nova/policy.json
        /etc/keystone/policy.json
        /etc/glance/policy.json
        /etc/placement/policy.json
        /etc/gnocchi/policy.json
        OpenStack 默認配置只區分 admin 和非 admin Role。 如果需要對特定的 Role 進行授權,可以修改 policy.json。

---------------------------------------------------------------------------------
示例:一次鑒權過程(白屏查看image列表)
    admin已登錄,點擊compute下images,顯示image列表
    1.admin將請求發送到了glance的endpoint
    2.glance向keystone驗證amdin身份的有效性
    3.glance查看/etc/glance/policy.json 判斷 admin 是否有查看 image 的權限
    4.權限判斷通過,glance將image列表發給admin(返回完整的html頁面,而不是json數據)
keystone認證和鑒權;Role與鑒權的關系;一次鑒權過程(白屏查看image列表)

 

Troubleshoot故障檢測與keystone日志
=======================================================================
每個 Service 都有自己的日志文件
Keystone 主要有兩個日志:keystone.log 和 keystone_access.log,
    devstack安裝,Keystone的日志文件目錄為/var/log/apache2/
    RDO安裝,Keystone的日志文件實際目錄為/var/log/keystone/

    cat /etc/keystone/keystone.conf  |grep debug    #keystone開啟debug模式,日志文件才會記錄debug日志
Troubleshoot故障檢測與keystone日志

 

黑屏執行openstack命令:admin-openrc.sh
===================================================================================
[root@controller ~]# cat admin-openrc.sh
    export OS_USERNAME=admin
    export OS_PASSWORD=111111
    export OS_PROJECT_NAME=admin
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_AUTH_URL=http://192.168.1.21:5000/v3      #配置文件/etc/keystone/keystone.conf;貌似默認端口為5000
export OS_IDENTITY_API_VERSION=3
[root@controller ~]# cat admin-openrc_unset.sh
    unset OS_USERNAME
    unset OS_PASSWORD
    unset OS_PROJECT_NAME
    unset OS_USER_DOMAIN_NAME
    unset OS_PROJECT_DOMAIN_NAME
    unset OS_AUTH_URL
    unset OS_IDENTITY_API_VERSION
--------------------------------------------------------------
source admin-openrc.sh          #
openstack catalog list          #查看 Endpoint
openstack role list             #查看keystone定義的角色
黑屏執行openstack命令:admin-openrc.sh

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM