AmazonSageMakerCanvasFullAccess

Last Modified

Mar 12, 2026

March 12, 2026 at 09:28 PM UTC

Version

v11

Total Versions

15

Created

Aug 16, 2024

Actions

134

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 3 documented escalation paths, but only on named resources or under a condition. Review that scope before trusting it.

    • emrserverless-001iam:PassRole + emr-serverless:CreateApplication + emr-serverless:StartJobRunscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/*
      • emr-serverless:CreateApplication: condition aws:RequestTag/sagemaker:is-canvas-resource, aws:ResourceAccount, on arn:aws:emr-serverless:*:*:/*
      • emr-serverless:StartJobRun: condition aws:RequestTag/sagemaker:is-canvas-resource, aws:ResourceAccount, on arn:aws:emr-serverless:*:*:/applications/*
    • sagemaker-002iam:PassRole + sagemaker:CreateTrainingJobscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/*
      • sagemaker:CreateTrainingJob: on arn:aws:sagemaker:*:*:*Canvas*, arn:aws:sagemaker:*:*:*canvas*, arn:aws:sagemaker:*:*:*model-compilation-*
    • sagemaker-003iam:PassRole + sagemaker:CreateProcessingJobscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/*
      • sagemaker:CreateProcessingJob: on arn:aws:sagemaker:*:*:*Canvas*, arn:aws:sagemaker:*:*:*canvas*, arn:aws:sagemaker:*:*:*model-compilation-*

    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.

IAM Access Analyzer (1)

  • Warning / POLICY_SIZE_EXCEEDS_IDENTITY_POLICY_QUOTA

    The 10771 characters in the identity policy, excluding whitespace, exceed the 10240 character maximum for inline and managed policies. We recommend that you use multiple granular policies. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "SageMakerUserDetailsAndPackageOperations",
          "Effect": "Allow",
          "Action": [
            "sagemaker:DescribeDomain",
            "sagemaker:DescribeUserProfile",
            "sagemaker:ListTags",
            "sagemaker:ListModelPackages",
            "sagemaker:ListModelPackageGroups",
            "sagemaker:ListEndpoints"
          ],
          "Resource": "*"
        },
        {
          "Sid": "SageMakerPackageGroupOperations",
          "Effect": "Allow",
          "Action": [
            "sagemaker:CreateModelPackageGroup",
            "sagemaker:CreateModelPackage",
            "sagemaker:DescribeModelPackageGroup",
            "sagemaker:DescribeModelPackage"
          ],
          "Resource": [
            "arn:aws:sagemaker:*:*:model-package/*",
            "arn:aws:sagemaker:*:*:model-package-group/*"
          ]
        },
        {
          "Sid": "SageMakerTrainingOperations",
          "Effect": "Allow",
          "Action": [
            "sagemaker:CreateCompilationJob",
            "sagemaker:CreateEndpoint",
            "sagemaker:CreateEndpointConfig",
            "sagemaker:CreateModel",
            "sagemaker:CreateProcessingJob",
            "sagemaker:CreateAutoMLJob",
            "sagemaker:CreateAutoMLJobV2",
            "sagemaker:CreateTrainingJob",
            "sagemaker:CreateTransformJob",
            "sagemaker:DeleteEndpoint",
            "sagemaker:DescribeCompilationJob",
            "sagemaker:DescribeEndpoint",
            "sagemaker:DescribeEndpointConfig",
            "sagemaker:DescribeModel",
            "sagemaker:DescribeProcessingJob",
            "sagemaker:DescribeAutoMLJob",
            "sagemaker:DescribeAutoMLJobV2",
            "sagemaker:DescribeTrainingJob",
            "sagemaker:DescribeTransformJob",
            "sagemaker:ListCandidatesForAutoMLJob",
            "sagemaker:StopAutoMLJob",
            "sagemaker:StopTrainingJob",
            "sagemaker:StopTransformJob",
            "sagemaker:AddTags",
            "sagemaker:DeleteApp"
          ],
          "Resource": [
            "arn:aws:sagemaker:*:*:*Canvas*",
            "arn:aws:sagemaker:*:*:*canvas*",
            "arn:aws:sagemaker:*:*:*model-compilation-*"
          ]
        },
        {
          "Sid": "SageMakerHostingOperations",
          "Effect": "Allow",
          "Action": [
            "sagemaker:DeleteEndpointConfig",
            "sagemaker:DeleteModel",
            "sagemaker:InvokeEndpoint",
            "sagemaker:UpdateEndpointWeightsAndCapacities",
            "sagemaker:InvokeEndpointAsync"
          ],
          "Resource": [
            "arn:aws:sagemaker:*:*:*Canvas*",
            "arn:aws:sagemaker:*:*:*canvas*"
          ]
        },
        {
          "Sid": "EC2VPCOperation",
          "Effect": "Allow",
          "Action": [
            "ec2:CreateVpcEndpoint",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcs",
            "ec2:DescribeVpcEndpoints",
            "ec2:DescribeVpcEndpointServices"
          ],
          "Resource": "*"
        },
        {
          "Sid": "ECROperations",
          "Effect": "Allow",
          "Action": [
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer",
            "ecr:GetAuthorizationToken"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMGetOperations",
          "Effect": "Allow",
          "Action": [
            "iam:GetRole"
          ],
          "Resource": "arn:aws:iam::*:role/*"
        },
        {
          "Sid": "IAMPassOperation",
          "Effect": "Allow",
          "Action": [
            "iam:PassRole"
          ],
          "Resource": "arn:aws:iam::*:role/*",
          "Condition": {
            "StringEquals": {
              "iam:PassedToService": "sagemaker.amazonaws.com"
            }
          }
        },
        {
          "Sid": "LoggingOperation",
          "Effect": "Allow",
          "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
          ],
          "Resource": "arn:aws:logs:*:*:log-group:/aws/sagemaker/*"
        },
        {
          "Sid": "S3Operations",
          "Effect": "Allow",
          "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:DeleteObject",
            "s3:CreateBucket",
            "s3:GetBucketCors",
            "s3:GetBucketLocation"
          ],
          "Resource": [
            "arn:aws:s3:::*SageMaker*",
            "arn:aws:s3:::*Sagemaker*",
            "arn:aws:s3:::*sagemaker*"
          ]
        },
        {
          "Sid": "ReadSageMakerJumpstartArtifacts",
          "Effect": "Allow",
          "Action": "s3:GetObject",
          "Resource": [
            "arn:aws:s3:::jumpstart-cache-prod-us-west-2/*",
            "arn:aws:s3:::jumpstart-cache-prod-us-east-1/*",
            "arn:aws:s3:::jumpstart-cache-prod-us-east-2/*",
            "arn:aws:s3:::jumpstart-cache-prod-eu-west-1/*",
            "arn:aws:s3:::jumpstart-cache-prod-eu-central-1/*",
            "arn:aws:s3:::jumpstart-cache-prod-ap-south-1/*",
            "arn:aws:s3:::jumpstart-cache-prod-ap-northeast-2/*",
            "arn:aws:s3:::jumpstart-cache-prod-ap-northeast-1/*",
            "arn:aws:s3:::jumpstart-cache-prod-ap-southeast-1/*",
            "arn:aws:s3:::jumpstart-cache-prod-ap-southeast-2/*"
          ]
        },
        {
          "Sid": "S3ListOperations",
          "Effect": "Allow",
          "Action": [
            "s3:ListBucket",
            "s3:ListAllMyBuckets"
          ],
          "Resource": "*"
        },
        {
          "Sid": "GlueOperations",
          "Effect": "Allow",
          "Action": "glue:SearchTables",
          "Resource": [
            "arn:aws:glue:*:*:table/*/*",
            "arn:aws:glue:*:*:database/*",
            "arn:aws:glue:*:*:catalog"
          ]
        },
        {
          "Sid": "SecretsManagerARNBasedOperation",
          "Effect": "Allow",
          "Action": [
            "secretsmanager:DescribeSecret",
            "secretsmanager:GetSecretValue",
            "secretsmanager:CreateSecret",
            "secretsmanager:PutResourcePolicy"
          ],
          "Resource": [
            "arn:aws:secretsmanager:*:*:secret:AmazonSageMaker-*"
          ]
        },
        {
          "Sid": "SecretManagerTagBasedOperation",
          "Effect": "Allow",
          "Action": [
            "secretsmanager:DescribeSecret",
            "secretsmanager:GetSecretValue"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "secretsmanager:ResourceTag/SageMaker": "true"
            }
          }
        },
        {
          "Sid": "RedshiftOperations",
          "Effect": "Allow",
          "Action": [
            "redshift-data:ExecuteStatement",
            "redshift-data:DescribeStatement",
            "redshift-data:CancelStatement",
            "redshift-data:GetStatementResult",
            "redshift-data:ListSchemas",
            "redshift-data:ListTables",
            "redshift-data:DescribeTable"
          ],
          "Resource": "*"
        },
        {
          "Sid": "RedshiftGetCredentialsOperation",
          "Effect": "Allow",
          "Action": [
            "redshift:GetClusterCredentials"
          ],
          "Resource": [
            "arn:aws:redshift:*:*:dbuser:*/sagemaker_access*",
            "arn:aws:redshift:*:*:dbname:*"
          ]
        },
        {
          "Sid": "ForecastOperations",
          "Effect": "Allow",
          "Action": [
            "forecast:CreateExplainabilityExport",
            "forecast:CreateExplainability",
            "forecast:CreateForecastEndpoint",
            "forecast:CreateAutoPredictor",
            "forecast:CreateDatasetImportJob",
            "forecast:CreateDatasetGroup",
            "forecast:CreateDataset",
            "forecast:CreateForecast",
            "forecast:CreateForecastExportJob",
            "forecast:CreatePredictorBacktestExportJob",
            "forecast:CreatePredictor",
            "forecast:DescribeExplainabilityExport",
            "forecast:DescribeExplainability",
            "forecast:DescribeAutoPredictor",
            "forecast:DescribeForecastEndpoint",
            "forecast:DescribeDatasetImportJob",
            "forecast:DescribeDataset",
            "forecast:DescribeForecast",
            "forecast:DescribeForecastExportJob",
            "forecast:DescribePredictorBacktestExportJob",
            "forecast:GetAccuracyMetrics",
            "forecast:InvokeForecastEndpoint",
            "forecast:GetRecentForecastContext",
            "forecast:DescribePredictor",
            "forecast:TagResource",
            "forecast:DeleteResourceTree"
          ],
          "Resource": [
            "arn:aws:forecast:*:*:*Canvas*"
          ]
        },
        {
          "Sid": "RDSOperation",
          "Effect": "Allow",
          "Action": "rds:DescribeDBInstances",
          "Resource": "*"
        },
        {
          "Sid": "IAMPassOperationForForecast",
          "Effect": "Allow",
          "Action": [
            "iam:PassRole"
          ],
          "Resource": "arn:aws:iam::*:role/*",
          "Condition": {
            "StringEquals": {
              "iam:PassedToService": "forecast.amazonaws.com"
            }
          }
        },
        {
          "Sid": "AutoscalingOperations",
          "Effect": "Allow",
          "Action": [
            "application-autoscaling:PutScalingPolicy",
            "application-autoscaling:RegisterScalableTarget"
          ],
          "Resource": "arn:aws:application-autoscaling:*:*:scalable-target/*",
          "Condition": {
            "StringEquals": {
              "application-autoscaling:service-namespace": "sagemaker",
              "application-autoscaling:scalable-dimension": "sagemaker:variant:DesiredInstanceCount"
            }
          }
        },
        {
          "Sid": "AsyncEndpointOperations",
          "Effect": "Allow",
          "Action": [
            "cloudwatch:DescribeAlarms",
            "sagemaker:DescribeEndpointConfig"
          ],
          "Resource": "*"
        },
        {
          "Sid": "DescribeScalingOperations",
          "Effect": "Allow",
          "Action": [
            "application-autoscaling:DescribeScalingActivities"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "SageMakerCloudWatchUpdate",
          "Effect": "Allow",
          "Action": [
            "cloudwatch:PutMetricAlarm",
            "cloudwatch:DeleteAlarms"
          ],
          "Resource": [
            "arn:aws:cloudwatch:*:*:alarm:TargetTracking*"
          ],
          "Condition": {
            "StringEquals": {
              "aws:CalledViaLast": "application-autoscaling.amazonaws.com"
            }
          }
        },
        {
          "Sid": "AutoscalingSageMakerEndpointOperation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com"
            }
          }
        },
        {
          "Sid": "AthenaOperation",
          "Action": [
            "athena:ListTableMetadata",
            "athena:ListDataCatalogs",
            "athena:ListDatabases"
          ],
          "Effect": "Allow",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "GlueOperation",
          "Action": [
            "glue:GetDatabases",
            "glue:GetPartitions",
            "glue:GetTables"
          ],
          "Effect": "Allow",
          "Resource": [
            "arn:aws:glue:*:*:table/*",
            "arn:aws:glue:*:*:catalog",
            "arn:aws:glue:*:*:database/*"
          ],
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "QuicksightOperation",
          "Action": [
            "quicksight:ListNamespaces"
          ],
          "Effect": "Allow",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "AllowUseOfKeyInAccount",
          "Effect": "Allow",
          "Action": [
            "kms:DescribeKey"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceTag/Source": "SageMakerCanvas",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "EMRServerlessCreateApplicationOperation",
          "Effect": "Allow",
          "Action": "emr-serverless:CreateApplication",
          "Resource": "arn:aws:emr-serverless:*:*:/*",
          "Condition": {
            "StringEquals": {
              "aws:RequestTag/sagemaker:is-canvas-resource": "True",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "EMRServerlessListApplicationOperation",
          "Effect": "Allow",
          "Action": "emr-serverless:ListApplications",
          "Resource": "arn:aws:emr-serverless:*:*:/*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "EMRServerlessApplicationOperations",
          "Effect": "Allow",
          "Action": [
            "emr-serverless:UpdateApplication",
            "emr-serverless:StopApplication",
            "emr-serverless:GetApplication",
            "emr-serverless:StartApplication"
          ],
          "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "EMRServerlessStartJobRunOperation",
          "Effect": "Allow",
          "Action": "emr-serverless:StartJobRun",
          "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
          "Condition": {
            "StringEquals": {
              "aws:RequestTag/sagemaker:is-canvas-resource": "True",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "EMRServerlessListJobRunOperation",
          "Effect": "Allow",
          "Action": "emr-serverless:ListJobRuns",
          "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "EMRServerlessJobRunOperations",
          "Effect": "Allow",
          "Action": [
            "emr-serverless:GetJobRun",
            "emr-serverless:CancelJobRun"
          ],
          "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "EMRServerlessTagResourceOperation",
          "Effect": "Allow",
          "Action": "emr-serverless:TagResource",
          "Resource": "arn:aws:emr-serverless:*:*:/*",
          "Condition": {
            "StringEquals": {
              "aws:RequestTag/sagemaker:is-canvas-resource": "True",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        },
        {
          "Sid": "IAMPassOperationForEMRServerless",
          "Effect": "Allow",
          "Action": "iam:PassRole",
          "Resource": [
            "arn:aws:iam::*:role/service-role/AmazonSageMakerCanvasEMRSExecutionAccess-*",
            "arn:aws:iam::*:role/AmazonSageMakerCanvasEMRSExecutionAccess-*"
          ],
          "Condition": {
            "StringEquals": {
              "iam:PassedToService": "emr-serverless.amazonaws.com",
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            }
          }
        }
      ]
    },
    "VersionId": "v11",
    "IsDefaultVersion": true,
    "CreateDate": "2024-08-16T04:35:23+00:00"
  }
}

Version History (18 recorded)

Raw history

AmazonSageMakerCanvasFullAccess - Policy Version v11

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

Mar 12, 2026

2e21fb8

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.

Aug 16, 2024

f56aba7

Update detected

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

Jul 10, 2024

ee642bb

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.

Jan 24, 2024

760ee4e

Update detected

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

Jan 24, 2024

ba633a9

Update detected

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

Dec 9, 2023

ed1cada

Update detected

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

Sep 30, 2023

bc50172

Update detected

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

Aug 29, 2023

b6cfdd1

Update detected

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

Aug 29, 2023

d0fd955

Update detected

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

Jul 25, 2023

066cf54

Update detected

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

May 4, 2023

f2594e6

Update detected

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

May 4, 2023

c8da536

Update detected

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

Mar 24, 2023

46b2ef4

Update detected

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

Dec 7, 2022

f274365

Update detected

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

Dec 6, 2022

c607bc3

Update detected

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

Sep 9, 2022

f05219d