Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
iam_inline_policy_no_full_access_to_kmsProvider: AWS
Service:
iamSeverity: MEDIUM
Categories:
identity-accessResource type:
AwsIamPolicyWhat this check verifies
IAM inline policies are analyzed to identify statements that grant unrestricted AWS KMS access via the wildcard actionkms:*.
Risk
Grantingkms:* enables decryption of protected data, modification of key policies and grants, and disabling or deleting keys.
Impacts:
- Confidentiality via unauthorized decryption
- Integrity through key/grant tampering
- Availability if keys are disabled or deleted, breaking encrypted workloads
Recommendation
Replacekms:* with least-privilege, action-scoped permissions limited to required operations and specific key ARNs. Enforce separation of duties for key admins vs users. Prefer managed policies over inline and apply guardrails (permissions boundaries/SCPs). Add conditions to constrain service, region, and encryption context.
Remediation
- Terraform
- Native IaC
- Dashboard steps
References
- http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
- https://support.icompaas.com/support/solutions/articles/62000233801-ensure-iam-inline-policies-that-allow-full-kms-privileges-are-not-created
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = iam_inline_policy_no_full_access_to_kms. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks