Cedar has a playground that supports much of what you're asking for or were you referring to IAM (AWS specific, and not model policies for your business).
It seems more akin to the IAM policy simulator to me. You need to know the specific action and context to play with the policy.
In the real case I don't know what context the actions carry that I may use for filtering, I don't know the action names and I may not even know the full list of API calls the tool I use wants to make.
> In the real case I don't know what context the actions carry that I may use for filtering
You do know all of this with Cedar as the service owner though. You know the attributes on the entities, you know the policies. Something is going over my head, because I don't think I understand the use case. Can you give a concrete example?
A real use case I ran into myself was when trying to grant a minimal set of permissions for creating EMR Notebooks. The AWS documentation for the PassRole permissions was incorrect and my team kept getting generic permission errors (cannot PassRole without saying what it can’t pass the role to) despite following it exactly, so we had to give broader permissions to get unblocked. Obviously they made some changes to the backend such that the documentation was out of date.
That's not Cedar or what Cedar solves. Cedar isn't replacing IAM, AWS's own policy DSL. It's a way for you to create your own IAM, and model it as you like. It has its own specification, and embedding Cedar into applications is a use case. I expect they're open sourcing it.
The hosted offering is AWS runs an evaluation engine at scale ensuring it's low latency so your own customers can access resources gated by your own entity and policy definitions.
I think we're getting wires crossed. I know that, and I know that Cedar doesn't solve this use case. I was jumping on with Krab's comment mentioning why something that works like a policy simulator isn't sufficient.
Probably we're looking at the problem from a different point of view.
Imagine I'm a new AWS customer that creates their account, starts an Elastic Beanstalk application and tries to automate deployment via CI. The access key will need some permissions to EB, EC2, S3, maybe RDS, ECR... The best thing I can do at the moment is to expect that an example policy is somewhere in the docs.
Yeah, what you are looking for is something like a "learning mode" for an IAM account where the key actually has wide-open permissions and the system records which permissions are used and generates a policy locked down to what you did while it was in "learning mode" then you can edit that policy and then turn the account into "locked mode" where permissions are limited to the created policy.
I've been in that position and more often than not I end up doing the "wrong" thing and give a key wider permissions than needed because trying to lock it down is so frustrating (especially if your CI process is long/expensive). Having to wait 5+ minutes for a CI to reach to the end and realized you missed 1 permissions, rinse and repeat 10+ times for "just one more permission" is frustrating/time consuming.
EDIT: Just saw this further down in the thread https://github.com/iann0036/iamlive (which you already replied to) which looks like it does pretty much what I'm looking for.
Cedar has nothing to do with AWS except that it's open sourced by AWS (I think?). It has nothing to do with IAM, an existing way to model policy specifically for AWS owned resources.
What you do once you model your application's authorization concerns in Cedar to make it so action:foo is exposed as usable on resource:bar is up to you, and your business. An anaylzer can be implemented on top of this for your domain and offer the functionality you're describing, but that seems out of scope for Cedar the modeling specification and evaluation engine to provide.
Imagine Cedar as a way for you, a SaaS provider, to add granular access policies like AWS for your own specific resources be it customers, rental cars, food orders, or advertising campaigns. I suspect the majority of use cases aren’t multi-tenant SaaS concerns but very complex authorization over resources internally across services in an organization. Does micro service A have access to update data on resource bar? It’s still hard to model and enforce those things as organizations grow, especially in a domain specific way.
> Cedar has nothing to do with AWS except that it's open sourced by AWS
It seems to me it's a tool made in AWS by some team close to AWS IAM. My original comment didn't relate that much to Cedar itself. Rather, I tried to express my long held frustration with AWS IAM which Cedar doesn't solve even though it must have costed a lot of effort.
Don't worry too much about it. I'm just a random Internet commenter talking about a topic that's not even mentioned in the original article but tangentially connected.
https://www.cedarpolicy.com/en/playground