keystone OpenStack中端点、区域等之间的关系

keystone OpenStack中端点、区域等之间的关系,openstack,keystone,Openstack,Keystone,我真的在试图理解keystone背后关于端点、区域、租户、服务、用户和角色之间的关系。 我试图找到相关的文件,但遗憾的是,没有找到 有人能给点建议或解释吗?Keystone是OpenStack的身份管理服务 本质上,它的作用是向用户授予令牌,无论他们是人、服务还是任何东西 如果您在OpenStack中的任何位置进行API查询,keystone的API就是在允许您进行该API查询的情况下发现它的方式 让我们从地上爬起来 用户。今天Keystone的用户一般都是人。目前还没有足够的细粒度ACL支持来

我真的在试图理解keystone背后关于端点、区域、租户、服务、用户和角色之间的关系。 我试图找到相关的文件,但遗憾的是,没有找到


有人能给点建议或解释吗?

Keystone是OpenStack的身份管理服务

本质上,它的作用是向用户授予令牌,无论他们是人、服务还是任何东西

如果您在OpenStack中的任何位置进行API查询,keystone的API就是在允许您进行该API查询的情况下发现它的方式

让我们从地上爬起来

用户。今天Keystone的用户一般都是人。目前还没有足够的细粒度ACL支持来真正调用OpenStack中的许多用户作为传统意义上的“服务”帐户。但是,有一个服务帐户用作到Keystone API的回程连接,作为OpenStack基础设施本身的一部分。我们将避免深入研究那个异常用户

当用户对Keystone进行身份验证时(您点击OS_AUTH_URL与Keystone对话..通常是Keystone api框的端口5000),用户会说“我是用户X,我有密码Y,我属于租户Z”

X可以是用户名或用户ID(用户的唯一uuid) Y是密码,但您也可以使用令牌进行身份验证。 Z是租户名称或租户id(租户的唯一uuid)。在过去的Keystone API中,您不需要指定租户名称,但如果不指定,您的令牌将不会非常有用,因为令牌不会与租户关联,并且您将被拒绝该租户上的任何ACL

所以。。。用户是一件很明显的事情。密码是一件很明显的事情。但是什么是房客

租户也被称为项目。事实上,曾多次尝试将名称命名为承租人或项目,但由于无法仅使用一个术语,它们的含义相同。就API而言,项目是租户。因此,如果您登录到horizon,您将看到项目的下拉列表。每个项目对应一个租户id。您的令牌也与特定的租户id相关联。因此,如果要处理用户所连接的多个租户,则可能需要为用户使用多个令牌

现在,假设您向admin的租户id添加了一个用户。那个用户有管理员权限吗?答案是否定的。这就是角色发挥作用的地方。虽然管理员租户中的用户可能有权访问管理员虚拟机,并拥有启动虚拟机的配额,但该用户无法执行诸如查询用户列表的keystone之类的操作。但是,如果您向该用户添加管理员角色,他们将被赋予ACL权限,在keystone API和其他API中充当管理员。因此,将租户视为一种资源组,将角色视为ACL集

区域更像是在openstack基础设施环境中对物理资源进行地理分组的方式。假设您有两个分段数据中心。您可以将一个放在openstack环境的区域A中,另一个放在区域B中。区域的有用性正在迅速发展,特别是随着最近openstack版本中单元和域的引入。除非您打算构建大型云,否则您可能不需要掌握这些知识

keystone提供了最后一个有用的东西。目录。keystone目录有点像openstack API的电话簿。每当您使用命令行客户机时,例如当您可能调用nova list来列出实例时,nova首先对keystone进行身份验证,并为您获取使用API的令牌,但它也会立即向keystone catalog请求API端点列表。对于keystone,cinder,nova,glance,swift。。。nova实际上只会使用nova api端点,不过根据您的查询,您可能会使用keystone管理api端点。。。。我们会继续讨论的。但本质上,目录是API在世界何处的规范信息源。这样,您只需告诉客户机keystone的公共API端点在哪里,它就可以从目录中找出其余的内容

现在,我已经提到了公共API和keystone的管理API

是的keystone有两个API。。。某种程度上。它在端口5000上运行一个API,在32000范围内运行另一个API。5000号是公共港口。在这里,您可以查找目录,并请求令牌,以便与其他API对话。它非常简单,而且有点硬。管理API将用于更改用户密码或向用户添加新角色等操作


非常直截了当?

一个迟来的回复,但我希望它能帮助未来的读者

端点就像是您使用服务的接触点。adminurl,顾名思义,仅供管理员用户使用。内部url是供各种服务在必要时相互对话的,而公共url是供其他任何人使用的

解释了为什么需要单独的公共和内部url


您不必为服务端点分配角色。您可以将角色分配给访问服务的用户,这就是您的操作方式。

是我理解openstack keystone中的租户、用户、角色和权限的方式。你可能会发现它也很有趣

我会尽量用外行的语言来表达

服务-Openstack需要大量服务才能使云基础设施(计算、存储和网络)正常运行。为了使它们能够顺利地同时拥有细粒度的控制,Openstack使用了服务的概念。服务使最终用户能够操作这三个核心资源之一。例如:对于存储,使用cinder和swift服务。这些服务还可以配置为在后端使用Ceph或gluster

端点-点w