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。 |