OpenStack Keystone的基本概念詳細(xì)介紹
OpenStack Keystone的基本概念理解
Keystone簡(jiǎn)介
Keystone(OpenStack Identity Service)是OpenStack框架中,負(fù)責(zé)身份驗(yàn)證、服務(wù)規(guī)則和服務(wù)令牌的功能, 它實(shí)現(xiàn)了OpenStack的Identity API。Keystone類似一個(gè)服務(wù)總線, 或者說(shuō)是整個(gè)Openstack框架的注冊(cè)表, 其他服務(wù)通過(guò)keystone來(lái)注冊(cè)其服務(wù)的Endpoint(服務(wù)訪問(wèn)的URL),任何服務(wù)之間相互的調(diào)用, 需要經(jīng)過(guò)Keystone的身份驗(yàn)證, 來(lái)獲得目標(biāo)服務(wù)的Endpoint來(lái)找到目標(biāo)服務(wù)。
Keystone基本概念介紹
1. User
User即用戶,他們代表可以通過(guò)keystone進(jìn)行訪問(wèn)的人或程序。Users通過(guò)認(rèn)證信息(credentials,如密碼、API Keys等)進(jìn)行驗(yàn)證。
2. Tenant
Tenant即租戶,它是各個(gè)服務(wù)中的一些可以訪問(wèn)的資源集合。例如,在Nova中一個(gè)tenant可以是一些機(jī)器,在Swift和Glance中一個(gè)tenant可以是一些鏡像存儲(chǔ),在Quantum中一個(gè)tenant可以是一些網(wǎng)絡(luò)資源。Users默認(rèn)的總是綁定到某些tenant上。
3. Role
Role即角色,Roles代表一組用戶可以訪問(wèn)的資源權(quán)限,例如Nova中的虛擬機(jī)、Glance中的鏡像。Users可以被添加到任意一個(gè)全局的 或 租戶內(nèi)的角色中。在全局的role中,用戶的role權(quán)限作用于所有的租戶,即可以對(duì)所有的租戶執(zhí)行role規(guī)定的權(quán)限;在租戶內(nèi)的role中,用戶僅能在當(dāng)前租戶內(nèi)執(zhí)行role規(guī)定的權(quán)限。
4. Service
Service即服務(wù),如Nova、Glance、Swift。根據(jù)前三個(gè)概念(User,Tenant和Role)一個(gè)服務(wù)可以確認(rèn)當(dāng)前用戶是否具有訪問(wèn)其資源的權(quán)限。但是當(dāng)一個(gè)user嘗試著訪問(wèn)其租戶內(nèi)的service時(shí),他必須知道這個(gè)service是否存在以及如何訪問(wèn)這個(gè)service,這里通常使用一些不同的名稱表示不同的服務(wù)。在上文中談到的Role,實(shí)際上也是可以綁定到某個(gè)service的。例如,當(dāng)swift需要一個(gè)管理員權(quán)限的訪問(wèn)進(jìn)行對(duì)象創(chuàng)建時(shí),對(duì)于相同的role我們并不一定也需要對(duì)nova進(jìn)行管理員權(quán)限的訪問(wèn)。為了實(shí)現(xiàn)這個(gè)目標(biāo),我們應(yīng)該創(chuàng)建兩個(gè)獨(dú)立的管理員role,一個(gè)綁定到swift,另一個(gè)綁定到nova,從而實(shí)現(xiàn)對(duì)swift進(jìn)行管理員權(quán)限訪問(wèn)不會(huì)影響到Nova或其他服務(wù)。
5. Endpoint
Endpoint,翻譯為“端點(diǎn)”,我們可以理解它是一個(gè)服務(wù)暴露出來(lái)的訪問(wèn)點(diǎn),如果需要訪問(wèn)一個(gè)服務(wù),則必須知道他的endpoint。因此,在keystone中包含一個(gè)endpoint模板(endpoint template,在安裝keystone的時(shí)候我們可以在conf文件夾下看到這個(gè)文件),這個(gè)模板提供了所有存在的服務(wù)endpoints信息。一個(gè)endpoint template包含一個(gè)URLs列表,列表中的每個(gè)URL都對(duì)應(yīng)一個(gè)服務(wù)實(shí)例的訪問(wèn)地址,并且具有public、private和admin這三種權(quán)限。public url可以被全局訪問(wèn)(如http://compute.example.com),private url只能被局域網(wǎng)訪問(wèn)(如http://compute.example.local),admin url被從常規(guī)的訪問(wèn)中分離。
=================== 引用 Aaron 的理解=====================
keystone 里面的概念很多,有:User,Credentials,Authentication,Token,Tenant,Service,Endpoint,Role。在這么多概念中,其實(shí)最主要的就是 User 和 Tenant 。由于一些安全,服務(wù)問(wèn)題,才引發(fā)了其它的概念。
那什么叫做 User ,Tenant 呢?這里我舉個(gè)比較好理解的例子。我們?nèi)ベe館住的時(shí)候,我們自己就相當(dāng)于 User ,而賓館就是 Tenant 。這是最簡(jiǎn)單的情況,賓館值提供房間,我們只需要住房。
隨著后來(lái)生活物質(zhì)等的提高,這種現(xiàn)象就變了。我們?nèi)ベe館住的時(shí)候,很多東西都不一樣,比如,開(kāi)房間要身份證,房間的鑰匙是一個(gè)可以當(dāng)卡刷的牌子,我們進(jìn)出賓館的時(shí)候需要用自己的鑰匙來(lái)開(kāi)啟賓館的大門(mén);還有就是,賓館不僅僅是用來(lái)住的了,它可以給我們提供飲食,娛樂(lè),健身等各種服務(wù);而且服務(wù)層次的不同,房間也不同,房間里面的配置豪華程度也不一樣。在這種情況下,描述我們和賓館之間的關(guān)系就復(fù)雜一些了,這就引發(fā)了一些新的概念。
舉完這個(gè)例子, keystone 中的各種概念就可以和例子中的事物相掛鉤了。
User | 住賓館的人 |
Credentials | 開(kāi)啟房間的鑰匙 |
Authentication | 賓館為了拒絕不必要的人進(jìn)出賓館,專門(mén)設(shè)置的機(jī)制,只有擁有鑰匙的人才能進(jìn)出 |
Token | 也是一種鑰匙,有點(diǎn)特別 |
Tenant | 賓館 |
Service | 賓館可以提供的服務(wù)類別,比如,飲食類,娛樂(lè)類 |
Endpoint | 具體的一種服務(wù),比如吃燒烤,打羽毛球 |
Role | VIP 等級(jí),VIP越高,享有越高的權(quán)限 |
Keystone在OpenStack中的訪問(wèn)流程范例
如上圖所示,(這段不翻譯了,看圖也能看懂,反正我之前翻譯的也不好T^T)To access some service, users provide their credentials to Keystone and receive a token. The token is just a string that is connected to the user and tenant internally by Keystone. This token travels between services with every user request or requests generated by a service to another service to process the user's request.The users find a URL of a service that they need. If the user, for example, wants to spawn a new VM instance in Nova, one can find an URL to Nova in the list of endpoints provided by Keystone and send an appropriate request.After that, Nova verifies the validity of the token in Keystone and should create an instance from some image by the provided image ID and plug it into some network. At first Nova passes this token to Glance to get the image stored somewhere in there. After that, it asks Quantum to plug this new instance into a network; Quantum verifies whether the user has access to the network in its own database and to the interface of VM by requesting info in Nova. All the way this token travels between services so that they can ask Keystone or each other for additional information or some actions.
參考內(nèi)容:
http://mirantis.blogspot.com/2011/09/what-is-this-keystone-anyway.html
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
cURL操作Openstack對(duì)象存儲(chǔ)的ReST API詳解
這篇文章主要介紹了cURL操作Openstack對(duì)象存儲(chǔ)的ReST API詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11java.util.ConcurrentModificationException 解決方法
這篇文章主要介紹了 java.util.ConcurrentModificationException 解決方法的相關(guān)資料,需要的朋友可以參考下2016-11-11OpenStack 創(chuàng)建windows鏡像實(shí)現(xiàn)步驟
這篇文章主要介紹了 OpenStack 創(chuàng)建windows鏡像實(shí)現(xiàn)步驟的相關(guān)資料,需要的朋友可以參考下2016-11-11Centos7環(huán)境準(zhǔn)備openstack pike的安裝
本篇文章主要介紹了Centos7環(huán)境準(zhǔn)備openstack pike的安裝,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03CentOS7.2部署OpenStack(一)—環(huán)境準(zhǔn)備
這篇文章主要介紹了CentOS7.2部署OpenStack(一)—環(huán)境準(zhǔn)備,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12OpenStack手動(dòng)分布式部署Glance(Queens版)
這篇文章主要介紹了OpenStack手動(dòng)分布式部署Glance(Queens版),Glance為云平臺(tái)虛擬機(jī)提供鏡像服務(wù),例如:上傳鏡像、刪除鏡像等,需要的朋友可以參考下2023-03-03