Redis 访问控制列表 (ACL) 请求

Redis 访问控制列表 (ACL) 请求

方法 路径 描述
GET /v1/redis_acls 获取所有Redis ACLs
GET /v1/redis_acls/{uid} 获取单个Redis ACL
PUT /v1/redis_acls/{uid} 更新一个Redis ACL
POST /v1/redis_acls 创建一个新的Redis ACL
DELETE /v1/redis_acls/{uid} 删除一个Redis ACL

获取所有Redis ACLs

GET /v1/redis_acls

获取所有Redis ACL对象。

权限

权限名称 角色
view_all_redis_acls_info 管理员
集群成员
集群查看者
数据库成员
数据库查看者
用户管理员

请求

示例HTTP请求

GET /redis_acls

头部

描述
主机 cnm.cluster.fqdn 域名
Accept application/json 接受的媒体类型

响应

返回一个Redis ACL对象的JSON数组。

示例 JSON 主体

[
    {
     "uid": 1,
     "name": "Full Access",
     "acl": "+@all ~*"
    },
    {
     "uid": 2,
     "name": "Read Only",
     "acl": "+@read ~*"
    },
    {
     "uid": 3,
     "name": "Not Dangerous",
     "acl": "+@all -@dangerous ~*"
    },
    {
     "uid": 17,
     "name": "Geo",
     "acl": "~* +@geo"
    }
]

状态码

代码 描述
200 OK 无错误
501 Not Implemented 集群尚不支持redis_acl。

获取 Redis ACL

GET /v1/redis_acls/{int: uid}

获取单个Redis ACL对象。

权限

权限名称 角色
view_redis_acl_info 管理员
集群成员
集群查看者
数据库成员
数据库查看者
用户管理员

请求

示例HTTP请求

GET /redis_acls/1

头部

描述
主机 cnm.cluster.fqdn 域名
Accept application/json 接受的媒体类型

URL 参数

字段 类型 描述
uid integer 对象的唯一ID。

响应

返回一个Redis ACL对象

示例 JSON 主体

{
     "uid": 17,
     "name": "Geo",
     "acl": "~* +@geo"
}

状态码

代码 描述
200 OK 成功。
403 Forbidden 操作被禁止。
404 Not Found redis_acl 不存在。
501 Not Implemented 集群尚不支持redis_acl。

更新Redis ACL

PUT /v1/redis_acls/{int: uid}

更新现有的Redis ACL对象。

权限

权限名称 角色
update_redis_acl 管理员
用户管理

请求

示例HTTP请求

PUT /redis_acls/17

示例 JSON 主体

{
     "acl": "~* +@geo -@dangerous"
}

头部

描述
主机 cnm.cluster.fqdn 域名
Accept application/json 接受的媒体类型

查询参数

字段 类型 描述
dry_run 验证更新的Redis ACL对象但不应用更新。

URL 参数

字段 类型 描述
uid integer Redis ACL 的唯一 ID。

请求体

在请求体中包含一个Redis ACL对象,并更新其字段。

响应

返回更新后的Redis ACL对象

示例 JSON 主体

{
     "uid": 17,
     "name": "Geo",
     "acl": "~* +@geo -@dangerous"
}

错误代码

代码 描述
unsupported_resource 集群尚无法处理此资源类型。这可能发生在部分升级的集群中,其中一些节点仍处于先前版本。
name_already_exists 存在相同类型和名称的对象
invalid_param 参数具有非法值

状态码

代码 描述
200 OK 成功,redis_acl 已更新。
400 Bad Request 错误或缺少配置参数。
404 Not Found 尝试更改不存在的redis_acl。
409 Conflict 无法更改只读对象
501 Not Implemented 集群尚不支持redis_acl。

创建 Redis ACL

POST /v1/redis_acls

创建一个新的Redis ACL对象。

权限

权限名称 角色
create_redis_acl 管理员
用户管理员

请求

示例HTTP请求

POST /redis_acls

示例 JSON 主体

{
     "name": "Geo",
     "acl": "~* +@geo"
}

头部

描述
主机 cnm.cluster.fqdn 域名
Accept application/json 接受的媒体类型

查询参数

字段 类型 描述
dry_run 验证新的Redis ACL对象但不应用更新。

请求体

在请求体中包含一个Redis ACL对象

响应

返回新创建的Redis ACL对象

示例 JSON 主体

{
     "uid": 17,
     "name": "Geo",
     "acl": "~* +@geo"
}

错误代码

可能的 error_code 值:

代码 描述
unsupported_resource 集群尚无法处理此资源类型。这可能发生在部分升级的集群中,其中一些节点仍处于先前版本。
name_already_exists 存在相同类型和名称的对象
missing_field 缺少必要的字段
invalid_param 参数具有非法值

状态码

代码 描述
200 OK 成功,redis_acl 已创建。
400 Bad Request 错误或缺少配置参数。
501 Not Implemented 集群尚不支持redis_acl。

示例

cURL

curl -k -u "[username]:[password]" -X POST \
     -H 'Content-Type: application/json' \
     -d '{ "name": "Geo", "acl": "~* +@geo" }' \
     https://[host][:port]/v1/redis_acls

Python

import requests
import json

url = "https://[host][:port]/v1/redis_acls"

headers = {
  'Content-Type': 'application/json'
}

payload = json.dumps({
    "name": "Geo",
    "acl": "~* +@geo"
})
auth=("[username]", "[password]")

response = requests.request("POST", url,
           auth=auth, headers=headers, payload=payload, verify=False)

print(response.text)

删除Redis ACL

DELETE /v1/redis_acls/{int: uid}

删除一个Redis ACL对象。

权限

权限名称 角色
delete_redis_acl 管理员
用户管理

请求

示例HTTP请求

DELETE /redis_acls/1

头部

描述
主机 cnm.cluster.fqdn 域名
Accept application/json 接受的媒体类型

URL 参数

字段 类型 描述
uid integer redis_acl 的唯一 ID。

响应

返回一个状态码,表示Redis ACL删除成功或失败。

状态码

代码 描述
200 OK 成功,redis_acl 已被删除。
406 Not Acceptable 请求不可接受。
409 Conflict 无法删除只读对象
501 Not Implemented 集群尚不支持redis_acl。
RATE THIS PAGE
Back to top ↑