注意
本文档适用于 Ceph 的开发版本。
RGW 支持多因素身份验证
Mimic 版本中的新功能。
S3 多因素身份验证 (MFA) 功能允许用户在删除特定存储桶中的对象时要求使用一次性密码。存储桶需要配置版本控制并启用 MFA,这可以通过 S3 API 完成。
可以通过 radosgw-admin 为用户分配基于时间的一次性密码令牌。每个令牌都有一个秘密种子和一个分配给它的序列 ID。令牌可以添加到用户、可以列出、删除,也可以重新同步。
多站点
虽然 MFA ID 设置在用户的元数据中,但实际的 MFA 一次性密码配置位于本地区域的 OSD 中。因此,在多站点环境中,建议为不同的区域使用不同的令牌。
术语
-TOTP: 基于时间的一次性密码 (Time-based One Time Password)
-token serial: 表示 TOTP 令牌 ID 的字符串
-token seed: 用于计算 TOTP 的秘密种子
-totp seconds: 用于 TOTP 生成的时间分辨率
-totp window: 验证令牌时在当前令牌之前和之后检查的 TOTP 令牌数量
-totp pin: TOTP 令牌在特定时间的有效值
管理命令
创建新的 MFA TOTP 令牌
# radosgw-admin mfa create --uid=<user-id> \
--totp-serial=<serial> \
--totp-seed=<seed> \
[ --totp-seed-type=<hex|base32> ] \
[ --totp-seconds=<num-seconds> ] \
[ --totp-window=<twindow> ]
列出 MFA TOTP 令牌
# radosgw-admin mfa list --uid=<user-id>
显示 MFA TOTP 令牌
# radosgw-admin mfa get --uid=<user-id> --totp-serial=<serial>
删除 MFA TOTP 令牌
# radosgw-admin mfa remove --uid=<user-id> --totp-serial=<serial>
检查 MFA TOTP 令牌
测试 TOTP 令牌密码,用于验证 TOTP 功能是否正常。
# radosgw-admin mfa check --uid=<user-id> --totp-serial=<serial> \
--totp-pin=<pin>
重新同步 MFA TOTP 令牌
用于重新同步 TOTP 令牌(以防时间偏差)。这需要输入两个连续的密码:前一个密码和当前密码。
# radosgw-admin mfa resync --uid=<user-id> --totp-serial=<serial> \
--totp-pin=<prev-pin> --totp=pin=<current-pin>