云计算与云存储系统 (9)

  • 格式:pptx
  • 大小:707.54 KB
  • 文档页数:24

下载文档原格式

  / 24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
✓ Endpoint相关的命令 keystone endpoint-list | endpoint-get | endpoint-create | endpoint-delete
✓ Tenant相关的命令 keystone tenant-create | tenant-delete | tenant-get | tenant-list | tenant-update
✓ User相关的命令 keystone user-create | user-get | user-password-update | user-role-list | userupdate | user-delete | user-list | user-role-add | user-role-remove
权限的集合,将权限赋给用户(role user) ✓ _member_代表权限在tenant内,admin代表在所有tenant都有权限 ✓ role是可嵌套的,语法格式为:rule:[result] • rule表明这条规则是啥,对应一个action,以scope:action的形 式出现 • result代表rule的判定结果
• 取消环境变量 • 使用openstack超户(命令行参数,环境变量)
– user-list – tenant-list – token-get
• 使用普通用户
– token-get – user-list(无权限)
云计算和云存储系统实验
23
练习4: 故障排除
• 服务是否正常启动 • 是否有错误log输出 • 查看keystone的源代码
✓ Role相关的命令 keystone role-create | role-delete | role-get | role-list
KeyStone认证原理
KeyStone认证方式
UUID认证的原理
当用户拿着有效的用户名和密码去keystone认证后,keystone就 会返回给他一个token,这个token就是一个uuid。
信息 • #cd /var/log/keystone • #vi keystone.log
云计算和云存储系统实验
21
练习2:创建租户,用户,角色
• 使用OS_SERVICE_TOKEN和 OS_SERVICE_ENDPOINT环境变量
• 使用keystone命令创建用户
云计算和云存储系统实验
22
练习3:验证服务
以后用户进行其他操作时,都必须出示这个token。例如当nova接 到一个请求后,就会用这个token去向keystone进行请求验证, keystone通过比对token,以及检查token的有效期,来判断token是否 合法,然后返回给nova这一个请求是否合法。
这一方式十分简单,但是在大量业务场景下,keystone将会成为 性能瓶颈。
>/var/log/keystone/ • keystone-tokenflush.log 2>&1' \ • >> /var/spool/cron/crontabs/keystone
云计算和云存储系统实验
20
验证服务是否正常
• 1.验证keystone是否已启动 • # ps -ef|grep keystone • 2.查看log文件是否输出,以及是否有错误
Identity 服务Keystone
实验内容
• 安装Identity服务keystone • 创建租户,用户,角色等 • 验证配置是否正常 • 如何排除故障 • 实验准备
– 安装Xshell等支持ssh的终端工具 – 完成前述的准备工作,包括2个ubuntu系统 – 安装了ntp, RabbitMQ, mysql等 – 配置了网络接口
当用户拿着有效的用户名和密码去keystone认证后,keystone就将用户的基本 信息通过keystone.key进行了加密,将这一密文作为token返回给用户。当用户发 出一个请求,例如nova拿到token后,首先需要拿到keystone的证书keystone.pem (这一过程只需要进行一次),然后通过keystone.pem来进行解密,获得用户的 信息,就可以知道该用户是否合法。
• IDENTIFIED BY 'KEYSTONE_DBPASS';
• 注意替换KEYSTONE_DBPASS为合适的密码
• 退出数据库操作
• quit
• 2.生成一个随机值作为管理token
• $ openssl rand -hex 10
• 56271cea36e70c81c29a

云计算和云存储系统实验
Tenant 租户
资源的集合,资源的容器,资源的拥有者是租户 ✓ 计算资源(物理机),存储资源(云硬盘),网络资源,镜像资源 等 ✓ 早期的版本中叫project ✓ 本次试验创建两个tenant: ✓ admin和demo
Tenant的配额(tenant quotas) ✓ instance个数 ✓ vcpu个数 ✓ 内存数量 ✓ 内部ip和公网ip数量
18
安装并修改配置文件
• 1.安装package • apt-get install keystone python-keystoneclient • 2.修改配置文件/etc/keystone/keystone.conf • a. [DEFAULT] Section • [DEFAULT] • admin_token = ADMIN_TOKEN ADMIN_TOKEN为Step1中生成的随机值 • b. [database] section, 修改数据库的连接方式,使用mysql • [database] • connection = mysql://keystone:KEYSTONE_DBPASS@controller/keystone • c. [token] Section, 配置UUID token 提供者和SQL驱动 • [token] provider = keystone.token.providers.uuid.Provider • driver = keystone.token.persistence.backends.sql.Token • d. [revoke]节中配置SQL revocation 驱动 • [revoke] driver = keystone.contrib.revoke.backends.sql.Revoke • e. 可选,将[DEFAULT]节中设置调试 • [DEFAULT] verbose = True • log_file = /var/log/keystone/keystone.log • 或者 • log_config_append=logging.conf • 3. 更新keystone所需的数据库 • # su -s /bin/sh -c "keystone-manage db_sync" keystone
OpenStack基本概念
User 用户
认证的对象 ✓ 访问openstack中的每一个服务,都是user这个对象去访问的 ✓ user要归属于某个tenant,试验创建了admin和demo两个user ✓ AWS EC2没有tenant的概念,只支持user
OpenStack基本概念
role 角色
云计算和云存储系统实验
19
完成安装
• 1.重启服务 • # su -s /bin/sh -c "keystone-manage db_sync" keystone • 2.删除不用的sqllite数据库 • # rm -f /var/lib/keystone/keystone.db • 3.建立定时任务定期删除过期token • # (crontab -l -u keystone 2>&1 | grep -q token_flush) || \ • echo '@hourly /usr/bin/keystone-manage token_flush
• 为了理解Identity的功能,需要理解下面的 概念
– User, Credentials, Authentication, Token, Tenant, Service, Endpoint, Role, Keystone client
• 具体内容参考安装文档第三章。
云计算和云存储系统实验
4
OpenStack基本概念
对于用户的token还需要对token的合法时间,以及token还是否存在进行判断。 所以当nova每一次拿到token后还会先向keystone询问一次token的失效列表,来查 看token是否失效。当然这一过程对于keystone的负载还是相当轻的,所以PKI还是 有效的解决了keystone成为性能瓶颈的问题。
KeyStone认证方式
KeyStone认证方式
PKI认证的原理
在keystone初始化时,keystone生成了CA的公钥CA.pem和私钥CA.key。同 时,产生了keystone自己的公钥keystone.pub和keystone.key,然后将keystone.pub 进行了CA的签名,生成了keystone.pem。
OpenStack基本概念
endpoint 服务的网络地址
OpenStack基本概念
Keystone配置文件
常用操作讲解及简单演示
✓ Service相关的命令(keystone help command) keystone service-list | service-get | service-create | service-delete
• GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
• IDENTIFIED BY 'KEYSTONE_DBPASS';
ቤተ መጻሕፍቲ ባይዱ
• GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
云计算和云存储系统实验
2
试验开始前
• 使用Xshell连接上两台机器(虚拟机或实体机) • 修改备注名称,明确机器分别属于controller,
compute1
本次试验都在 controller节点执 行
云计算和云存储系统实验
3
Keystone的作用
• Identity服务执行以下功能:
– 管理用户和他们的权限 – 提供一个可用服务的列表和他们的API接口。
KeyStone认证方式
KeyStone policy文件
练习1: 安装准备工作
• 创建Identity服务所需的数据库
• 使用超户连接mysql数据库
• $ mysql -u root -p
• 创建keystone数据库,给keystone数据库设置合适的权限
• CREATE DATABASE keystone;
• 和keystone相关的组件
– mysql – Python – 配置文件
云计算和云存储系统实验
24
policy.json scope:action:[result]
OpenStack基本概念
service 服务
Opentack包含的每个模块都是一个服务 ✓ 对外提供REST API - REpresentational State Transfer(表述性状态转移) • 如何正确的、统一的使用web标准 • 将所有对象定义为唯一的ID • 将所有对象关联在一起 • 使用标准方法, 资源多重表述 • 无状态通信(或交互)

相关主题