第 12 章 配置 RBAC
在 OpenStack Networking 中使用 RBAC(Role-based Access Control,基于角色的访问控制)可以对共享 neutron 网络进行“颗粒式”的控制。以前,网络只可能在所有租户网络中共享,或不被任何网络共享。现在,OpenStack Networking 使用一个 RBAC 表来控制 neutron 网络在不同租户间的共享,管理员可以控制哪些租户有权限把实例附加到网络中。
作为结果,云管理员可以删除一些租户的创建网络的权限,而只允许他们附加那些与他们的项目相关的已存在的网络。
12.1. 创建一个新的 RBAC 策略 复制链接链接已复制到粘贴板!
以下是如何使用 RBAC 策略来为一个租户赋予访问一个共享网络的步骤示例。
查看所有有效网络的列表:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看租户列表:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
web-servers
网络创建一个 RBAC,它为 auditors tenant (4b0b98f8c6c040f38ba4f7146e8680f5
) 赋予了访问权限:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
作为结果,auditors 项目中的用户可以把实例连接到 web-servers
网络。
12.2. 检查 RBAC 策略 复制链接链接已复制到粘贴板!
使用
neutron rbac-list
获得已存在 RBAC 策略的 ID:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
neutron rbac-show
查看特定 RBAC 项的详细信息:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.3. 删除 RBAC 策略 复制链接链接已复制到粘贴板!
使用
neutron rbac-list
获得已存在 RBAC 策略的 ID:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
neutron rbac-delete
删除 RBAC(使用它的 ID):neutron rbac-delete 314004d0-2261-4d5e-bda7-0181fcf40709
# neutron rbac-delete 314004d0-2261-4d5e-bda7-0181fcf40709 Deleted rbac_policy: 314004d0-2261-4d5e-bda7-0181fcf40709
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.4. 外部网络的 RBA 复制链接链接已复制到粘贴板!
通过使用 --action access_as_external
参数,RBAC 可以控制对外部网络(带有网关接口的网络)的访问。
例如,以下步骤为 web-servers
网络创建了一个 RBAC,并为 engineering 租户(c717f263785d4679b16a122516247deb
)赋予了访问权限:
1. 使用 --action access_as_external
创建一个新的 RBAC 策略:
2. 作为结果,Engineering 租户中的用户可以查看这个网络,或把实例连接到这个网络: