我正在尝试向Openstack添加注册表。所以我想创建像管理员这样的超级用户。然后我可以在没有Admin的情况下由超级用户创建用户。有人可以给我一些建议吗?
答案 0 :(得分:2)
我回答了您之前关于在openstack中控制用户管理的替代方法的问题。目前使用keystone API的选项并不多,adam young正在做很多关于在令牌中实现共享信任的工作。这将提供向用户授予可信令牌的方法,以便最终实现减少的管理功能集。现在虽然你可能更好地看看我在你的其他堆栈溢出问题中提出的解决方案。
参考:Openstack create user without keystone authentication
您可以在此处阅读有关openstack中的trusts和rbac的更多信息:http://adam.younglogic.com/2013/03/trusts-rbac/
以下是如何创建非“管理员”但具有管理员角色的用户
您可以使用它来创建可供代码用来创建新用户的用户。但是,显然该代码将具有完整的管理凭据。我不知道你的风险是什么。但显然你希望能够注册用户。您可以考虑使用keystone admin cred构建一个简单的RPC机制。让面向公众的应用程序向该RPC服务发送最少的信息。然后强化RPC接口。或者,正如我之前所说,考虑在您的其他stackoverflow问题(IE:LDAP,直接MySQL查询)中建议的替代方案
root@openstack-cc1:~# keystone tenant-list
+----------------------------------+----------+---------+
| id | name | enabled |
+----------------------------------+----------+---------+
| 5c1bd4f84d044450aaa22d16360f29c0 | admin | True |
| 2862b9e419b74880a507f96de3424f89 | services | True |
+----------------------------------+----------+---------+
root@openstack-cc1:~# keystone user-create --name sallyadmin --tenant-id 5c1bd4f84d044450aaa22d16360f29c0 --pass sallypassword --email sally@cloudbadass.net --enabled true
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | sally@cloudbadass.net |
| enabled | True |
| id | ac822a0297864fe6870b065e50ea4568 |
| name | sallyadmin |
| tenantId | 5c1bd4f84d044450aaa22d16360f29c0 |
+----------+----------------------------------+
现在,您应该在该管理员租户中拥有一个用户sallyadmin。
现在让我们添加一个角色
root@openstack-cc1:~# keystone role-list
+----------------------------------+----------+
| id | name |
+----------------------------------+----------+
| b3dc33d067a240d49b5c1404fee049f1 | Member |
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| ba82a9493b034d4b83ae96c8aff75b8d | admin |
+----------------------------------+----------+
root@openstack-cc1:~# keystone user-list
+----------------------------------+------------+---------+------------------------+
| id | name | enabled | email |
+----------------------------------+------------+---------+------------------------+
| ccf2c111e21c44dca0ab40f6a886247c | admin | True | matt.joyce@lulz.com |
| 5e82674cc67d461c9a3ccb14e86b3794 | cinder | True | cinder@localhost |
| 80d8defdf0464787b11423427c0fe508 | glance | True | glance@localhost |
| 8332b99589044cd5a40ca1a9329f7aef | nova | True | nova@localhost |
| ac822a0297864fe6870b065e50ea4568 | sallyadmin | True | sally@cloudbadass.net |
+----------------------------------+------------+---------+------------------------+
root@openstack-cc1:~# keystone user-role-add --user ac822a0297864fe6870b065e50ea4568 --role ba82a9493b034d4b83ae96c8aff75b8d --tenant-id 5c1bd4f84d044450aaa22d16360f29c0
现在让我们测试一下sallyadmin!
root@openstack-cc1:~# export OS_USERNAME="sallyadmin"
root@openstack-cc1:~# export OS_PASSWORD="sallypassword"
root@openstack-cc1:~# keystone user-list
+----------------------------------+------------+---------+------------------------+
| id | name | enabled | email |
+----------------------------------+------------+---------+------------------------+
| ccf2c111e21c44dca0ab40f6a886247c | admin | True | matt.joyce@lulz.com |
| 5e82674cc67d461c9a3ccb14e86b3794 | cinder | True | cinder@localhost |
| 80d8defdf0464787b11423427c0fe508 | glance | True | glance@localhost |
| 8332b99589044cd5a40ca1a9329f7aef | nova | True | nova@localhost |
| ac822a0297864fe6870b065e50ea4568 | sallyadmin | True | sally@cloudbadass.net |
+----------------------------------+------------+---------+------------------------+