简介
Ceph Object Gateway与keystone集成用于用户认证服务是ceph本身都支持的一个扩展,keystone是openstack项目中的一个子项目,主要担负用户身份认证及服务分类管理。集成keystone之后gateway就可以使用其用keystone来认证合法用户。经keystone认证的用户就具有访问gateway的权限。keystone验证的token在gateway同样有效。
前提
一个正在运行的ceph cluster集群及至少一个gateway实例,且服务正常。
能够正常运行的keystone服务
RGW与Keystone集成配置
下面是gateway与keystone的集成配置:
[client.radosgw.gateway]
rgw_keystone_url = {keystone server url:keystone server admin port}
rgw_keystone_admin_token = {keystone admin token}
rgw_keystone_accepted_roles = {accepted user roles}
rgw_keystone_token_cache_size = {number of tokens to cache}
rgw_keystone_revocation_interval = {number of seconds before checking revoked tickets}
rgw_s3_auth_use_keystone = true
nss_db_path = {path to nss db}
client.radosgw.gateway中的gateway是你在部署gateway实例时创建的用户名,根据具体环境做相应的修改; Keystone URL是Keystone admin RESTful API URL; admin_token是配置在Keystone配置文件中的token用于admin请求; keystone中的用户拥有不同的角色,其可能在不同的tenant中,当Ceph ObjectCeph Object Gateway得到用户的ticket之后,可以获得该用户的所在的tenant和role,然后根据rgw_keystone_accept_roles配置来决定是否接受用户的请求; Keystone中的tenant对应Gateway中的user,Keystone中的user对应Gateway中的subuser; nss_db_path是配置集成Ceph Object Gateway与 Keystone时需要把Keystone使用的OpenSSL证书转换成nss db格式。如下:
mkdir /var /ceph/nss
openssl x509 -in /etc/keystone/ssl/certs/ca. pem -pubkey | \
certutil -d /var /ceph/nss -A -n ca -t "TCu,Cu,Tuw"
openssl x509 -in /etc/keystone/ssl/certs/signing_cert. pem -pubkey | \
certutil -A -d /var /ceph/nss -n signing_cert -t "P,P,P"
在Keystone中注册Ceph Object Gateway服务
keystone service-create -- name swift -- type object-store -- description "Ceph Object Gateway"
keystone endpoint-create -- region RegionOne -- service-id < id> \
-- publicurl http:
-- internalurl
http:
-- adminurl http: