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

jae*_*ong 21 openstack keystone

我真的想了解关键点的关键点,关于端点,区域,租户,服务,用户和角色之间的关系.我试图找到相关的文件,但遗憾的是,失败了.

任何人都可以提供任何指示或解释吗?

Mat*_*yce 36

Keystone是OpenStack的身份管理服务.

从本质上讲,它的作用是向用户授予令牌,无论是人员,服务还是其他任何东西.

如果您在OpenStack中的任何位置进行API查询,那么如果允许您进行API查询,则会发现keystone的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而言,项目是租户.因此,如果您登录地平线,您将看到项目的下拉列表.每个项目对应一个租户ID.您的令牌也与特定的租户ID相关联.因此,如果您打算处理用户所连接的多个租户,则可能需要为用户提供多个令牌.

现在,假设您将用户添加到管理员的租户ID.该用户是否获得管理员权限?答案是不.这就是角色发挥作用的地方.虽然管理员租户中的用户可以访问管理虚拟机和用于启动虚拟机的配额,但用户将无法执行查询用户列表的keystone等操作.但是,如果您向该用户添加管理员角色,他们将被赋予ACL权限,以充当keystone API和其他API中的管理员.因此,将租户视为一种资源组,将角色视为ACL集.

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

keystone提供了最后一个有用的东西.目录.keystone目录有点像openstack API的电话簿.无论何时使用命令行客户端,比如可以调用nova list列出实例,nova首先对keystone进行身份验证并获取使用API​​的令牌,但它也会立即向keystone目录请求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将用于更改用户密码或向用户添加新角色等内容.

挺直的?