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