openstack-keystone中的許可權管理理解
1)endpoint即提供服務的地址,服務(service)是個抽象的概念,endpoint需要繫結在service上;
2)許可權即是否被允許訪問openstack中某些服務;
3)角色代表一系列的許可權;
4)使用者需要繫結在相應的角色上,才能擁有這個角色的許可權;
5)使用者可以屬於一個或者多個租戶,使用者在同一個租戶中可以有一個或者多個角色;
以下摘自網路資源:
Keystone基本概念介紹
1. User
User即使用者,他們代表可以通過keystone進行訪問的人或程式。Users通過認證資訊(credentials,如密碼、APIKeys等)進行驗證。
2. Tenant
Tenant即租戶,它是各個服務中的一些可以訪問的資源集合。例如,在Nova中一個tenant可以是一些機器,在Swift和Glance中一個tenant可以是一些映象儲存,在Quantum中一個tenant可以是一些網路資源。Users預設的總是繫結到某些tenant上。
3. Role
Role即角色,Roles代表一組使用者可以訪問的資源許可權,例如Nova中的虛擬機器、Glance中的映象。Users可以被新增到任意一個全域性的或租戶內的角色中。在全域性的role中,使用者的role許可權作用於所有的租戶,即可以對所有的租戶執行role規定的許可權;在租戶內的role中,使用者僅能在當前租戶內執行
4. Service
Service即服務,如Nova、Glance、Swift。根據前三個概念(User,Tenant和Role)一個服務可以確認當前使用者是否具有訪問其資源的許可權。但是當一個user嘗試著訪問其租戶內的service時,他必須知道這個service是否存在以及如何訪問這個service,這裡通常使用一些不同的名稱表示不同的服務。在上文中談到的Role,實際上也是可以繫結到某個service的。例如,當swift需要一個管理員許可權的訪問進行物件建立時,對於相同的role我們並不一定也需要對nova進行管理員許可權的訪問。為了實現這個目標,我們應該建立兩個獨立的管理員
5. Endpoint
Endpoint,翻譯為“端點”,我們可以理解它是一個服務暴露出來的訪問點,如果需要訪問一個服務,則必須知道他的endpoint。因此,在keystone中包含一個endpoint模板(endpointtemplate,在安裝keystone的時候我們可以在conf資料夾下看到這個檔案),這個模板提供了所有存在的服務endpoints資訊。一個endpointtemplate包含一個URLs列表,列表中的每個URL都對應一個服務例項的訪問地址,並且具有public、private和admin這三種許可權。publicurl可以被全域性訪問(如http://compute.example.com),privateurl只能被區域網訪問(如http://compute.example.local),adminurl被從常規的訪問中分離。