第 3 章 Keystone - 018 - 理解 Keystone 核心概念
Keystone核心概念
?
作為 OpenStack 的基礎支持服務,Keystone 做下面這幾件事情:
1、管理用戶及其權限
2、維護 OpenStack Services 的 Endpoint
3、Authentication(認證)和 Authorization(鑒權)
?
下面這些概念都需要理解:
?
User
User 指代任何使用 OpenStack 的實體,可以是真正的用戶,其他系統或者服務。
?
當 User 請求訪問 OpenStack 時,Keystone 會對其進行驗證。
Horizon 在 Identity->Users 管理 User
?
除了 admin 和 demo,OpenStack 也為 nova、cinder、glance、neutron 服務創建了相應的 User。
admin 也可以管理這些 User。
?
Credentials
Credentials 是 User 用來證明自己身份的信息,可以是:
1. 用戶名/密碼
2. Token
3. API Key
4. 其他高級方式
?
Authentication
Authentication 是 Keystone 驗證 User 身份的過程。
User 訪問 OpenStack 時向 Keystone 提交用戶名和密碼形式的 Credentials,Keystone 驗證通過后會給 User 簽發一個 Token 作為后續訪問的 Credential。
?
Token
Token 是由數字和字母組成的字符串,User 成功 Authentication 后 Keystone 生成 Token 并分配給 User。
1、Token 用做訪問 Service 的 Credential
2、Service 會通過 Keystone 驗證 Token 的有效性
3、Token 的有效期默認是 24 小時
?
Project
Project 用于將 OpenStack 的資源(計算、存儲和網絡)進行分組和隔離。
根據 OpenStack 服務的對象不同,Project 可以是一個客戶(公有云,也叫租戶)、部門或者項目組(私有云)。
?
注意:
1、資源的所有權是屬于 Project 的,而不是 User。
2、在 OpenStack 的界面和文檔中,Tenant / Project / Account 這幾個術語是通用的,但長期看會傾向使用 Project
3、每個 User(包括 admin)必須掛在 Project 里才能訪問該 Project 的資源。 一個User可以屬于多個 Project。
4、admin 相當于 root 用戶,具有最高權限
?
?
?
Horizon 在 Identity->Projects 中管理 Project
?
通過 Manage Members 將 User 添加到 Project
?
Service
OpenStack 的 Service 包括 Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift)、Image Service (Glance) 、Networking Service (Neutron) 等。
每個 Service 都會提供若干個 Endpoint,User 通過 Endpoint 訪問資源和執行操作。
?
Endpoint
Endpoint 是一個網絡上可訪問的地址,通常是一個 URL。
Service 通過 Endpoint 暴露自己的 API。
Keystone 負責管理和維護每個 Service 的 Endpoint。
?
可以使用下面的命令來查看 Endpoint。
root@devstack-controller:~# source devstack/openrc admin admin
root@devstack-controller:~# openstack catalog list
?
Role
安全包含兩部分:Authentication(認證)和 Authorization(鑒權)
?
Authentication (認證)解決的是“你是誰?”的問題
Authorization (鑒權)解決的是“你能干什么?”的問題
?
Keystone 借助 Role 實現 Authorization:
1、Keystone定義Role
?
?
2、可以為 User 分配一個或多個 Role,Horizon 的菜單為 Identity->Project->Manage Members
?
3、Service 決定每個 Role 能做什么事情 Service 通過各自的 policy.json 文件對 Role 進行訪問控制。
???? 下面是 Cinder 服務 /etc/cinder/policy.json 中的示例
?
上面配置的含義是:
對于 create、attach_network 和 attach_volume 操作,任何Role的 User 都可以執行;
但只有 admin 這個 Role 的 User 才能執行 forced_host 操作。
?
OpenStack 默認配置只區分 admin 和非 admin Role。 如果需要對特定的 Role 進行授權,可以修改 policy.json。
?
-----------------------------------引用來自----------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587894&idx=1&sn=877a9cb2c23f242e45e7c113f2d2440f&chksm=8d3081afba4708b9295debc08ac8159927733a1429a5f488ce136370984be15e6039b3496b46&scene=21#wechat_redirect
轉載于:https://www.cnblogs.com/gsophy/p/10979491.html
總結
以上是生活随笔為你收集整理的第 3 章 Keystone - 018 - 理解 Keystone 核心概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DNS的主从架构、子域委派、转发器
- 下一篇: Jmeter 在 beanshell 脚