A Permission Boundary sets the maximum permissions an IAM user or role can ever have — even if their IAM policy allows more.
You need TWO things for a permission to actually work:
Both must say yes. If either says no — the action is denied.
Example:
Permission Boundary allows: S3, CloudWatch, EC2
IAM Policy allows: iam:CreateUser
Result: No permissions — because iam:CreateUser is not inside the boundary. Even though the IAM policy allows it, the boundary doesn't — so it's blocked.
Boundary allows: s3:*, cloudwatch:*, ec2:*
IAM Policy allows: iam:CreateUser
Result: DENIED — iam:CreateUser is outside the boundary