6.6. Ceph 对象网关和多因素身份验证

作为存储管理员,您可以管理 Ceph 对象网关用户的一次性密码(TOTP)令牌。

6.6.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 上。

表 6.1. 术语

术语描述

TOTP

基于时间的一次性密码.

Token serial

代表 TOTP 令牌 ID 的字符串。

Token seed

用于计算 TOTP 的 secret。它可以是十六进制或 base32。

TOTP seconds

用于 TOTP 生成的时间解析。

TOTP window

验证令牌时在当前令牌前后检查的 TOTP 令牌数量。

TOTP pin

TOTP 令牌在特定时间的有效值。

6.6.2. 创建用于多因素验证的 seed

要设置多因素身份验证(MFA),您必须创建一个看到的 secret,供一次性密码生成器和后端 MFA 系统使用。

先决条件

  • Linux 系统。
  • 访问命令行 shell.

流程

  1. urandom Linux 设备文件中生成 30 个字符,并将其存储在 shell 变量 SEED 中:

    示例

    [user@host01 ~]$ SEED=$(head -10 /dev/urandom | sha512sum | cut -b 1-30)

  2. 通过在 SEED 变量中运行 echo 来打印 seed:

    示例

    [user@host01 ~]$ echo $SEED
    492dedb20cf51d1405ef6a1316017e

    将一次性密码生成器和后端 MFA 系统配置为使用相同的 seed。

其它资源

6.6.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 设置为 hexbase32,将 TOTP_SECONDS 设置为超时,或者将 TOTP_WINDOW 设置为验证令牌时要检查的 TOTP 令牌数量。

    示例

    [root@host01 ~]# radosgw-admin mfa create --uid=johndoe --totp-serial=MFAtest --totp-seed=492dedb20cf51d1405ef6a1316017e

其它资源

6.6.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 对象网关配置和管理指南中的重新同步多因素身份验证令牌

其它资源

6.6.5. 重新同步多因素身份验证 TOTP 令牌

重新同步多因素验证(MFA)基于时间的一次性密码令牌。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 已安装 Ceph 对象网关。
  • 在 Ceph 监控节点上具有 root 访问权限。
  • 使用 radosgw-admin mfa create 创建 MFA TOTP 令牌。

流程

  1. 在时间偏移或检查失败时,重新同步多因素验证 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

  2. 通过测试新 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

其它资源

6.6.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
            }
        ]
    }

其它资源

6.6.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 的字符串。

其它资源

6.6.8. 删除多因素身份验证 TOTP 令牌

删除基于多因素身份验证(MFA)时间的一次性密码(TOTP)令牌。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 已安装 Ceph 对象网关。
  • 在 Ceph 监控节点上具有 root 访问权限。
  • 使用 radosgw-admin mfa create 创建 MFA TOTP 令牌。

流程

  1. 删除 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

  2. 验证 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

其它资源