#aws #iam #amazon-iam #aspen #unique-id

scratchstack-aws-principal

Principal types for AWS/AWS-like services

17 releases

0.4.9 Jul 8, 2024
0.4.8 Jan 10, 2023
0.4.7 Oct 22, 2022
0.3.4 Jul 13, 2024
0.2.2 Apr 25, 2021

#741 in Rust patterns

42 downloads per month
Used in 7 crates (6 directly)

MIT license

185KB
3.5K SLoC

Actor principals for AWS and AWS-like services.

Principals come in two "flavors": actor principals and policy principals. Policy principals are used in Aspen documents and have a source ("AWS", "CanonicalUser", "Federated", or "Service") and an associated value which may contain wildcards. These are implemented in the scratchstack-aspen crate.

On the service implementation side, actor principals (represented by [Principal] here) are exact, without wildcards. Beyond the core details, there are additional details attached to a principal actor that can be referenced in policy variables. For example, IAM users have a universally unique ID. If the /Sales/Bob user is deleted and re-created, these two users will have the same ARN but different unique IDs that can be referenced via the aws:userid condition key. These details are carried in [SessionData] structures apart from the [Principal] itself.

Dependencies

~3.5–5MB
~83K SLoC