8.5. Ceph 对象网关和多因素身份验证
作为存储管理员,您可以管理 Ceph 对象网关用户的一次性密码(TOTP)令牌。
8.5.1. 多因素身份验证
当为对象版本控制配置 bucket 时,开发人员可以选择性地将存储桶配置为需要多因素身份验证(MFA)来删除请求。使用 MFA 时,基于时间的一次性密码(TOTP)令牌作为密钥传递给 x-amz-mfa
标头。令牌生成有虚拟 MFA 设备(如 Google Authenticator)或硬件 MFA 设备,如 Gemalto 提供的硬件 MFA 设备。
使用 adosgw-admin
为用户分配基于时间的一次性密码令牌。您必须设置一个 secret seed 和一个串行 ID。您还可以使用 adosgw-admin
列出、删除和重新同步令牌。
在多站点环境中,建议将不同的令牌用于不同的区域,因为虽然 MFA ID 在用户的元数据上设置,但实际的 MFA 一次性密码配置驻留在本地区域的 OSD 上。
术语 | 描述 |
---|---|
TOTP | 基于时间的一次性密码. |
Token serial | 代表 TOTP 令牌 ID 的字符串。 |
Token seed | 用于计算 TOTP 的 secret。它可以是十六进制或 base32。 |
TOTP seconds | 用于 TOTP 生成的时间解析。 |
TOTP window | 验证令牌时在当前令牌前后检查的 TOTP 令牌数量。 |
TOTP pin | TOTP 令牌在特定时间的有效值。 |
8.5.2. 创建用于多因素验证的 seed
要设置多因素身份验证(MFA),您必须创建一个看到的 secret,供一次性密码生成器和后端 MFA 系统使用。
先决条件
- Linux 系统。
- 访问命令行 shell.
流程
从
urandom
Linux 设备文件中生成 30 个字符,并将其存储在 shell 变量SEED
中:示例
[user@host01 ~]$ SEED=$(head -10 /dev/urandom | sha512sum | cut -b 1-30)
通过在
SEED
变量中运行 echo 来打印 seed:示例
[user@host01 ~]$ echo $SEED 492dedb20cf51d1405ef6a1316017e
将一次性密码生成器和后端 MFA 系统配置为使用相同的 seed。
其它资源
- 如需更多信息,请参阅 Unable 为存储桶创建 RGW MFA 令牌。
- 有关更多信息,请参阅 Ceph 对象网关和多因素身份验证。
8.5.3. 创建新的多因素身份验证 TOTP 令牌
创建一个新的多因素身份验证(MFA)时间密码(TOTP)令牌。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 已安装 Ceph 对象网关。
- 在 Ceph 监控节点上具有 root 访问权限。
- 生成了用于一次性密码生成器和 Ceph 对象网关 MFA 的 secret。
流程
创建新的 MFA TOTP 令牌:
语法
radosgw-admin mfa create --uid=USERID --totp-serial=SERIAL --totp-seed=SEED --totp-seed-type=SEED_TYPE --totp-seconds=TOTP_SECONDS --totp-window=TOTP_WINDOW
将 USERID 设置为设置 MFA 的用户名,将 SERIAL 设置为代表 TOTP 令牌 ID 的字符串,并将 SEED 设置为用于计算 TOTP 的十六进制或 base32 值。以下设置是可选的:将 SEED_TYPE 设置为
hex
或base32
,将 TOTP_SECONDS 设置为超时,或者将 TOTP_WINDOW 设置为验证令牌时要检查的 TOTP 令牌数量。示例
[root@host01 ~]# radosgw-admin mfa create --uid=johndoe --totp-serial=MFAtest --totp-seed=492dedb20cf51d1405ef6a1316017e
其它资源
- 如需更多信息,请参阅为多因素身份验证创建 seed。
- 如需更多信息,请参阅 重新同步多因素身份验证令牌。
8.5.4. 测试多因素身份验证 TOTP 令牌
测试基于多因素身份验证(MFA)时间的一次性密码(TOTP)令牌。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 已安装 Ceph 对象网关。
- 在 Ceph 监控节点上具有 root 访问权限。
-
使用
radosgw-admin mfa create
创建 MFA TOTP 令牌。
流程
测试 TOTP 令牌 PIN 以验证 TOTP 是否正常工作:
语法
radosgw-admin mfa check --uid=USERID --totp-serial=SERIAL --totp-pin=PIN
将 USERID 设置为设置 MFA 的用户名称,将 SERIAL 设置为代表 TOTP 令牌 ID 的字符串,然后将 PIN 设置为一次性密码生成器中的最新 PIN。
示例
[root@host01 ~]# radosgw-admin mfa check --uid=johndoe --totp-serial=MFAtest --totp-pin=870305 ok
如果您是第一次测试 PIN,则可能会失败。如果失败,请重新同步令牌。请参阅 Red Hat Ceph Storage 对象网关配置和管理指南 中的 重新同步多因素身份验证令牌。
其它资源
- 如需更多信息,请参阅为多因素身份验证创建 seed。
- 如需更多信息,请参阅 重新同步多因素身份验证令牌。
8.5.5. 重新同步多因素身份验证 TOTP 令牌
重新同步多因素验证(MFA)基于时间的一次性密码令牌。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 已安装 Ceph 对象网关。
- 在 Ceph 监控节点上具有 root 访问权限。
-
使用
radosgw-admin mfa create
创建 MFA TOTP 令牌。
流程
在时间偏移或检查失败时,重新同步多因素验证 TOTP 令牌。
这需要连续两个 pin:前一个 pin 和当前的 pin。
语法
radosgw-admin mfa resync --uid=USERID --totp-serial=SERIAL --totp-pin=PREVIOUS_PIN --totp=pin=CURRENT_PIN
将 USERID 设置为设置 MFA 的用户名,将 SERIAL 设置为代表 TOTP 令牌 ID 的字符串,将 PREVIOUS_PIN 设置为用户的先前 PIN,并将 CURRENT_PIN 设置为用户的当前 PIN。
示例
[root@host01 ~]# radosgw-admin mfa resync --uid=johndoe --totp-serial=MFAtest --totp-pin=802021 --totp-pin=439996
通过测试新 PIN 验证令牌是否已重新同步:
语法
radosgw-admin mfa check --uid=USERID --totp-serial=SERIAL --totp-pin=PIN
将 USERID 设置为设置 MFA 的用户名称,将 SERIAL 设置为代表 TOTP 令牌 ID 的字符串,并将 PIN 设置为用户的 PIN。
示例
[root@host01 ~]# radosgw-admin mfa check --uid=johndoe --totp-serial=MFAtest --totp-pin=870305 ok
其它资源
- 如需更多信息,请参阅 创建新的多因素身份验证 TOTP 令牌。
8.5.6. 列出多因素身份验证 TOTP 令牌
列出特定用户拥有的所有基于多因素身份验证(MFA)时间的一次性密码(TOTP)令牌。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 已安装 Ceph 对象网关。
- 在 Ceph 监控节点上具有 root 访问权限。
-
使用
radosgw-admin mfa create
创建 MFA TOTP 令牌。
流程
列出 MFA TOTP 令牌:
语法
radosgw-admin mfa list --uid=USERID
将 USERID 设置为设置 MFA 的用户名称。
示例
[root@host01 ~]# radosgw-admin mfa list --uid=johndoe { "entries": [ { "type": 2, "id": "MFAtest", "seed": "492dedb20cf51d1405ef6a1316017e", "seed_type": "hex", "time_ofs": 0, "step_size": 30, "window": 2 } ] }
其它资源
- 如需更多信息,请参阅 创建新的多因素身份验证 TOTP 令牌。
8.5.7. 显示多因素身份验证 TOTP 令牌
通过指定串行,显示基于特定多因素验证(MFA)时间的一次性密码(TOTP)令牌。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 已安装 Ceph 对象网关。
- 在 Ceph 监控节点上具有 root 访问权限。
-
使用
radosgw-admin mfa create
创建 MFA TOTP 令牌。
流程
显示 MFA TOTP 令牌:
语法
radosgw-admin mfa get --uid=USERID --totp-serial=SERIAL
将 USERID 设置为设置 MFA 的用户名,并将 SERIAL 设置为代表 TOTP 令牌 ID 的字符串。
其它资源
- 如需更多信息,请参阅 创建新的多因素身份验证 TOTP 令牌。
8.5.8. 删除多因素身份验证 TOTP 令牌
删除基于多因素身份验证(MFA)时间的一次性密码(TOTP)令牌。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 已安装 Ceph 对象网关。
- 在 Ceph 监控节点上具有 root 访问权限。
-
使用
radosgw-admin mfa create
创建 MFA TOTP 令牌。
流程
删除 MFA TOTP 令牌:
语法
radosgw-admin mfa remove --uid=USERID --totp-serial=SERIAL
将 USERID 设置为设置 MFA 的用户名,并将 SERIAL 设置为代表 TOTP 令牌 ID 的字符串。
示例
[root@host01 ~]# radosgw-admin mfa remove --uid=johndoe --totp-serial=MFAtest
验证 MFA TOTP 令牌是否已删除:
语法
radosgw-admin mfa get --uid=USERID --totp-serial=SERIAL
将 USERID 设置为设置 MFA 的用户名,并将 SERIAL 设置为代表 TOTP 令牌 ID 的字符串。
示例
[root@host01 ~]# radosgw-admin mfa get --uid=johndoe --totp-serial=MFAtest MFA serial id not found
其它资源
- 有关更多信息,请参阅 Ceph 对象网关和多因素身份验证。