Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
2c71ddc
fix(server): honor explicit Deny in role trust policies
Oct 16, 2026
b17b3b8
fix(auth): match IAM on trust-policy Deny evaluation and validate at …
LeeroyHannigan Oct 20, 2026
32ff954
test(auth): wire tests for trust-policy Deny through AssumeRole
LeeroyHannigan Oct 20, 2026
d751f96
docs(auth): describe trust-policy Deny evaluation and write validation
LeeroyHannigan Oct 20, 2026
085a002
test(storage-sqlite): cover caller-tag lookup for user and role resou…
LeeroyHannigan Oct 20, 2026
add5fbd
test(abac): allow sts:TagSession in the session-tag role trust policy
LeeroyHannigan Oct 20, 2026
e642d27
fix(auth): resolve caller and session keys in trust policy, fail clos…
LeeroyHannigan Oct 20, 2026
3aca269
fix(auth): resolve tag condition keys case-insensitively
LeeroyHannigan Oct 20, 2026
421a03b
fix(auth): fail closed on identity-policy keys ExtendDB cannot resolve
LeeroyHannigan Oct 20, 2026
3d4a3c5
docs(admin): list trust-policy keys ExtendDB resolves and the global …
LeeroyHannigan Oct 20, 2026
be646d1
docs(adr): state the three-case condition-key rule and the resolved k…
LeeroyHannigan Oct 20, 2026
42f2da5
fix(auth): implement StringNotEqualsIgnoreCase in the condition evalu…
LeeroyHannigan Oct 20, 2026
9ad9a76
docs: correct the ADR helper reference and document upgrade impact an…
LeeroyHannigan Oct 20, 2026
900ec6b
fix(auth): resolve request-wide global keys and fail closed on the rest
LeeroyHannigan Oct 21, 2026
d73acf0
test(auth): wire tests for the revised global-key rule
LeeroyHannigan Oct 21, 2026
79c93c3
chore(auth): keep clippy happy on the trust policy evaluator argument…
LeeroyHannigan Oct 21, 2026
a610370
docs: describe the revised global-key resolution rule for trust and i…
LeeroyHannigan Oct 21, 2026
02969a9
fix(auth): resolve the remaining global condition keys and treat unpo…
LeeroyHannigan Oct 21, 2026
a9390c9
fix(server): thread source IP, user agent, userid and resource accoun…
LeeroyHannigan Oct 21, 2026
b19f44d
test(auth): wire tests for the resolved global keys and absent organi…
LeeroyHannigan Oct 21, 2026
245aa98
docs: describe the final global-key resolution rule and the classifie…
LeeroyHannigan Oct 21, 2026
4a3ea0d
chore(auth): use split_once and apply rustfmt in the principal id helper
LeeroyHannigan Oct 21, 2026
ea4d9cc
fix(auth): give a recreated principal a new aws:userid
LeeroyHannigan Oct 21, 2026
ad99d50
fix(auth): resolve aws:TokenIssueTime for role sessions
LeeroyHannigan Oct 21, 2026
dcaed99
test(auth): wire tests for TokenIssueTime on role sessions and userid…
LeeroyHannigan Oct 21, 2026
141213a
chore(auth): apply rustfmt and remove redundant closures
LeeroyHannigan Oct 21, 2026
91475f1
fix(auth): evaluate an IPv4 client on a dual-stack listener as IPv4
LeeroyHannigan Oct 21, 2026
6d76fd3
fix(auth): resolve condition key names case-insensitively
LeeroyHannigan Oct 21, 2026
cc269c0
fix(auth): resolve aws:MultiFactorAuthPresent for role sessions
LeeroyHannigan Oct 21, 2026
0889bac
fix(auth): reject a malformed CIDR in an identity policy at write
LeeroyHannigan Oct 21, 2026
e5ce6fc
feat(server): export the creation-time caches in auth cache metrics
LeeroyHannigan Oct 21, 2026
982d35a
docs: TokenIssueTime and MultiFactorAuthPresent resolve for role sess…
LeeroyHannigan Oct 21, 2026
e4e750c
docs: note aws:SourceIp is the direct peer and X-Forwarded-For is ign…
LeeroyHannigan Oct 21, 2026
0faba60
docs: note organization-key conditions do not block on a standalone a…
LeeroyHannigan Oct 21, 2026
bbe444c
docs: upgrade note for aws:TokenIssueTime on pre-upgrade MongoDB sess…
LeeroyHannigan Oct 21, 2026
8c812eb
docs: upgrade note for malformed-CIDR rejection in identity policies
LeeroyHannigan Oct 21, 2026
faf4a4c
fix(auth): fold condition key names under Unicode case folding
LeeroyHannigan Oct 21, 2026
a4196fd
fix(auth): resolve sts:RoleSessionName on the trust path
LeeroyHannigan Oct 21, 2026
eb19695
test(auth): condition operator names are case sensitive, matching the…
LeeroyHannigan Oct 21, 2026
68dae5a
docs: upgrade note detail for a stored malformed-CIDR identity policy
LeeroyHannigan Oct 21, 2026
9298378
docs: note TokenIssueTime and MultiFactorAuthPresent are request-path…
LeeroyHannigan Oct 21, 2026
aa2e096
fix(auth): match the service on leading-zero octet and mapped IPv6 in…
LeeroyHannigan Oct 21, 2026
d024197
chore(auth): rustfmt the miscased-operator rejection test
LeeroyHannigan Oct 21, 2026
363e2d9
chore(auth): record case-fold table provenance and add a generator an…
LeeroyHannigan Oct 21, 2026
4230f38
fix(auth): resolve a tag condition key deterministically
LeeroyHannigan Oct 21, 2026
104712d
fix(auth): the AssumeRole trust path matches ASCII case only, not Uni…
LeeroyHannigan Oct 21, 2026
6f7094b
fix(auth): apply IAM tag key and value charset rules at write
LeeroyHannigan Oct 21, 2026
cabfd06
perf(auth): ASCII fast path in case_fold
LeeroyHannigan Oct 21, 2026
6dd89a1
docs: upgrade notes for Unicode key folding, deterministic tags, tag …
LeeroyHannigan Oct 21, 2026
7146129
chore(auth): format the generated case-fold table through rustfmt
LeeroyHannigan Oct 21, 2026
d7b5758
fix(auth): validate tag charset by Unicode general category
LeeroyHannigan Oct 21, 2026
76961a0
fix(auth): reject a policy Sid outside the service charset
LeeroyHannigan Oct 21, 2026
8b780f0
test(auth): make the fold-collision wire test a fresh user per check
LeeroyHannigan Oct 21, 2026
ec97988
test(auth): trust-path folding guard uses keys that fold to real keys
LeeroyHannigan Oct 21, 2026
8343c9c
docs: correct tag re-tagging note and add tag charset and Sid notes
LeeroyHannigan Oct 21, 2026
516f4ef
fix(auth): check the policy Sid charset at write only
LeeroyHannigan Oct 21, 2026
3632748
docs(auth): remove the stale tag charset comment and record Unicode v…
LeeroyHannigan Oct 21, 2026
5a0bd63
fix(console): validate trust and identity policies the same way as th…
LeeroyHannigan Oct 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions crates/auth/src/cache_registry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,12 @@ pub trait AuthzCacheInvalidator: Send + Sync {
user_name: &'a str,
) -> BoxFuture<'a, ()>;

fn invalidate_user_created_at<'a>(
&'a self,
account_id: &'a str,
user_name: &'a str,
) -> BoxFuture<'a, ()>;

fn invalidate_role_policies<'a>(
&'a self,
account_id: &'a str,
Expand All @@ -90,6 +96,12 @@ pub trait AuthzCacheInvalidator: Send + Sync {
role_name: &'a str,
) -> BoxFuture<'a, ()>;

fn invalidate_role_created_at<'a>(
&'a self,
account_id: &'a str,
role_name: &'a str,
) -> BoxFuture<'a, ()>;

fn invalidate_session<'a>(
&'a self,
account_id: &'a str,
Expand Down Expand Up @@ -228,6 +240,12 @@ impl AuthCacheRegistry {
}
}

pub async fn invalidate_user_created_at(&self, account_id: &str, user_name: &str) {
if let Some(c) = &self.authz {
c.invalidate_user_created_at(account_id, user_name).await;
}
}

pub async fn invalidate_role_policies(&self, account_id: &str, role_name: &str) {
if let Some(c) = &self.authz {
c.invalidate_role_policies(account_id, role_name).await;
Expand All @@ -246,6 +264,12 @@ impl AuthCacheRegistry {
}
}

pub async fn invalidate_role_created_at(&self, account_id: &str, role_name: &str) {
if let Some(c) = &self.authz {
c.invalidate_role_created_at(account_id, role_name).await;
}
}

pub async fn invalidate_session(&self, account_id: &str, role_name: &str, session_name: &str) {
if let Some(c) = &self.authz {
c.invalidate_session(account_id, role_name, session_name)
Expand Down
Loading
Loading