The initial mkat version was doing basic string matching to figure out if a specific pod could assume a specific role. In this PR I implemented a more robust IAM evaluation engine, including support for StringLike and StringEquals on condition keys.
Then, the main logic is:
Iterate over all the (namespace, service account, IAM roles)
closes #1 closes #4
The initial mkat version was doing basic string matching to figure out if a specific pod could assume a specific role. In this PR I implemented a more robust IAM evaluation engine, including support for
StringLike
andStringEquals
on condition keys.Then, the main logic is:
Allow
, then consider that the pod can assume that role