Configure Openstack Keystone Auth in MicroCeph RGW¶
Ceph Object Gateway (RGW) can be configured to use Openstack Keystone for providing user authentication service. A Keystone authorised user to the gateway will also be automatically created on the Ceph Object Gateway. A token that Keystone validates will be considered as valid by the gateway.
MicroCeph supports setting the following Keystone config keys:
Key |
Description |
---|---|
rgw_s3_auth_use_keystone |
Whether to use keystone auth for the S3 endpoints. |
rgw_keystone_url |
Keystone server address in {url:port} format |
rgw_keystone_admin_token |
Keystone admin token (not recommended in production) |
rgw_keystone_admin_token_path |
Path to Keystone admin token (recommended for production) |
rgw_keystone_admin_user |
Keystone service tenant user name |
rgw_keystone_admin_password |
Keystone service tenant user password |
rgw_keystone_admin_password_path |
Path to Keystone service tenant user password file |
rgw_keystone_admin_project |
Keystone admin project name |
rgw_keystone_admin_domain |
Keystone admin domain name |
rgw_keystone_service_token_enabled |
Whether to allow expired tokens with service token in requests |
rgw_keystone_service_token_accepted_roles |
Specify user roles accepted as service roles |
rgw_keystone_expired_token_cache_expiration |
Cache expiration period for an expired token allowed with a service token |
rgw_keystone_api_version |
Keystone API version |
rgw_keystone_accepted_roles |
Accepted user roles for Keystone users |
rgw_keystone_accepted_admin_roles |
List of roles allowing user to gain admin privileges |
rgw_keystone_token_cache_size |
The maximum number of entries in each Keystone token cache |
rgw_keystone_verify_ssl |
Whether to verify SSL certificates while making token requests to Keystone |
rgw_keystone_implicit_tenants |
Whether to create new users in their own tenants of the same name |
rgw_swift_account_in_url |
Whether the Swift account is encoded in the URL path |
rgw_swift_versioning_enabled |
Enables object versioning |
rgw_swift_enforce_content_length |
Whether content length header is needed when listing containers |
rgw_swift_custom_header |
Enable swift custom header |
A user can set/get/list/reset the above mentioned config keys as follows:
Supported config keys can be configured using the ‘set’ command:
$ sudo microceph cluster config set rgw_swift_account_in_url true
Config value for a particular key could be queried using the ‘get’ command:
$ sudo microceph cluster config get rgw_swift_account_in_url +---+--------------------------+-------+ | # | KEY | VALUE | +---+--------------------------+-------+ | 0 | rgw_swift_account_in_url | true | +---+--------------------------+-------+
A list of all the configured keys can be fetched using the ‘list’ command:
$ sudo microceph cluster config list +---+--------------------------+-------+ | # | KEY | VALUE | +---+--------------------------+-------+ | 0 | rgw_swift_account_in_url | true | +---+--------------------------+-------+
Resetting a config key (i.e. setting the key to its default value) can performed using the ‘reset’ command:
$ sudo microceph cluster config reset rgw_swift_account_in_url $ sudo microceph cluster config list +---+-----+-------+ | # | KEY | VALUE | +---+-----+-------+
For detailed documentation of what keys should be configured, visit Ceph Docs