Skip to content

Commit df1efe1

Browse files
committed
Add more content.
1 parent 7473c10 commit df1efe1

File tree

2 files changed

+74
-7
lines changed

2 files changed

+74
-7
lines changed

content/operate/oss_and_stack/management/security/acl.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,7 @@ The following is a list of command categories and their meanings:
323323
* **transaction** - [`WATCH`](/commands/watch) / [`MULTI`](/commands/multi) / [`EXEC`](/commands/exec) related commands.
324324
* **write** - Writing to keys (values or metadata). Note that commands that don't interact with keys, will not have either `read` or `write`.
325325

326-
1. <a name="cmd-note-1"></a>Before Redis 8, the existing ACL categories @read, @write, @dangerous, @admin, @slow, and @fast did not include commands for the Redis Query Engine, JSON, time series, and probabilistic data structures.
327-
328-
Starting with Redis 8, Redis includes all Query Engine, JSON, time series, Bloom filter, cuckoo filter, top-k, count-min sketch, and t-digest commands in these existing ACL categories.
326+
1. <a name="cmd-note-1"></a> See the [Redis 8 release notes]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisos-8.0-release-notes/#potentially-breaking-changes-to-acls" >}}) for more information about these command categories, which may introduce breaking changes to your Redis deployments.
329327

330328
NOTE: Redis can also show you a list of all categories and the exact commands each category includes using the Redis [`ACL CAT`](/commands/acl-cat) command.
331329
It can be used in two forms:

content/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisos-8.0-release-notes.md

Lines changed: 73 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,8 @@ Stand alone RediSearch, RedisJSON, RedisTimeSeries, and RedisBloom modules are n
7171

7272
- See the [build instructions]({{< relref "/operate/oss_and_stack/install/build-stack" >}}) for information about building from source code.
7373
- New configuration file: `redis-full.conf`, loads Redis with all components,
74-
and contains new configuration parameters for Redis Query Engine and the new data structures .
75-
- Before Redis 8, the existing ACL categories @read, @write, @dangerous, @admin, @slow, and @fast did not include commands for the Redis Query Engine, JSON, time series, and probabilistic data structures.
76-
77-
Starting with Redis 8, Redis includes all Query Engine, JSON, time series, Bloom filter, cuckoo filter, top-k, count-min sketch, and t-digest commands in these existing ACL categories.
74+
and contains new configuration parameters for Redis Query Engine and the new data structures.
75+
- New ACL categories: `@search`, `@json`, `@timeseries`, `@bloom`, `@cuckoo`, `@cms`, `@topk`, and `@tdigest` commands are also included in the existing ACL categories such as `@read` and `@write`. See [below]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisos-8.0-release-notes/#potentially-breaking-changes-to-acls" >}}) for information about potentially breaking changes.
7876
- More than 30 performance and resource utilization improvements.
7977
- A new I/O threading implementation, which enables throughput increase on multi-core environments
8078
(set with the `io-threads` configuration parameter).
@@ -113,3 +111,74 @@ For more details, see the release notes for the [8.0-M01](https://github.com/red
113111
- [#13966](https://github.com/redis/redis/pull/13966), [#13932](https://github.com/redis/redis/pull/13932) `CLUSTER SLOTS` - TLS port update not reflected.
114112
- [#13958](https://github.com/redis/redis/pull/13958) `XTRIM`, `XADD` - incorrect lag due to trimming stream.
115113
- [#13931](https://github.com/redis/redis/pull/13931) `HGETEX` - wrong order of keyspace notifications.
114+
115+
### Potentially breaking changes to ACLs
116+
117+
{{< note >}}
118+
The following content is relevant to all Redis distributions (RS, RC, and ROS).
119+
{{< /note >}}
120+
121+
Redis 8 includes Redis Query Engine, as well as JSON, time series, Bloom filter, cuckoo filter, top-k, count-min sketch, and t-digest data types.
122+
The integration of these features into Redis also comes with improvements to Redis [ACL]({{< relref "/operate/oss_and_stack/management/security/acl" >}}) rules.
123+
124+
{{< warning >}}
125+
These ACL changes may introduce breaking changes for some users, which must be analyzed carefully.
126+
{{< /warning >}}
127+
128+
### Extension to the existing ACL categories
129+
130+
Before Redis 8, the existing ACL categories @read, @write, @dangerous, @admin, @slow, and @fast did not include commands for the Redis Query Engine and the JSON, time series, and probabilistic data structures.
131+
132+
Starting with Redis 8, Redis includes all Query Engine, JSON, time series, Bloom filter, cuckoo filter, top-k, count-min sketch, and t-digest commands in these existing ACL categories.
133+
134+
As a result:
135+
136+
- Existing ACL rules such as `+@read +@write` will allow access to more commands than in previous versions of Redis. Here are some examples:
137+
- A user with `+@read` access will be able to execute `FT.SEARCH`.
138+
- A user with `+@write` access will be able to execute `JSON.SET`.
139+
140+
- ACL rules such as `+@all -@write` will allow access to fewer commands than previous versions of Redis. For example:
141+
- A user with `+@all -@write` will not be able to execute `JSON.SET`.
142+
143+
Note that the `@all` category did not change, as it always included all the commands.
144+
145+
Additionally, ACL rules such as `+@read +JSON.GET` can now be simplified as `+@read` because `JSON.GET` is included in the `@read` category.
146+
147+
### Who is affected by this change?
148+
149+
Users who currently use the Redis Query Engine and/or the JSON, time series, or probabilistic data structures, and use custom ACL rules.
150+
151+
You should reanalyze your ACL rules to make sure they are aligned with your security and access control requirements.
152+
153+
### Redis 8 introduces the following data structure and processing engine ACL categories.
154+
155+
| New ACL commands category names | Included commands |
156+
| :---- | :---- |
157+
| `search` | All Redis Query Engine commands |
158+
| `json` | All JSON commands |
159+
| `timeseries` | All time series commands |
160+
| `bloom` | All Bloom filter commands |
161+
| `cuckoo` | All cuckoo filter commands |
162+
| `topk` | All top-k commands |
163+
| `cms` | All count-min sketch commands |
164+
| `tdigest` | All t-digest commands |
165+
166+
You can use these new categories in your ACL rules.
167+
168+
### Time series notes
169+
170+
The following time series commands retrieve data from all keys that match a given filter expression: `TS.MGET`, `TS.MRANGE`, and `TS.MREVRANGE`.
171+
172+
There can be a case where a user may have to only some of the matching keys. In such cases, the command’s result is an error message: “*current user doesn't have read permission to one or more keys that match the specified filter*”.
173+
174+
On the other hand, `TS.QUERYINDEX` does not require `@read` access to the keys that match the specified filter, as it accesses only time series metadata (name and labels) and not content (measurements).
175+
176+
### Redis Query Engine notes
177+
178+
The following Redis Query Engine commands may retrieve data from all keys that match the prefixes defined in the index (that is, all indexed documents, per-index):
179+
180+
- `FT.SEARCH`
181+
- `FT.AGGREGATE` (may be followed by `FT.CURSOR`)
182+
- `FT.PROFILE`
183+
184+
Only ACL users with access to a superset of the key prefixes defined during index creation can create, modify, or read the index. For example, a user with the key ACL pattern `h:*` can create an index with keys prefixed by `h:*` or `h:p*`, but not keys prefixed by `h*`, `k:*`, or `k*`, because these prefixes may involve keys to which the user does not have access.

0 commit comments

Comments
 (0)