将 Keystone 与 Ceph 对象网关使用指南


Red Hat Ceph Storage 4

配置 OpenStack 和 Ceph 对象网关,以使用 Keystone 进行用户身份验证。

摘要

本文档介绍如何配置 OpenStack 和 Ceph 对象网关,以使用 Keystone 进行用户身份验证。
红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始: master、slave、blacklist 和 whitelist。这些更改将在即将发行的几个发行本中逐渐实施。详情请查看 CTO Chris Wright 信息

第 1 章 Keystone 身份验证和 Ceph 对象网关

使用 OpenStack Keystone 验证用户身份的组织可以将 Keystone 与 Ceph 对象网关集成。Ceph 对象网关使得网关能够接受 Keystone 令牌,对用户进行身份验证,并且创建对应的 Ceph 对象网关用户。当 Keystone 验证令牌时,网关将考虑用户经过身份验证。

优点

  • 使用 Keystone 管理用户
  • 在 Ceph 对象网关中自动创建用户
  • Ceph 对象网关将定期查询 Keystone,以获取已撤销令牌的列表。

第 2 章 为 Ceph 对象网关配置 OpenStack Keystone

作为存储管理员,您可以使用 OpenStack 的 Keystone 身份验证服务通过 Ceph 对象网关对用户进行身份验证。在您配置 Ceph 对象网关之前,您必须配置 Keystone,以启用 Swift 服务并指向 Ceph 对象网关。

2.1. 先决条件

  • 正在运行的红帽 OpenStack 平台 13、15 或 16 环境。
  • 正在运行的红帽 Ceph 存储环境。
  • 正在运行的 Ceph 对象网关环境。

2.2. 创建 Swift 服务

在配置 Ceph 对象网关之前,请配置 Keystone,使 Swift 服务已启用并指向 Ceph 对象网关。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 访问 Ceph 软件存储库。
  • OpenStack 控制器节点的根级别访问权限.

流程

  1. 创建 Swift 服务:

    Copy to Clipboard Toggle word wrap
    [root@swift~]# openstack service create --name=swift --description="Swift Service" object-store

    创建服务将回显服务设置。

    表 2.1. 示例
    字段

    description

    Swift 服务

    enabled

    True

    id

    37c4c0e79571404cb4644201a4a6e5ee

    name

    swift

    type

    object-store

2.3. 设置 Ceph 对象网关端点

在创建了 Swift 服务后,将服务指向 Ceph 对象网关。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 访问 Ceph 软件存储库。
  • 在红帽 OpenStack 平台 13、15 或 16 环境上运行 Swift 服务。

流程

  1. 创建指向 Ceph 对象网关的 OpenStack 端点:

    语法

    Copy to Clipboard Toggle word wrap
    openstack endpoint create --region REGION_NAME swift admin "URL"
    openstack endpoint create --region REGION_NAME swift public "URL"
    openstack endpoint create --region REGION_NAME swift internal "URL"

    REGION_NAME 替换为网关的 zone group name 或 region 名称的名称。使用适合 Ceph 对象网关的 URL 替换 URL。

    示例

    Copy to Clipboard Toggle word wrap
    [root@osp ~]# openstack endpoint create --region us-west swift admin "http://radosgw.example.com:8080/swift/v1"
    [root@osp ~]# openstack endpoint create --region us-west swift public "http://radosgw.example.com:8080/swift/v1"
    [root@osp ~]# openstack endpoint create --region us-west swift internal "http://radosgw.example.com:8080/swift/v1"

    字段

    adminURL

    http://radosgw.example.com:8080/swift/v1

    id

    e4249d2b60e44743a67b5e5b38c18dd3

    internalURL

    http://radosgw.example.com:8080/swift/v1

    publicURL

    http://radosgw.example.com:8080/swift/v1

    region

    us-west

    service_id

    37c4c0e79571404cb4644201a4a6e5ee

    service_name

    swift

    service_type

    object-store

    设置端点将输出服务端点设置。

2.4. 验证 Openstack 使用 Ceph 对象网关端点

创建 Swift 服务并设置端点后,请显示端点以确保所有设置都正确。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 访问 Ceph 软件存储库。

流程

  1. 验证配置文件中的设置:
Copy to Clipboard Toggle word wrap
[root@swift~]# openstack endpoint show object-store

显示端点将回显端点设置和服务设置。

表 2.2. 示例
字段

adminURL

http://radosgw.example.com:8080/swift/v1

enabled

True

id

e4249d2b60e44743a67b5e5b38c18dd3

internalURL

http://radosgw.example.com:8080/swift/v1

publicURL

http://radosgw.example.com:8080/swift/v1

region

us-west

service_id

37c4c0e79571404cb4644201a4a6e5ee

service_name

swift

service_type

object-store

第 3 章 配置 Ceph 对象网关

作为存储管理员,您必须配置 Ceph 对象网关,以接受来自 Keystone 服务的身份验证请求。

3.1. 先决条件

  • 正在运行的红帽 OpenStack 平台 13、15 或 16 环境。
  • 正在运行的红帽 Ceph 存储环境。
  • 正在运行的 Ceph 对象网关环境。

3.2. 配置 Ceph 对象网关以使用 Keystone SSL

转换 Keystone 使用的 OpenSSL 证书,配置 Ceph 对象网关以搭配 Keystone 使用。当 Ceph 对象网关与 OpenStack 的 Keystone 身份验证交互时,Keystone 将终止自签名 SSL 证书。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 访问 Ceph 软件存储库。

流程

  1. 将 OpenSSL 证书转换为 db 格式:

    示例

    Copy to Clipboard Toggle word wrap
    [root@osp ~]# mkdir /var/ceph/nss
    
    [root@osp ~]# 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"
    [root@osp ~]# mkdir /var/ceph/nss openssl x509 -in /etc/keystone/ssl/certs/signing_cert.pem -pubkey | \
        certutil -A -d /var/ceph/nss -n signing_cert -t "P,P,P"

  2. 在运行 Ceph 对象网关的节点中安装 Keystone 的 SSL 证书。或者,将可配置的 rgw_keystone_verify_ssl 设置的值设置为 false

    rgw_keystone_verify_ssl 设置为 false 表示网关不会尝试验证证书。

3.3. 配置 Ceph 对象网关以使用 Keystone 身份验证

配置红帽 Ceph 存储,以使用 OpenStack 的 Keystone 身份验证。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 访问 Ceph 软件存储库。
  • 生产环境的管理 特权

流程

  1. 编辑管理节点上的 Ceph 配置文件。
  2. 导航到 [client.radosgw.INSTANCE_NAME], 其中 INSTANCE_NAME 是要配置的网关实例的名称。
  3. 为每个网关实例执行以下操作:

    1. rgw_s3_auth_use_keystone 设置设置为 true
    2. thenss_db_path 设置设置为 NSS 数据库存储的路径。
  4. 提供身份验证凭证:

    可以配置 Keystone 服务租户、适用于 OpenStack 身份 API 的 v2.0 版本的 Keystone 用户和密码,这与系统管理员倾向于配置 OpenStack 服务的方式类似。提供用户名和密码可避免向 rgw_keystone_admin_token 设置提供共享 secret。

    重要

    红帽建议在生产环境中通过 admin 令牌禁用身份验证。服务租户凭据应当具有 admin 特权。

    所需的配置选项有:

    Copy to Clipboard Toggle word wrap
    rgw_keystone_admin_user = KEYSTONE_TENANT_USER_NAME
    rgw_keystone_admin_password = KEYSTONE_TENANT_USER_PASSWORD
    rgw_keystone_admin_tenant = KEYSTONE_TENANT_NAME

    Ceph 对象网关用户映射到 Keystone 租户。Keystone 用户在 上分配有不同的角色,可能有多个租户。当 Ceph 对象网关获取票据时,它将查看租户,以及分配给该票据的用户角色,并且根据可配置的 rgw_keystone_accepted_roles 接受或拒绝请求。

    典型的配置可能具有以下设置:

    示例

    Copy to Clipboard Toggle word wrap
    [client.radosgw.gateway]
    rgw_keystone_url = {keystone server url:keystone server admin port}
    ##Authentication using an admin token. Not preferred.
    #rgw_keystone_admin_token = {keystone admin token}
    ##Authentication using username, password and tenant. Preferred.
    rgw_keystone_admin_user = _KEYSTONE_TENANT_USER_NAME_
    rgw_keystone_admin_password =  _KEYSTONE_TENANT_USER_PASSWORD_
    rgw_keystone_admin_tenant =  _KEYSTONE_TENANT_NAME_
    rgw_keystone_accepted_roles = _KEYSTONE_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_keystone_make_new_tenants = _TRUE_FOR_PRIVATE_TENANT_FOR_EACH_NEW_USER_
    rgw_s3_auth_use_keystone = true
    nss_db_path = _PATH_TO_NSS_DB_

其它资源

3.4. 重启 Ceph 对象网关守护进程

必须重新启动 Ceph 对象网关才能激活配置更改。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 访问 Ceph 软件存储库。
  • 生产环境的管理 特权

流程

  1. 保存 Ceph 配置文件并将其分发到每个 Ceph 节点后,重启 Ceph 对象网关实例:
Copy to Clipboard Toggle word wrap
[root@ceph~]# systemctl restart ceph-radosgw
[root@ceph~]# systemctl restart ceph-radosgw@rgw.`hostname -s`

附录 A. Keystone 集成配置选项

您可以将您的配置选项集成到 Keystone 中。有关可用 Keystone 集成配置选项的详细信息,请参见以下:

重要

在更新 Ceph 配置文件后,您必须将新的 Ceph 配置文件复制到存储集群中的所有 Ceph 节点。

rgw_s3_auth_use_keystone

描述
如果设为 true,Ceph 对象网关将使用 Keystone 验证用户的身份。
类型
布尔值
默认
false

nss_db_path

描述
NSS 数据库的路径。
类型
字符串
默认
""

rgw_keystone_url

描述
Keystone 服务器上管理 RESTful API 的 URL。
类型
字符串
默认
""

rgw_keystone_admin_token

描述
Keystone 中为管理请求配置令牌或共享机密。
类型
字符串
默认
""

rgw_keystone_admin_user

描述
keystone admin 用户名。
类型
字符串
默认
""

rgw_keystone_admin_password

描述
keystone admin 用户密码.
类型
字符串
默认
""

rgw_keystone_admin_tenant

描述
keystone v2.0 的 Keystone admin 用户租户。
类型
字符串
默认
""

rgw_keystone_admin_project

描述
keystone v3 的 Keystone admin 用户项目。
类型
字符串
默认
""

rgw_keystone_admin_domain

描述
Keystone admin 用户域。
类型
字符串
默认
""

rgw_keystone_api_version

描述
要使用的 Keystone API 版本。有效选项为 23
类型
整数
默认
2

rgw_keystone_accepted_roles

描述
为请求提供服务所需的角色。
类型
字符串
默认
"Member、admin"

rgw_keystone_accepted_admin_roles

描述
角色列表,允许用户获取管理特权。
类型
字符串
默认
""

rgw_keystone_token_cache_size

描述
Keystone 令牌缓存中条目的最大数量。
类型
整数
默认
10000

rgw_keystone_revocation_interval

描述
令牌撤销检查之间的秒数。
类型
整数
默认
15 * 60

rgw_keystone_verify_ssl

描述
如果为 true,Ceph 将尝试验证 Keystone 的 SSL 证书。
类型
布尔值
默认
true

rgw_keystone_implicit_tenants

描述
在自己的租户中创建新用户,它们的名称相同。在大多数情况下,将它设置为 truefalse。若要与以前版本的红帽 Ceph 存储兼容,也可以将它设置为 s3swift。这意味着拆分身份空间,使得只有指定的协议才会使用隐式租户。些较早版本的红帽 Ceph 存储仅支持 Swift 的隐式租户。
类型
字符串
默认
false
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.