8.2. 创建 S3 用户

若要测试网关,请创建 S3 用户并授予用户访问权限。man radosgw-admin 命令提供关于其他命令选项的信息。

注意

在多站点部署中,始终在 master zone group 的 master zone 中的主机上创建用户。

先决条件

  • rootsudo 访问权限
  • 已安装 Ceph 对象网关

流程

  1. 创建 S3 用户:

    语法

    radosgw-admin user create --uid=name --display-name="USER_NAME"

    使用 S3 用户的名称替换 name

    示例

    [root@host01 ~]# radosgw-admin user create --uid="testuser" --display-name="Jane Doe"
    {
        "user_id": "testuser",
        "display_name": "Jane Doe",
        "email": "",
        "suspended": 0,
        "max_buckets": 1000,
        "auid": 0,
        "subusers": [],
        "keys": [
            {
                "user": "testuser",
                "access_key": "CEP28KDIQXBKU4M15PDC",
                "secret_key": "MARoio8HFc8JxhEilES3dKFVj8tV3NOOYymihTLO"
            }
        ],
        "swift_keys": [],
        "caps": [],
        "op_mask": "read, write, delete",
        "default_placement": "",
        "placement_tags": [],
        "bucket_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "user_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "temp_url_keys": [],
        "type": "rgw"
    }

  2. 验证输出,以确保 access_keysecret_key 的值不包含 JSON 转义字符(\)。访问验证需要这些值,但如果值包含 JSON 转义字符,则某些客户端将无法处理。要解决这个问题,请执行以下操作之一:

    • 删除 JSON 转义字符。
    • 将字符串封装在引号内。
    • 重新生成密钥并确保它不会包含 JSON 转义字符。
    • 手动指定密钥和 secret。

    不要删除正斜杠 /,因为它是一个有效的字符。