Permissions policy for Perforce Unified Compliance
Perforce Unified Compliance scans the S3 bucket for new cost files when the account is onboarded, and scheduled polling continues to process ongoing updates.
-
Replace
<BUCKET_NAME>with the name of the S3 bucket containing the spending data export.Copy{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CostData",
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:GetBucketNotification",
"s3:PutBucketNotification"
],
"Resource": [
"arn:aws:s3:::<BUCKET_NAME>",
"arn:aws:s3:::<BUCKET_NAME>/*"
]
},
{
"Sid": "Collector",
"Effect": "Allow",
"Action": [
"eks:DescribeNodegroup",
"eks:ListNodegroups",
"ec2:DescribeInstances",
"ec2:DescribeInstanceTypes",
"ec2:DescribeRegions",
"ec2:DescribeVolumes",
"ec2:DescribeAddresses",
"elasticache:DescribeCacheClusters",
"rds:DescribeDBInstances",
"secretsmanager:ListSecrets",
"elasticfilesystem:DescribeFileSystems",
"eks:AccessKubernetesApi",
"eks:DescribeCluster",
"eks:ListClusters"
],
"Resource": [
"*"
]
},
{
"Sid": "EC2Optimization",
"Effect": "Allow",
"Action": [
"support:DescribeTrustedAdvisorCheckResult",
"support:DescribeTrustedAdvisorChecks",
"cloudwatch:GetMetricData"
],
"Resource": "*"
},
{
"Sid": "AccountAlias",
"Effect": "Allow",
"Action": [
"iam:ListAccountAliases"
],
"Resource": "*"
},
{
"Sid": "STSCredentialValidation",
"Effect": "Allow",
"Action": [
"sts:GetCallerIdentity"
],
"Resource": "*"
},
{
"Sid": "AllowSendCommandWithBuiltInDocuments",
"Effect": "Allow",
"Action": [
"ssm:SendCommand"
],
"Resource": [
"arn:aws:ssm:*:*:document/AWS-RunShellScript",
"arn:aws:ssm:*:*:document/AWS-RunPowerShellScript"
]
},
{
"Sid": "AllowSendCommandOnAllInstances",
"Effect": "Allow",
"Action": [
"ssm:SendCommand"
],
"Resource": "arn:aws:ec2:*:*:instance/*"
},
{
"Sid": "AllowCommandStatusPolling",
"Effect": "Allow",
"Action": [
"ssm:GetCommandInvocation",
"ssm:ListCommandInvocations"
],
"Resource": "*"
},
{
"Sid": "AllowPEEnrollmentSimulate",
"Effect": "Allow",
"Action": [
"iam:SimulatePrincipalPolicy"
],
"Resource": "*"
}
]
}
This IAM policy grants Perforce Unified Compliance the access it needs to onboard and operate an AWS account.
For cost and optimization it is read-only: read the Cost and Usage Report S3 bucket, discover inventory across EC2/EBS/EIP/EKS/RDS/ElastiCache/EFS/Secrets Manager, and pull rightsizing signals from Trusted Advisor and CloudWatch.
For Puppet Enrollment it grants an operational capability to run the built-in AWS Run Shell/PowerShell SSM documents on your EC2 instances, poll their results, and self-verify those permissions via iam:SimulatePrincipalPolicy. There are no create or delete rights on infrastructure; the only mutating actions are the S3 notification config and SSM command execution on instances which user needs to manage with Puppet Enrollment.