Keystone Account Roles¶
In StarlingX, 3 different keystone roles are supported: admin, member
and reader.
Users with an admin role in the admin project can execute any action in the system.
Users with a reader role in the admin project have read-only access. They cannot
perform any changes in the system but can read any configuration. In
the CLI, commands with prefix or suffix, such as, list, query, show
and summary get the configuration from the system, and are allowed for this
type of user, all other commands are denied. Some examples of CLI commands
executed by a user with reader role are shown below.
~(keystone_admin)]$ system host-list
+-----+--------------+-------------+----------------+-------------+--------------+
| id | hostname | personality | administrative | operational | availability |
+-----+--------------+-------------+----------------+-------------+--------------+
| 1 | controller-0 | controller | unlocked | enabled | degraded |
+-----+--------------+-------------+----------------+-------------+--------------+
~(keystone_admin)]$ system host-lock controller-0
Error: Forbidden
~(keystone_admin)]$ fm alarm-summary
+-----------------+--------------+--------------+----------+
| Critical Alarms | Major Alarms | Minor Alarms | Warnings |
+-----------------+--------------+--------------+----------+
| 1 | 13 | 0 | 0 |
+-----------------+--------------+--------------+----------+
~(keystone_admin)]$ fm event-suppress --alarm_id 100.103
Error: Forbidden.
Exception: all fm read-only commands require reader role but there is no
project verification, so a user in a project different from admin may execute
them. Examples: alarm-list, alarm-show, alarm-summary,
event-list, event-show and event-suppress-list.
Currently, the member role is equivalent to reader role, but this may change
in the future, allowing a user with member role to execute some actions that
change the system configuration.
The following sections describe how to create users with specific keystone roles in StarlingX.
Creation of user with specific role for Horizon only¶
Use the following commands to add a new user named readeruser with password
“Passw0rd*” and role reader:
~(keystone_admin)]$ openstack user create readeruser --project admin --password Passw0rd*
~(keystone_admin)]$ openstack role add --project admin --user readeruser reader
To create a user with admin role instead of reader role, change
reader to admin using the openstack role add command.
When this user is added in the central cloud, it is propagated to the managed subclouds. To check if this new user is already present in a host, use the openstack user list command.
Creation of user with specific role for Horizon and CLI¶
Follow the instructions in
Manage Composite Local LDAP Accounts at Scale
using the parameter user_role=reader in extra-vars of manage_local_ldap_account.yml
playbook to create a user with reader role. To create a user with admin
role, use user_role=admin instead.
Warning
Users with reader role do not have sudo capabilities, use
sudo_permission=false when the users role is user_role=reader.