《OpenStack云计算实战手册(第2版)》——1.9 配置服务的租户和服务的用户

简介:

本节书摘来自异步社区《OpenStack云计算实战手册(第2版)》一书中的第1章,第1.9节,作者: 【英】Kevin Jackson , 【美】Cody Bunch 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.9 配置服务的租户和服务的用户

服务端点创建完成以后,接下来配置它们以便其他OpenStack服务能够调用它们。为此,要为每个服务都配置一个特定的service租户,并指定对应的用户名和密码。这样的目的是保证更高的安全性、以及用来为云环境做故障排除和审计等工作。对于每一个需要OpenStack身份认证服务来验证和授权的服务,都需要在该服务启动之前,在其相关的配置文件里详细写明用于Keystone验证的用户名和密码。例如,glance服务是在/etc/glance/glance-registry-api.ini文件中指定,当OpenStack身份认证服务使用时,必须与之前创建的相匹配。

[filter:authtoken]  
paste.filter_factory = keystone.middleware.auth_token:filter_factory  
service_protocol = http  
service_host = 172.16.0.200  
service_port = 5000  
auth_host = 172.16.0.200  
auth_port = 35357  
auth_protocol = http  
auth_uri = http://172.16.0.200:5000/  
admin_tenant_name = service  
admin_user = glance  
admin_password = glance

准备工作
在开始之前,必须确认已经登录到已经安装了OpenStack身份认证服务的OpenStack控制节点上,或者有一个已经连接到安装了OpenStack身份认证服务的服务器上的Ubuntu客户端。

登录到使用Vagrant创建的OpenStack控制节点,执行以下命令:

vagrant ssh controller

如果keystone客户端工具尚未安装,则可以通过如下命令在Ubuntu客户端上安装以便管理OpenStack身份认证服务:

sudo apt-get update  
sudo apt-get -y install python-keystoneclient

确保已经设置了正确的环境变量,能访问到OpenStack环境。

export ENDPOINT=172.16.0.200  
export SERVICE_TOKEN=ADMIN  
export SERVICE_ENDPOINT=http://${ENDPOINT}:35357/v2.0

操作步骤
要配置一个合适的服务租户,需要执行如下步骤。

1.创建服务租户,命令如下所示:

keystone tenant-create \  
   --name service \  
   --description "Service Tenant" \  
   --enabled true

输出如图1-6所示。


b3a106033fd7d6a80faba86fe16974892d817dc0

2.记录下服务租户的ID,以方便后面使用。

SERVICE_TENANT_ID=$(keystone tenant-list \ 
   | awk '/\ service\ / {print $2}')

3.对于本节中的所有服务,都会为其创建一个用户账户,用户名和密码都和服务名称一致。例如,会在服务租户里用user-create选项创建一个用户名和密码均为nova的用户,命令如下所示:

keystone user-create \  
   --name nova \  
   --pass nova \  
   --tenant_id  $SERVICE_TENANT_ID \  
   --email nova@localhost \   
   --enabled true

输出如图1-7所示。


a7ee2bb329bb67e42a88d5e3610215abc39da551

4.重复上一步,继续为其他用到OpenStack身份认证功能的服务创建用户。

keystone user-create \  
   --name glance 
   --pass glance \ 
   --tenant_id $SERVICE_TENANT_ID \ 
   --email glance@localhost \  
   --enabled true

keystone user-create \  
   --name keystone \  
   --pass keystone \ 
   --tenant_id $SERVICE_TENANT_ID \  
   --email keystone@localhost \ 
   --enabled true

keystone user-create \
   --name cinder \
   --pass cinder \
   --tenant_id $SERVICE_TENANT_ID \
   --email cinder@localhost \
   --enabled true

5.现在为这些服务租户里的用户分配admin角色。为此,需要先取得nova用户的用户ID,然后在用user-role-add选项来分配角色。例如,为了将admin角色分配给服务租户里的nova用户,命令如下所示:

# Get the nova user id   
NOVA_USER_ID=$(keystone user-list \
   | awk '/\ nova\ / {print $2}')  

# Get the admin role id  
ADMIN_ROLE_ID=$(keystone role-list\
   | awk '/\ admin\ / {print $2}')  

# Assign the nova user the admin role in service tenant  
keystone user-role-add\ 
   --user $NOVA_USER_ID\ 
   --role $ADMIN_ROLE_ID\
   --tenant_id $SERVICE_TENANT_ID

6.接下来,重复上一步,继续为其他服务租户(glance、keystone和cinder用户)分配角色。

# Get the glance user id
GLANCE_USER_ID=$(keystone user-list\
   | awk '/\ glance\ / {print $2}')

# Assign the glance user the admin role in service tenant
keystone user-role-add\ 
   --user $GLANCE_USER_ID\ 
   --role $ADMIN_ROLE_ID\ 
   --tenant_id $SERVICE_TENANT_ID

# Get the keystone user id
KEYSTONE_USER_ID=$(keystone user-list\
   | awk '/\ keystone\ / {print $2}')

# Assign the keystone user the admin role in service tenant
keystone user-role-add\ 
   --user $KEYSTONE_USER_ID\ 
   --role $ADMIN_ROLE_ID\ 
   --tenant_id $SERVICE_TENANT_ID

# Get the cinder user id
CINDER_USER_ID=$(keystone user-list\
   | awk '/\ cinder \ / {print $2}')

# Assign the cinder user the admin role in service tenant
keystone user-role-add\ 
   --user $CINDER_USER_ID\ 
   --role $ADMIN_ROLE_ID\ 
   --tenant_id $SERVICE_TENANT_ID

工作原理
创建服务租户,然后在其中添加OpenStack运行必需的各个服务的用户,这两步操作和在系统中添加需要admin角色的其他用户没什么不同。为每个拥有admin角色的用户分配用户名和密码,并确保它们存在于服务租户内。然后,使用这些凭证来配置服务OpenStack 的身份认证服务。

相关文章
|
3月前
|
存储 Serverless 数据库
科普文:云计算服务类型IaaS, PaaS, SaaS, BaaS, Faas说明
本文介绍了云计算服务的几种主要类型,包括IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、BaaS(后端即服务)和FaaS(函数即服务)。每种服务模式提供了不同的服务层次和功能,从基础设施的提供到应用的开发和运行,再到软件的交付使用,满足了企业和个人用户在不同场景下的需求。文章详细阐述了每种服务模式的特点、优势和缺点,并列举了相应的示例。云计算服务的发展始于21世纪初,随着互联网技术的普及,这些服务模式不断演进,为企业和个人带来了高效、灵活的解决方案。然而,使用这些服务时也需要注意服务的稳定性、数据安全性和成本等问题。
2316 4
|
3月前
|
边缘计算 安全 网络安全
|
3月前
|
存储 安全 网络安全
云端盾牌:云计算时代的网络安全守护在数字化浪潮中,云计算以其高效、灵活的特性成为企业转型的加速器。然而,伴随其迅猛发展,网络安全问题亦如影随形,成为悬在每个组织头顶的达摩克利斯之剑。本文旨在探讨云计算服务中的网络安全挑战,分析信息安全的重要性,并提出相应对策,以期为企业构建一道坚实的云端防护网。
在当今这个数据驱动的时代,云计算已成为推动创新与效率的关键力量。它允许用户随时随地访问强大的计算资源,降低了企业的运营成本,加速了产品上市时间。但随之而来的网络威胁也日益猖獗,尤其是对于依赖云服务的企业而言,数据泄露、身份盗用等安全事件频发,不仅造成经济损失,更严重损害品牌信誉。本文深入剖析云计算环境中的安全风险,强调建立健全的信息安全管理机制的重要性,并分享一系列有效策略,旨在帮助企业和个人用户在享受云服务带来的便利的同时,也能构筑起强有力的网络防线。
|
4月前
|
机器学习/深度学习 安全 网络安全
云端盾牌:云计算时代的网络安全守护在这个数字脉搏加速跳动的时代,云计算以其高效、灵活的特性,成为推动企业数字化转型的强劲引擎。然而,正如每枚硬币都有两面,云计算的广泛应用也同步放大了网络安全的风险敞口。本文旨在探讨云计算服务中网络安全的关键作用,以及如何构建一道坚不可摧的信息防线,确保数据的安全与隐私。
云计算作为信息技术领域的革新力量,正深刻改变着企业的运营模式和人们的生活。但在享受其带来的便利与效率的同时,云服务的安全问题不容忽视。从数据泄露到服务中断,每一个安全事件都可能给企业和个人带来难以估量的损失。因此,本文聚焦于云计算环境下的网络安全挑战,分析其根源,并提出有效的防护策略,旨在为云服务的安全使用提供指导和参考。
97 8
|
4月前
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
689 8
|
5月前
|
存储 网络性能优化 块存储
OpenStack的块存储卷管理创建与配置
【8月更文挑战第27天】
208 3
|
4月前
|
云安全 安全 网络安全
探索云计算与网络安全的共生之道在数字化浪潮席卷全球的今天,云计算作为信息技术的一大革新,正重塑着企业的运营模式与服务交付。然而,随着云服务的普及,网络安全与信息安全的挑战也日益凸显,成为制约其发展的关键因素。本文旨在深入探讨云计算环境下的网络安全问题,分析云服务、网络安全及信息安全之间的相互关系,并提出相应的解决策略,以期为构建一个更安全、可靠的云计算生态系统提供参考。
本文聚焦于云计算环境中的网络安全议题,首先界定了云服务的基本概念及其广泛应用领域,随后剖析了当前网络安全面临的主要威胁,如数据泄露、身份盗用等,并强调了信息安全在维护网络空间秩序中的核心地位。通过对现有安全技术和策略的评估,包括加密技术、访问控制、安全审计等,文章指出了这些措施在应对复杂网络攻击时的局限性。最后,提出了一系列加强云计算安全的建议,如采用零信任架构、实施持续的安全监控与自动化响应机制、提升员工的安全意识教育以及制定严格的合规性标准等,旨在为云计算的安全可持续发展提供实践指南。
103 0
|
5月前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
90 0
|
网络协议 Linux 网络安全
openstack 云平台一体化部署(超详细)
openstack 云平台一体化部署(超详细)
1388 0
openstack 云平台一体化部署(超详细)
|
5月前
|
消息中间件 缓存 Shell
跟我一起来学OpenStack部署
跟我一起来学OpenStack部署
385 0