CloudWatchSyntheticsFullAccess

Last Modified

Apr 1, 2026

April 1, 2026 at 12:46 PM UTC

Version

v14

Total Versions

12

Created

Mar 31, 2026

Actions

51

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 launch resources that run as a more privileged role

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

    • lambda-006iam:PassRole + lambda:CreateFunction + lambda:AddPermissionscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/service-role/CloudWatchSyntheticsRole*
      • lambda:CreateFunction: on arn:aws:lambda:*:*:function:cwsyn-*
      • lambda:AddPermission: on arn:aws:lambda:*:*:function:cwsyn-*

    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.

  • Medium

    Can take over existing resources that run as another role

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

    • lambda-003lambda:UpdateFunctionCodescoped
      • lambda:UpdateFunctionCode: on arn:aws:lambda:*:*:function:cwsyn-*
    • lambda-005lambda:UpdateFunctionCode + lambda:AddPermissionscoped
      • lambda:UpdateFunctionCode: on arn:aws:lambda:*:*:function:cwsyn-*
      • lambda:AddPermission: on arn:aws:lambda:*:*:function:cwsyn-*

    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.

  • Medium

    Full synthetics access on every resource

    Uses synthetics:* with Resource "*" and no condition, so every action AWS adds to that service later is granted too.

    synthetics:*

    Use with caution: The grant grows every time the service does. For long-lived access, prefer a policy that lists the actions you actually need.

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "synthetics:*"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:CreateBucket",
            "s3:PutEncryptionConfiguration"
          ],
          "Resource": [
            "arn:aws:s3:::cw-syn-results-*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "iam:ListRoles",
            "s3:ListAllMyBuckets",
            "xray:GetTraceSummaries",
            "xray:BatchGetTraces"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "apigateway:GET"
          ],
          "Resource": [
            "arn:aws:apigateway:*::/restapis",
            "arn:aws:apigateway:*::/restapis/*/stages",
            "arn:aws:apigateway:*::/restapis/*/stages/*/exports/swagger",
            "arn:aws:apigateway:*::/apis"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:GetBucketLocation"
          ],
          "Resource": "arn:aws:s3:::*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:GetObject",
            "s3:ListBucket"
          ],
          "Resource": "arn:aws:s3:::cw-syn-*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:GetObjectVersion"
          ],
          "Resource": "arn:aws:s3:::aws-synthetics-library-*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "iam:PassRole"
          ],
          "Resource": [
            "arn:aws:iam::*:role/service-role/CloudWatchSyntheticsRole*"
          ],
          "Condition": {
            "StringEquals": {
              "iam:PassedToService": [
                "lambda.amazonaws.com",
                "synthetics.amazonaws.com"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "iam:GetRole",
            "iam:ListAttachedRolePolicies"
          ],
          "Resource": [
            "arn:aws:iam::*:role/service-role/CloudWatchSyntheticsRole*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "cloudwatch:GetMetricData",
            "cloudwatch:GetMetricStatistics",
            "cloudwatch:ListMetrics"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "cloudwatch:PutMetricAlarm",
            "cloudwatch:DeleteAlarms"
          ],
          "Resource": [
            "arn:aws:cloudwatch:*:*:alarm:Synthetics-*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "cloudwatch:DescribeAlarms"
          ],
          "Resource": [
            "arn:aws:cloudwatch:*:*:alarm:*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "logs:GetLogRecord",
            "logs:DescribeLogStreams",
            "logs:StartQuery",
            "logs:GetLogEvents",
            "logs:FilterLogEvents",
            "logs:GetLogGroupFields"
          ],
          "Resource": [
            "arn:aws:logs:*:*:log-group:/aws/lambda/cwsyn-*"
          ],
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "lambda:CreateFunction",
            "lambda:AddPermission",
            "lambda:PublishVersion",
            "lambda:UpdateFunctionCode",
            "lambda:UpdateFunctionConfiguration",
            "lambda:GetFunctionConfiguration",
            "lambda:GetFunction",
            "lambda:DeleteFunction",
            "lambda:ListTags",
            "lambda:TagResource",
            "lambda:UntagResource"
          ],
          "Resource": [
            "arn:aws:lambda:*:*:function:cwsyn-*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "lambda:GetLayerVersion",
            "lambda:PublishLayerVersion",
            "lambda:DeleteLayerVersion"
          ],
          "Resource": [
            "arn:aws:lambda:*:*:layer:cwsyn-*",
            "arn:aws:lambda:*:*:layer:Synthetics:*",
            "arn:aws:lambda:*:*:layer:Synthetics_Selenium:*",
            "arn:aws:lambda:*:*:layer:AWS-CW-Synthetics*:*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "ec2:DescribeVpcs",
            "ec2:DescribeSubnets",
            "ec2:DescribeSecurityGroups"
          ],
          "Resource": [
            "*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics"
          ],
          "Resource": [
            "*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:Subscribe",
            "sns:ListSubscriptionsByTopic"
          ],
          "Resource": [
            "arn:*:sns:*:*:Synthetics-*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "kms:ListAliases"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKey"
          ],
          "Resource": "arn:aws:kms:*:*:key/*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "kms:Decrypt"
          ],
          "Resource": "arn:aws:kms:*:*:key/*",
          "Condition": {
            "StringLike": {
              "kms:ViaService": [
                "s3.*.amazonaws.com"
              ]
            }
          }
        }
      ]
    },
    "VersionId": "v14",
    "IsDefaultVersion": true,
    "CreateDate": "2026-03-31T21:12:14+00:00"
  }
}

Version History (17 recorded)

Raw history
v14updated

1 action added

397fc9c
v13updated

scope changed, no action added or removed

544c746

CloudWatchSyntheticsFullAccess - Policy Version v13

No recorded action delta - this version predates the change index. View the raw diff.

Feb 12, 2026

c2467e3

CloudWatchSyntheticsFullAccess - Policy Version v12

No recorded action delta - this version predates the change index. View the raw diff.

Feb 12, 2026

a6b1f36

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Nov 22, 2024

59767f0

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Oct 11, 2024

4b02739

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 18, 2024

aafbae9

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

May 13, 2024

1b36617

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

May 6, 2022

92f8565

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 30, 2021

2392c5c

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Jul 20, 2021

e0ba7be

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Mar 25, 2021

1ca59b5

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Jan 28, 2021

821de21

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 18, 2020

30bad89

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Apr 22, 2020

a452328

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Apr 3, 2020

361a5cb

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Nov 25, 2019

a9e5832