Skip to content

Commit abf03e6

Browse files
committed
docs(policy): disclose breaking password authorization changes
Signed-off-by: Feng Ruohang <rh@vonng.com>
1 parent b3760f5 commit abf03e6

1 file changed

Lines changed: 30 additions & 4 deletions

File tree

UPSTREAM.md

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,36 @@ and `minio/minio-go` through
2020
streaming SignedHeaders ([#2301](https://github.com/minio/minio-go/pull/2301))
2121
and caller TLS trust on RDMA ([#2302](https://github.com/minio/minio-go/pull/2302)).
2222

23-
Password authorization must be deployed with the matching SILO Server and
24-
Console changes. See the Server's `docs/iam/password-permissions.md` for old
25-
policy behavior and migration. No public API or Go compatibility floor changes
26-
are required by these package changes.
23+
## Breaking authorization compatibility
24+
25+
Adopting #262 changes existing policy semantics; it is independent of updating
26+
the minio-go SDK. This must be disclosed as a breaking change in the release
27+
that includes it. The Go signatures and Go compatibility floor are unchanged,
28+
but the public `Policy.IsAllowedActions` method returns different capabilities:
29+
ChangeMyPassword is implicit unless denied, and CreateUser requires an explicit
30+
Allow. Consumers must use the matching capability for each operation.
31+
32+
With the matching Server change, a saved `Deny admin:CreateUser` no longer
33+
prevents the caller from changing their own password. A saved
34+
`Deny admin:ChangeMyPassword` now prevents it. To preserve a policy's old
35+
combined restriction, add ChangeMyPassword to the same CreateUser Deny statement
36+
before upgrading, preserving its other actions, scope and conditions. Saved
37+
policy documents are not rewritten automatically.
38+
39+
The built-in `readonly` policy also drops its old CreateUser deny. It now allows
40+
self-service password changes, and a separate CreateUser Allow can grant user
41+
administration where the old built-in deny overrode it. Saved overrides retain
42+
their existing deny; inspect the effective policy contents. `consolereadonly`
43+
is new and follows the split. Neither read-only policy grants user
44+
administration on its own.
45+
46+
Deploy password authorization with the matching SILO Server and Console.
47+
During a mixed-version rollout or rollback, retain both denies if the old
48+
combined restriction must hold: an old Server does not enforce a password-only
49+
deny for this endpoint. See the Server's
50+
[password-permission migration guide](https://github.com/pgsty/silo/blob/420340bc142b7dec00c26c28dd78102e3ed9d0f3/docs/iam/password-permissions.md)
51+
for the before/after matrix, policy migration, read-only composition and
52+
rollback limits.
2753

2854
## Already covered or deferred
2955

0 commit comments

Comments
 (0)