- Newest
- Most votes
- Most comments
Below the best practices by AWS:
• Enable IAM Policies: AWS recommends enabling IAM policies in the key policy for most use cases, as it simplifies access management. • Use Least Privilege: Whether using the root principal or individual principals, always follow the principle of least privilege to minimize security risks. • Audit and Monitor: Regularly review key policies and IAM policies to ensure they align with your security and compliance requirements.
https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/kms.html
https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html
Hey,
Hope you're keeping well.
In most cases, AWS recommends including the root account principal ("AWS": "arn:aws:iam::<account-id>:root") in the KMS key policy to delegate permission control to IAM policies. This approach centralizes access management, making it easier to apply changes and maintain least privilege via IAM roles and policies. For highly sensitive keys, you can restrict the key policy to explicit principals, but that requires updating the key policy every time you add or remove access. The key point is to ensure your policy grants only the minimum required actions and to regularly audit both the key policy and IAM permissions.
Thanks and regards,
Taz
Relevant content
- asked 2 years ago

Hi, The pointed question is "Is it better to delegate access to IAM (aka root principle) or use tightly scoped principles for each individual IAM policy access?" - Is there any prescriptive guidance to answer this specific question ? Thanks.