AWSCloudWatchOmniServiceRolePolicy

Last Modified

Sep 24, 2026

September 24, 2026 at 06:03 PM UTC

Version

v2

Total Versions

2

Created

Sep 24, 2026

Actions

16

Risk

Medium

The same capabilities in a scoped form, resource policy writes, reads across all data, or full access to a whole service. Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed

  • Medium

    Can grant itself more permissions

    Grants the actions of 1 documented escalation path, but only on named resources or under a condition. Review that scope before trusting it.

    • iam-009iam:AttachRolePolicyscoped
      • iam:AttachRolePolicy: condition aws:ResourceAccount, iam:RoleTemplateARN, on arn:aws:iam::*:role/service-role/CloudWatchOmniAWSIntegrationRole-*

    Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "CreateManagedCloudWatchIntegration",
          "Effect": "Allow",
          "Action": "cloudwatch:CreateIntegration",
          "Resource": "arn:aws:cloudwatch:*:*:integration/*",
          "Condition": {
            "ForAllValues:StringEquals": {
              "aws:TagKeys": "CloudWatchOmniManaged"
            },
            "StringEquals": {
              "aws:RequestTag/CloudWatchOmniManaged": "true",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "TagOperationForCloudWatchIntegration",
          "Effect": "Allow",
          "Action": [
            "cloudwatch:TagResource"
          ],
          "Resource": "arn:aws:cloudwatch:*:*:integration/*",
          "Condition": {
            "ForAllValues:StringEquals": {
              "aws:TagKeys": "CloudWatchOmniManaged"
            },
            "StringEquals": {
              "aws:RequestTag/CloudWatchOmniManaged": "true",
              "aws:ResourceTag/CloudWatchOmniManaged": "true",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "ListCloudWatchIntegration",
          "Effect": "Allow",
          "Action": "cloudwatch:ListIntegrations",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "DeleteManagedCloudWatchIntegration",
          "Effect": "Allow",
          "Action": "cloudwatch:DeleteIntegration",
          "Resource": "arn:aws:cloudwatch:*:*:integration/*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceTag/CloudWatchOmniManaged": "true",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "ManageConfigServiceLinkedRecorder",
          "Effect": "Allow",
          "Action": [
            "config:PutServiceLinkedConfigurationRecorder",
            "config:DescribeConfigurationRecorderStatus",
            "config:DeleteServiceLinkedConfigurationRecorder"
          ],
          "Resource": "arn:aws:config:*:*:configuration-recorder/AWSConfigurationRecorderForCloudWatch/*"
        },
        {
          "Sid": "CreateConfigServiceLinkedRole",
          "Effect": "Allow",
          "Action": "iam:CreateServiceLinkedRole",
          "Resource": "arn:aws:iam::*:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig",
          "Condition": {
            "StringEquals": {
              "iam:AWSServiceName": "config.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CreateCloudWatchOmniAWSIntegrationRole",
          "Effect": "Allow",
          "Action": [
            "iam:CreateRole",
            "iam:AttachRolePolicy"
          ],
          "Resource": "arn:aws:iam::*:role/service-role/CloudWatchOmniAWSIntegrationRole-*",
          "Condition": {
            "ArnEquals": {
              "iam:RoleTemplateARN": "arn:aws:iam::aws:role-template/cloudwatch.amazonaws.com/CloudWatchOmniAWSIntegrationForOrgRoleTemplate:1"
            },
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "ReadRoleTemplate",
          "Effect": "Allow",
          "Action": "iam:GetRoleTemplateVersion",
          "Resource": "arn:aws:iam::aws:role-template/cloudwatch.amazonaws.com/CloudWatchOmniAWSIntegrationForOrgRoleTemplate:1"
        },
        {
          "Sid": "PassRolePermissionForCloudWatchOmniAWSIntegrationRole",
          "Effect": "Allow",
          "Action": "iam:PassRole",
          "Resource": "arn:aws:iam::*:role/service-role/CloudWatchOmniAWSIntegrationRole-*",
          "Condition": {
            "StringEquals": {
              "iam:PassedToService": "cloudwatch.amazonaws.com",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "ListIamUsersAndRoles",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers",
            "iam:ListRoles"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "GetAwsAccountInformation",
          "Effect": "Allow",
          "Action": "account:GetAccountInformation",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "GetCloudWatchOmniAWSIntegrationRole",
          "Effect": "Allow",
          "Action": "iam:GetRole",
          "Resource": "arn:aws:iam::*:role/service-role/CloudWatchOmniAWSIntegrationRole-*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        }
      ]
    },
    "VersionId": "v2",
    "IsDefaultVersion": true,
    "CreateDate": "2026-09-24T17:47:08+00:00"
  }
}

Version History (2 recorded)

Raw history
v2updated

1 action added

3968aa9
v1new policy

15 actions added

4a7c22d
4 permissions management, incl. iam:AttachRolePolicy: iam:AttachRolePolicy, iam:CreateRole, iam:CreateServiceLinkedRole, iam:PassRole