`
youjin
  • 浏览: 22271 次
  • 来自: ...
社区版块
存档分类
最新评论

OpenStack Keystone的基本概念理解

阅读更多
转载:http://www.kankanews.com/ICkengine/archives/10788.shtml

Keystone简介

  Keystone(OpenStack Identity Service)是OpenStack框架中,负责身份验证、服务规则和服务令牌的功能, 它实现了OpenStack的Identity API。Keystone类似一个服务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份验证, 来获得目标服务的Endpoint来找到目标服务。

Keystone基本概念介绍

  1. User

  User即用户,他们代表可以通过keystone进行访问的人或程序。Users通过认证信息(credentials,如密码、API Keys等)进行验证。

  2. Tenant

  Tenant即租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Quantum中一个tenant可以是一些网络资源。Users默认的总是绑定到某些tenant上。

  3. Role

  Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的 或 租户内的角色中。在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。

  4. Service

  Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不同的名称表示不同的服务。在上文中谈到的Role,实际上也是可以绑定到某个service的。例如,当swift需要一个管理员权限的访问进行对象创建时,对于相同的role我们并不一定也需要对nova进行管理员权限的访问。为了实现这个目标,我们应该创建两个独立的管理员role,一个绑定到swift,另一个绑定到nova,从而实现对swift进行管理员权限访问不会影响到Nova或其他服务。

  5. Endpoint

  Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板(endpoint template,在安装keystone的时候我们可以在conf文件夹下看到这个文件),这个模板提供了所有存在的服务endpoints信息。一个endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。public url可以被全局访问(如http://compute.example.com),private url只能被局域网访问(如http://compute.example.local),admin url被从常规的访问中分离。

  =================== 引用 Aaron 的理解=====================

  keystone 里面的概念很多,有:User,Credentials,Authentication,Token,Tenant,Service,Endpoint,Role。在这么多概念中,其实最主要的就是 User 和 Tenant 。由于一些安全,服务问题,才引发了其它的概念。
  那什么叫做 User ,Tenant 呢?这里我举个比较好理解的例子。我们去宾馆住的时候,我们自己就相当于 User ,而宾馆就是 Tenant 。这是最简单的情况,宾馆值提供房间,我们只需要住房。
  随着后来生活物质等的提高,这种现象就变了。我们去宾馆住的时候,很多东西都不一样,比如,开房间要身份证,房间的钥匙是一个可以当卡刷的牌子,我们进出宾馆的时候需要用自己的钥匙来开启宾馆的大门;还有就是,宾馆不仅仅是用来住的了,它可以给我们提供饮食,娱乐,健身等各种服务;而且服务层次的不同,房间也不同,房间里面的配置豪华程度也不一样。在这种情况下,描述我们和宾馆之间的关系就复杂一些了,这就引发了一些新的概念。
  举完这个例子, keystone 中的各种概念就可以和例子中的事物相挂钩了。
User 住宾馆的人
Credentials 开启房间的钥匙
Authentication 宾馆为了拒绝不必要的人进出宾馆,专门设置的机制,只有拥有钥匙的人才能进出
Token 也是一种钥匙,有点特别
Tenant 宾馆
Service 宾馆可以提供的服务类别,比如,饮食类,娱乐类
Endpoint 具体的一种服务,比如吃烧烤,打羽毛球
Role VIP 等级,VIP越高,享有越高的权限

Keystone在OpenStack中的访问流程范例---见附件图片


  

  如上图所示,(这段不翻译了,看图也能看懂,反正我之前翻译的也不好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.

参考内容:

http://mirantis.blogspot.com/2011/09/what-is-this-keystone-anyway.html
  • 大小: 26.8 KB
分享到:
评论

相关推荐

    OpenStack Keystone的基本概念详细介绍

    OpenStack Keystone的基本概念理解 Keystone简介  Keystone(OpenStack Identity Service)是OpenStack框架中,负责身份验证、服务规则和服务令牌的功能, 它实现了OpenStack的Identity API。Keystone类似一个服务...

    OpenStack Keystone

    Keystone的基本概念涉及用户、角色和服务之间的交互。其中用户是使用云计算服务的个人或系统实体;角色定义了用户访问资源的权限级别;服务则是指OpenStack内部的各种服务模块,例如计算服务Nova、镜像服务Glance等...

    18-理解 Keystone 核心概念1

    通过以上概念的理解,我们可以看到Keystone在OpenStack中扮演着至关重要的角色,它构建了一个安全、灵活的身份管理和访问控制体系,确保了OpenStack环境的安全性和可靠性。管理员可以通过Horizon Dashboard或命令行...

    openstack 设计与实现

    本书首先介绍了OpenStack的基本概念和架构,包括其核心服务如计算(Nova)、存储(Swift)、网络(Neutron)和身份管理(Keystone)。这些服务共同构成了OpenStack的基础,使得用户可以通过API或Web界面创建和管理...

    openstack对接只读LDAP

    为了更好地理解Keystone与只读LDAP的集成方案,我们首先需要了解Keystone的基本概念和服务进程。 - **用户管理**:包括记录用户信息和用户权限信息。主要涉及用户(User)、租户(Tenant)、角色(Role)等概念。 - **...

    OpenStack从零开始学

    此外,对于云计算的基本概念,如虚拟化技术(如KVM)、网络模型(如VLAN和SDN)以及分布式存储原理,都需要有扎实的理解。 书中可能会详细讲解OpenStack的安装过程,包括使用DevStack快速搭建试验环境,以及在生产...

    openstack精华笔记

    综上所述,OpenStack 精华笔记可能涵盖了OpenStack的基本概念、核心组件、部署策略、管理和实际应用案例等内容,是学习和理解OpenStack的宝贵资料。通过深入学习这些笔记,读者将能够掌握OpenStack的核心技术和实践...

    《OpenStack云平台实战》课程测试试卷.docx

    这些题目覆盖了OpenStack的核心组件,如Nova(计算)、Cinder(存储)、Neutron(网络)、Glance(镜像)、Keystone(认证)、Swift(对象存储)和Horizon(dashboard),以及高可用性(High Availability, HA)等相关...

    openstack4j-2

    开发人员在使用OpenStack4J-2时,需要熟悉OpenStack的基本概念和服务,理解Java编程,以及如何使用框架提供的API来实现具体功能。同时,阅读官方文档、参与社区讨论和查看示例代码都是学习和应用OpenStack4J-2的有效...

    Packt.OpenStack.Cloud.Computing.Cookbook.3rd.Edition

    1. **OpenStack基础**:首先,书中会介绍OpenStack的基本概念,包括其架构、组件和工作流程,帮助读者建立对OpenStack的整体理解。 2. **安装与配置**:详述如何安装和配置OpenStack环境,包括使用各种部署工具(如...

    openstack install guide zypper kilo英文版

    文档中提到了OpenStack的示例架构,这可以帮助用户理解各个组件是如何协同工作的。例如,在一个典型的OpenStack部署中,用户首先通过Keystone进行认证,然后通过Nova创建虚拟机实例,使用Neutron配置网络连接,并...

    OpenStack认证管理

    通过对OpenStack认证管理的学习,特别是Keystone的核心概念和技术细节的深入了解,可以帮助我们更好地理解OpenStack的安全体系结构,从而有效地管理和保护云计算环境中的资源。同时,实践操作的练习将进一步加强理论...

    openstack大纲

    Keystone作为认证服务,负责身份管理和授权,学员将学习Keystone的基本概念、架构和操作实践。Glance是镜像服务,用于存储和检索虚拟机镜像,学员将了解Glance的工作原理并进行实验操作,包括镜像的创建、修改和转换...

    ThinkCloud OpenStack基础版用户手册.pdf

    本手册涵盖了 OpenStack 的基本概念、ThinkCloud OpenStack 功能特点、产品使用指南等内容。 1. OpenStack 简介 OpenStack 是一个开源的云计算平台,提供了Infrastructure as a Service(IaaS)的解决方案。...

    OpenStack两天培训

    总的来说,OpenStack培训覆盖了从基础概念、项目组成、架构设计、历史发展、服务能力到实际部署的全面内容。这些知识点共同构成了OpenStack培训的核心,旨在帮助学员快速入门并掌握OpenStack这一强大的云计算平台。

    openstack二次开发简介

    在进行OpenStack二次开发时,针对Keystone的服务开发通常涉及到对上述概念的理解和应用。比如,开发者可能会通过编写脚本或应用程序来自动化用户管理流程,如创建用户、分配角色、管理项目等。此外,还可以通过API...

    云基础设施openstack基础

    以上所述的知识点是理解OpenStack云基础设施的基石,也是掌握OpenStack基础架构和功能的基本要求。OpenStack作为一个复杂的云计算平台,其部署和管理需要深入理解这些核心概念和服务,以便高效利用其资源,为企业或...

Global site tag (gtag.js) - Google Analytics