Least privilege, measured not guessed
Know who breaks before you trim the role.
Nobody trims a role they cannot prove is safe, so nothing gets trimmed. Kyro measures what each identity actually uses, so you cut it knowing exactly what depends on it.
right-size payments-copilot-irsa
actions = [ "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", not observed · 90d "dynamodb:*", not observed · 90d "ec2:TerminateInstances", not observed · 90d ] s3:ListBucket kept: reconciler-job shares this role and calls it nightly
