AmazonSageMakerCanvasFullAccess
Summary
Provides full access to Amazon SageMaker Canvas resources and operations, plus select access to related services. The Amazon SageMaker AI Developer Guide says it is intended to help customers experiment and get started with all the capabilities of SageMaker Canvas.
Permissions imported from the AWS Managed Policy Reference Guide; other sections reviewed against the listed AWS sources.
Identity
- ARN
arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess- Default version
- v11
- Created
- Last edited
- Services
- application-autoscaling, athena, cloudwatch, ec2, ecr, emr-serverless, forecast, glue, iam, kms, logs, quicksight, rds, redshift, redshift-data, s3, sagemaker, secretsmanager
Control-plane actions (122)
By access level: 18 List, 1 Permissions management, 48 Read, 3 Tagging, 52 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| Application Auto Scaling | 3 of 14 | 1 Read, 2 Write; 3 restricted, 3 conditional | application-autoscaling:DescribeScalingActivities, application-autoscaling:PutScalingPolicy, application-autoscaling:RegisterScalableTarget |
| Athena | 3 of 86 | 2 List, 1 Read; 3 restricted, 3 conditional | athena:ListDataCatalogs, athena:ListDatabases, athena:ListTableMetadata |
| CloudWatch | 3 of 160 | 1 Read, 2 Write; 2 restricted, 2 conditional | cloudwatch:DeleteAlarms, cloudwatch:DescribeAlarms, cloudwatch:PutMetricAlarm |
| EC2 | 6 of 834 | 5 List, 1 Write; 0 restricted, 0 conditional | ec2:CreateVpcEndpoint, ec2:DescribeSecurityGroups, ec2:DescribeSubnets, ec2:DescribeVpcEndpointServices, ec2:DescribeVpcEndpoints, ec2:DescribeVpcs |
| Elastic Container Registry | 3 of 65 | 3 Read; 0 restricted, 0 conditional | ecr:BatchGetImage, ecr:GetAuthorizationToken, ecr:GetDownloadUrlForLayer |
| EMR Serverless | 11 of 25 | 2 List, 2 Read, 1 Tagging, 6 Write; 11 restricted, 11 conditional | emr-serverless:CancelJobRun, emr-serverless:CreateApplication, emr-serverless:GetApplication, emr-serverless:GetJobRun, emr-serverless:ListApplications, emr-serverless:ListJobRuns, emr-serverless:StartApplication, emr-serverless:StartJobRun, emr-serverless:StopApplication, emr-serverless:TagResource, emr-serverless:UpdateApplication |
| Forecast | 26 of 70 | 13 Read, 1 Tagging, 12 Write; 26 restricted, 0 conditional | forecast:CreateAutoPredictor, forecast:CreateDataset, forecast:CreateDatasetGroup, forecast:CreateDatasetImportJob, forecast:CreateExplainability, forecast:CreateExplainabilityExport, forecast:CreateForecast, forecast:CreateForecastEndpoint, forecast:CreateForecastExportJob, forecast:CreatePredictor, forecast:CreatePredictorBacktestExportJob, forecast:DeleteResourceTree and 14 more |
| Glue | 4 of 306 | 4 Read; 4 restricted, 3 conditional | glue:GetDatabases, glue:GetPartitions, glue:GetTables, glue:SearchTables |
| IAM | 3 of 190 | 1 Read, 2 Write; 3 restricted, 2 conditional | iam:CreateServiceLinkedRole, iam:GetRole, iam:PassRole |
| KMS | 1 of 58 | 1 Read; 1 restricted, 1 conditional | kms:DescribeKey |
| CloudWatch Logs | 3 of 133 | 3 Write; 3 restricted, 0 conditional | logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents |
| QuickSight | 1 of 357 | 1 List; 1 restricted, 1 conditional | quicksight:ListNamespaces |
| RDS | 1 of 173 | 1 List; 0 restricted, 0 conditional | rds:DescribeDBInstances |
| Redshift | 1 of 167 | 1 Write; 1 restricted, 0 conditional | redshift:GetClusterCredentials |
| Redshift Data API | 7 of 12 | 1 List, 4 Read, 2 Write; 0 restricted, 0 conditional | redshift-data:CancelStatement, redshift-data:DescribeStatement, redshift-data:DescribeTable, redshift-data:ExecuteStatement, redshift-data:GetStatementResult, redshift-data:ListSchemas, redshift-data:ListTables |
| S3 | 4 of 155 | 1 List, 2 Read, 1 Write; 3 restricted, 0 conditional | s3:CreateBucket, s3:GetBucketCors, s3:GetBucketLocation, s3:ListAllMyBuckets |
| SageMaker | 38 of 441 | 5 List, 13 Read, 1 Tagging, 19 Write; 31 restricted, 0 conditional | sagemaker:AddTags, sagemaker:CreateAutoMLJob, sagemaker:CreateAutoMLJobV2, sagemaker:CreateCompilationJob, sagemaker:CreateEndpoint, sagemaker:CreateEndpointConfig, sagemaker:CreateModel, sagemaker:CreateModelPackage, sagemaker:CreateModelPackageGroup, sagemaker:CreateProcessingJob, sagemaker:CreateTrainingJob, sagemaker:CreateTransformJob and 26 more |
| Secrets Manager | 4 of 27 | 1 Permissions management, 2 Read, 1 Write; 4 restricted, 0 conditional | secretsmanager:CreateSecret, secretsmanager:DescribeSecret, secretsmanager:GetSecretValue, secretsmanager:PutResourcePolicy |
Application Auto Scaling: 3 actions
- application-autoscaling:DescribeScalingActivities (Read)
- application-autoscaling:PutScalingPolicy (Write)
- application-autoscaling:RegisterScalableTarget (Write)
Athena: 3 actions
- athena:ListDataCatalogs (List)
- athena:ListDatabases (List)
- athena:ListTableMetadata (Read)
CloudWatch: 3 actions
- cloudwatch:DeleteAlarms (Write)
- cloudwatch:DescribeAlarms (Read)
- cloudwatch:PutMetricAlarm (Write)
EC2: 6 actions
- ec2:CreateVpcEndpoint (Write)
- ec2:DescribeSecurityGroups (List)
- ec2:DescribeSubnets (List)
- ec2:DescribeVpcEndpointServices (List)
- ec2:DescribeVpcEndpoints (List)
- ec2:DescribeVpcs (List)
Elastic Container Registry: 3 actions
- ecr:BatchGetImage (Read)
- ecr:GetAuthorizationToken (Read)
- ecr:GetDownloadUrlForLayer (Read)
EMR Serverless: 11 actions
- emr-serverless:CancelJobRun (Write)
- emr-serverless:CreateApplication (Write)
- emr-serverless:GetApplication (Read)
- emr-serverless:GetJobRun (Read)
- emr-serverless:ListApplications (List)
- emr-serverless:ListJobRuns (List)
- emr-serverless:StartApplication (Write)
- emr-serverless:StartJobRun (Write)
- emr-serverless:StopApplication (Write)
- emr-serverless:TagResource (Tagging)
- emr-serverless:UpdateApplication (Write)
Forecast: 26 actions
- forecast:CreateAutoPredictor (Write)
- forecast:CreateDataset (Write)
- forecast:CreateDatasetGroup (Write)
- forecast:CreateDatasetImportJob (Write)
- forecast:CreateExplainability (Write)
- forecast:CreateExplainabilityExport (Write)
- forecast:CreateForecast (Write)
- forecast:CreateForecastEndpoint (Write)
- forecast:CreateForecastExportJob (Write)
- forecast:CreatePredictor (Write)
- forecast:CreatePredictorBacktestExportJob (Write)
- forecast:DeleteResourceTree (Write)
- forecast:DescribeAutoPredictor (Read)
- forecast:DescribeDataset (Read)
- forecast:DescribeDatasetImportJob (Read)
- forecast:DescribeExplainability (Read)
- forecast:DescribeExplainabilityExport (Read)
- forecast:DescribeForecast (Read)
- forecast:DescribeForecastEndpoint (Read)
- forecast:DescribeForecastExportJob (Read)
- forecast:DescribePredictor (Read)
- forecast:DescribePredictorBacktestExportJob (Read)
- forecast:GetAccuracyMetrics (Read)
- forecast:GetRecentForecastContext (Read)
- forecast:InvokeForecastEndpoint (Read)
- forecast:TagResource (Tagging)
Glue: 4 actions
- glue:GetDatabases (Read)
- glue:GetPartitions (Read)
- glue:GetTables (Read)
- glue:SearchTables (Read)
IAM: 3 actions
- iam:CreateServiceLinkedRole (Write)
- iam:GetRole (Read)
- iam:PassRole (Write)
KMS: 1 actions
- kms:DescribeKey (Read)
CloudWatch Logs: 3 actions
- logs:CreateLogGroup (Write)
- logs:CreateLogStream (Write)
- logs:PutLogEvents (Write)
QuickSight: 1 actions
- quicksight:ListNamespaces (List)
RDS: 1 actions
- rds:DescribeDBInstances (List)
Redshift: 1 actions
- redshift:GetClusterCredentials (Write)
Redshift Data API: 7 actions
- redshift-data:CancelStatement (Write)
- redshift-data:DescribeStatement (Read)
- redshift-data:DescribeTable (Read)
- redshift-data:ExecuteStatement (Write)
- redshift-data:GetStatementResult (Read)
- redshift-data:ListSchemas (Read)
- redshift-data:ListTables (List)
S3: 4 actions
- s3:CreateBucket (Write)
- s3:GetBucketCORS (Read)
- s3:GetBucketLocation (Read)
- s3:ListAllMyBuckets (List)
SageMaker: 38 actions
- sagemaker:AddTags (Tagging)
- sagemaker:CreateAutoMLJob (Write)
- sagemaker:CreateAutoMLJobV2 (Write)
- sagemaker:CreateCompilationJob (Write)
- sagemaker:CreateEndpoint (Write)
- sagemaker:CreateEndpointConfig (Write)
- sagemaker:CreateModel (Write)
- sagemaker:CreateModelPackage (Write)
- sagemaker:CreateModelPackageGroup (Write)
- sagemaker:CreateProcessingJob (Write)
- sagemaker:CreateTrainingJob (Write)
- sagemaker:CreateTransformJob (Write)
- sagemaker:DeleteApp (Write)
- sagemaker:DeleteEndpoint (Write)
- sagemaker:DeleteEndpointConfig (Write)
- sagemaker:DeleteModel (Write)
- sagemaker:DescribeAutoMLJob (Read)
- sagemaker:DescribeAutoMLJobV2 (Read)
- sagemaker:DescribeCompilationJob (Read)
- sagemaker:DescribeDomain (Read)
- sagemaker:DescribeEndpoint (Read)
- sagemaker:DescribeEndpointConfig (Read)
- sagemaker:DescribeModel (Read)
- sagemaker:DescribeModelPackage (Read)
- sagemaker:DescribeModelPackageGroup (Read)
- sagemaker:DescribeProcessingJob (Read)
- sagemaker:DescribeTrainingJob (Read)
- sagemaker:DescribeTransformJob (Read)
- sagemaker:DescribeUserProfile (Read)
- sagemaker:ListCandidatesForAutoMLJob (List)
- sagemaker:ListEndpoints (List)
- sagemaker:ListModelPackageGroups (List)
- sagemaker:ListModelPackages (List)
- sagemaker:ListTags (List)
- sagemaker:StopAutoMLJob (Write)
- sagemaker:StopTrainingJob (Write)
- sagemaker:StopTransformJob (Write)
- sagemaker:UpdateEndpointWeightsAndCapacities (Write)
Secrets Manager: 4 actions
- secretsmanager:CreateSecret (Write)
- secretsmanager:DescribeSecret (Read)
- secretsmanager:GetSecretValue (Read)
- secretsmanager:PutResourcePolicy (Permissions management)
Data-plane actions (6)
By access level: 1 List, 3 Read, 2 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| S3 | 4 of 25 | 1 List, 1 Read, 2 Write; 3 restricted, 0 conditional | s3:DeleteObject, s3:GetObject, s3:ListBucket, s3:PutObject |
| SageMaker | 2 of 19 | 2 Read; 2 restricted, 0 conditional | sagemaker:InvokeEndpoint, sagemaker:InvokeEndpointAsync |
S3: 4 actions
- s3:DeleteObject (Write)
- s3:GetObject (Read)
- s3:ListBucket (List)
- s3:PutObject (Write)
SageMaker: 2 actions
- sagemaker:InvokeEndpoint (Read)
- sagemaker:InvokeEndpointAsync (Read)
Excluded and conditional actions
No patterns are excluded by NotAction or Deny statements.
Resource scope and attachment
Resource scope across granted actions: mixed.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants 58 write, tagging or permissions-management actions, short of full control of any service.
- Grants data-plane write actions on a data store, but only for scoped resources or under conditions.
- Grants iam:PassRole, but only for scoped roles or under conditions (for example iam:PassedToService).
Guidance
Practical scope
Statements allow sagemaker model package, training, processing, AutoML, hosting and endpoint actions (some on all resources, some on model-package and model-package-group ARNs, and hosting actions on ARNs containing Canvas or canvas), EC2 VPC actions (ec2:CreateVpcEndpoint and describe actions), ECR, CloudWatch Logs, Glue, Athena, Redshift Data API, Secrets Manager (by ARN or by tag), Amazon Forecast, EMR Serverless, QuickSight namespace listing, Application Auto Scaling, and S3 actions. s3:GetObject, s3:PutObject, s3:DeleteObject, s3:CreateBucket, s3:GetBucketCors and s3:GetBucketLocation apply to the patterns arn:aws:s3:::*SageMaker*, arn:aws:s3:::*Sagemaker* and arn:aws:s3:::*sagemaker*. Because * in an IAM resource pattern also matches /, these match any S3 ARN containing the word, so they cover buckets with the word in the name and objects whose key contains it in any bucket (for example arn:aws:s3:::any-bucket/sagemaker/x); for s3:CreateBucket only buckets named that way apply. s3:GetObject is also allowed on jumpstart-cache-prod-* buckets, and s3:ListBucket and s3:ListAllMyBuckets on all resources. iam:PassRole on role/* is allowed only when iam:PassedToService is sagemaker.amazonaws.com, and separately only for forecast.amazonaws.com. iam:PassRole for EMR Serverless is limited to AmazonSageMakerCanvasEMRSExecutionAccess-* roles. kms:DescribeKey requires the resource tag Source=SageMakerCanvas.
Use cases
- Use Amazon SageMaker Canvas capabilities, including building, registering and hosting models, from a SageMaker Domain or user profile.
Best practices
- AWS managed policies don't grant least privilege permissions. The IAM User Guide suggests using IAM Access Analyzer to see which permissions principals actually use, then writing a custom policy or generating one with only the required permissions.
Security considerations
- iam:PassRole is allowed on all roles when the target service is sagemaker.amazonaws.com or forecast.amazonaws.com. The IAM User Guide says a user needs permission to pass a role to an AWS service before the service can be configured with it.
- The AWS guide says the policy is meant for experimenting and getting started. It suggests building scoped down versions for production workloads.
- The policy allows s3:DeleteObject and s3:PutObject on arn:aws:s3:::*SageMaker*, *Sagemaker* and *sagemaker*, which also match objects whose key contains the word in any bucket. It also allows secretsmanager:GetSecretValue on secrets named AmazonSageMaker-* or tagged SageMaker=true.
- You cannot change the permissions in an AWS managed policy. If AWS updates the policy, the update affects every user, group and role it is attached to.
Assignment guidance
You can attach this policy to your users, groups and roles. The reference page also links to guidance on creating a permission set using AWS managed policies in IAM Identity Center. The reference description says this policy should be attached to the Amazon SageMaker Domain/User Profile execution role. For production, the Amazon SageMaker AI Developer Guide suggests scoped down versions you build yourself.
Related policies
Same service
- AmazonAugmentedAIFullAccess
- AmazonAugmentedAIHumanLoopFullAccess
- AmazonAugmentedAIIntegratedAPIAccess
- AmazonBedrockMarketplaceAccess
- AmazonBraketFullAccess
- AmazonDataZoneEnvironmentRolePermissionsBoundary
- AmazonDataZoneProjectRolePermissionsBoundary
- AmazonDataZoneRedshiftManageAccessRolePolicy
Same domain
Frequently asked questions
- When should I attach AmazonSageMakerCanvasFullAccess?
- The reference description says it should be attached to the Amazon SageMaker Domain/User Profile execution role. The Amazon SageMaker AI Developer Guide says it is intended for experimenting and getting started with all SageMaker Canvas capabilities.
- What does AmazonSageMakerCanvasFullAccess grant?
- It allows full SageMaker Canvas operations and select access to related services: SageMaker model and training actions, S3 actions on patterns containing SageMaker, Sagemaker or sagemaker (matching buckets so named and objects with the word in the key), jumpstart-cache-prod-* reads and bucket listing, ECR, CloudWatch Logs, Redshift Data API, Secrets Manager, Forecast, Glue, Athena, EMR Serverless and Application Auto Scaling, with iam:PassRole conditioned to specific services.
- What are the security risks of AmazonSageMakerCanvasFullAccess?
- It can pass roles to SageMaker and Forecast, write and delete any S3 object whose ARN contains SageMaker, Sagemaker or sagemaker, including objects in other buckets with the word in the key, and read secrets named AmazonSageMaker-* or tagged SageMaker=true. The AWS guide suggests scoped down versions for production workloads. AWS managed policies do not grant least privilege permissions, and an AWS update to the policy affects every identity it is attached to.
Policy JSON
{
"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}"
}
}
}
]
}
Version history
Current version v11, edited by AWS on 2024-08-16. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.
Attach snippets
AWS CLI
aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccessCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccessTerraform
resource "aws_iam_role_policy_attachment" "amazonsagemakercanvasfullaccess" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonSageMakerCanvasFullAccess"),
);Sources
- AmazonSageMakerCanvasFullAccess (AWS Managed Policy Reference Guide) (retrieved ; supports summary, practicalScope, useCases, securityConsiderations, assignmentGuidance, faqs)
- AWS managed policies for Amazon SageMaker Canvas (Amazon SageMaker AI Developer Guide) (retrieved ; supports summary, useCases, securityConsiderations, assignmentGuidance, faqs)
- AWS managed policies for job functions (IAM User Guide) (retrieved ; supports bestPractices, faqs)
- Managed policies and inline policies (IAM User Guide) (retrieved ; supports securityConsiderations, faqs)
- Grant a user permissions to pass a role to an AWS service (IAM User Guide) (retrieved ; supports securityConsiderations)