SageMakerStudioUserIAMDefaultExecutionPolicy
Summary
Execution policy for using IAM roles with SageMaker Unified Studio. Allows users to access resources in the local account (excluding access to data resources) for IAM-based usage of SageMaker Unified Studio.
Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.
Identity
- ARN
arn:aws:iam::aws:policy/SageMakerStudioUserIAMDefaultExecutionPolicy- Default version
- v32
- Created
- Last edited
- Services
- airflow, airflow-serverless, application-autoscaling, athena, bedrock, bedrock-agentcore, cloudformation, cloudwatch, codeconnections, codestar-connections, codewhisperer, comprehend, datazone, dynamodb, ec2, ecr, ecr-public, elasticmapreduce, emr-containers, emr-serverless, events, glue, iam, identitystore, kms, lakeformation, logs, q, quicksight, rds, redshift, redshift-data, redshift-serverless, rekognition, resource-groups, s3, sagemaker, sagemaker-data-science-assistant, sagemaker-mlflow, scheduler, secretsmanager, sqlworkbench, ssm, sso, sts, tag, textract, xray
Control-plane actions (2022)
By access level: 600 List, 56 Permissions management, 628 Read, 25 Tagging, 713 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| MWAA | 3 of 12 | 1 List, 1 Read, 1 Write; 0 restricted, 0 conditional | airflow:CreateWebLoginToken, airflow:GetEnvironment, airflow:ListEnvironments |
| MWAA Serverless | 15 of 16 | 4 List, 4 Read, 2 Tagging, 5 Write; 0 restricted, 0 conditional | airflow-serverless:CreateWorkflow, airflow-serverless:DeleteWorkflow, airflow-serverless:Get*, airflow-serverless:List*, airflow-serverless:StartWorkflowRun, airflow-serverless:StopWorkflowRun, airflow-serverless:TagResource, airflow-serverless:UntagResource, airflow-serverless:UpdateWorkflow |
| Application Auto Scaling | 3 of 14 | 1 Read, 2 Write; 0 restricted, 0 conditional | application-autoscaling:DescribeScalingActivities, application-autoscaling:PutScalingPolicy, application-autoscaling:RegisterScalableTarget |
| Athena | 69 of 86 | 13 List, 35 Read, 1 Tagging, 20 Write; 0 restricted, 0 conditional | athena:BatchGet*, athena:CreateNamedQuery, athena:CreateNotebook, athena:CreatePreparedStatement, athena:CreatePresignedNotebookUrl, athena:DeleteNamedQuery, athena:DeleteNotebook, athena:DeletePreparedStatement, athena:ExportNotebook, athena:Get*, athena:ImportNotebook, athena:List* and 11 more |
| Bedrock | All 232 actions (see the Bedrock page) | 45 List, 1 Permissions management, 61 Read, 2 Tagging, 123 Write; 0 restricted, 0 conditional | bedrock:* |
| Bedrock-Agentcore | 62 of 197 | 14 List, 2 Permissions management, 12 Read, 1 Tagging, 33 Write; 2 restricted, 1 conditional | bedrock-agentcore:*AgentRuntime, bedrock-agentcore:*AgentRuntimeEndpoint, bedrock-agentcore:*Dataset*, bedrock-agentcore:*Gateway, bedrock-agentcore:*GatewayTarget, bedrock-agentcore:*GatewayTargets, bedrock-agentcore:*Harness*, bedrock-agentcore:*Memory, bedrock-agentcore:*WorkloadIdentity, bedrock-agentcore:ConnectBrowserAutomationStream, bedrock-agentcore:DeleteWorkloadIdentity, bedrock-agentcore:GetConfigurationBundleVersion and 13 more |
| CloudFormation | All 104 actions (see the CloudFormation page) | 23 List, 1 Permissions management, 34 Read, 2 Tagging, 44 Write; 103 restricted, 0 conditional | cloudformation:*, cloudformation:ValidateTemplate |
| CloudWatch | 3 of 160 | 1 Read, 2 Write; 0 restricted, 0 conditional | cloudwatch:DeleteAlarms, cloudwatch:DescribeAlarms, cloudwatch:PutMetricAlarm |
| CodeConnections | 5 of 38 | 2 List, 3 Read; 2 restricted, 2 conditional | codeconnections:GetConnection, codeconnections:GetHost, codeconnections:ListConnections, codeconnections:ListTagsForResource, codeconnections:UseConnection |
| CodeStar Connections | 5 of 38 | 2 List, 3 Read; 2 restricted, 2 conditional | codestar-connections:GetConnection, codestar-connections:GetHost, codestar-connections:ListConnections, codestar-connections:ListTagsForResource, codestar-connections:UseConnection |
| CodeWhisperer | 1 of 19 | 1 Read; 0 restricted, 0 conditional | codewhisperer:GenerateRecommendations |
| Comprehend | 14 of 85 | 14 Read; 0 restricted, 0 conditional | comprehend:BatchDetect*, comprehend:Detect* |
| DataZone | 188 of 278 | 55 List, 2 Permissions management, 61 Read, 70 Write; 0 restricted, 0 conditional | datazone:*Notebook*, datazone:AcceptPredictions, datazone:AcceptSubscriptionRequest, datazone:BatchGetAttributesMetadata, datazone:BatchGetCell, datazone:BatchGetCellRun, datazone:BatchPutAttributesMetadata, datazone:BatchUpdateNotifications, datazone:CancelMessage, datazone:CancelMetadataGenerationRun, datazone:CancelSubscription, datazone:CreateAsset* and 57 more |
| DynamoDB | 26 of 68 | 7 List, 19 Read; 0 restricted, 0 conditional | dynamodb:Describe*, dynamodb:List* |
| EC2 | 202 of 834 | 195 List, 2 Permissions management, 2 Tagging, 3 Write; 2 restricted, 0 conditional | ec2:CreateNetworkInterface, ec2:CreateNetworkInterfacePermission, ec2:CreateTags, ec2:CreateVpcEndpoint, ec2:DeleteNetworkInterface, ec2:DeleteNetworkInterfacePermission, ec2:DeleteTags, ec2:Describe* |
| Elastic Container Registry | 5 of 65 | 1 List, 4 Read; 0 restricted, 0 conditional | ecr:BatchCheckLayerAvailability, ecr:BatchGetImage, ecr:DescribeImages, ecr:GetAuthorizationToken, ecr:GetDownloadUrlForLayer |
| Elastic Container Registry Public | 1 of 23 | 1 Read; 0 restricted, 0 conditional | ecr-public:GetAuthorizationToken |
| EMR | 43 of 88 | 11 List, 20 Read, 2 Tagging, 10 Write; 0 restricted, 0 conditional | elasticmapreduce:*PersistentAppUI*, elasticmapreduce:*Tag*, elasticmapreduce:Describe*, elasticmapreduce:Get*, elasticmapreduce:List*, elasticmapreduce:Start*, elasticmapreduce:Terminate* |
| EMR Containers | 16 of 25 | 4 List, 3 Read, 2 Tagging, 7 Write; 0 restricted, 0 conditional | emr-containers:*ManagedEndpoint*, emr-containers:*Resource, emr-containers:*SecurityConfiguration*, emr-containers:*VirtualCluster* |
| EMR Serverless | 19 of 25 | 4 List, 7 Read, 2 Tagging, 6 Write; 0 restricted, 0 conditional | emr-serverless:*Resource, emr-serverless:Access*Endpoints, emr-serverless:Get*, emr-serverless:List*, emr-serverless:Start*, emr-serverless:Terminate* |
| EventBridge | 5 of 71 | 1 List, 1 Read, 1 Tagging, 2 Write; 4 restricted, 4 conditional | events:DescribeRule, events:ListTagsForResource, events:PutRule, events:PutTargets, events:TagResource |
| Glue | All 306 actions (see the Glue page) | 27 List, 36 Permissions management, 93 Read, 2 Tagging, 148 Write; 143 restricted, 0 conditional | glue:*, glue:*DataQuality*, glue:*Job*, glue:*Resource, glue:CancelStatement, glue:CreateCatalog, glue:CreateSession, glue:DeleteSession, glue:Describe*, glue:Get*, glue:List*, glue:NotifyEvent and 5 more |
| IAM | 4 of 190 | 1 List, 1 Read, 2 Write; 2 restricted, 1 conditional | iam:CreateServiceLinkedRole, iam:GetRole, iam:ListRoles, iam:PassRole |
| Identity Store | 2 of 29 | 2 Read; 2 restricted, 2 conditional | identitystore:DescribeGroup, identitystore:DescribeUser |
| KMS | 10 of 58 | 2 List, 1 Permissions management, 1 Read, 6 Write; 7 restricted, 7 conditional | kms:CreateGrant, kms:Decrypt, kms:DescribeKey, kms:Encrypt, kms:GenerateDataKey, kms:GenerateDataKeyWithoutPlaintext, kms:ListAliases, kms:ListGrants, kms:ReEncryptFrom, kms:ReEncryptTo |
| Lake Formation | 8 of 68 | 2 List, 4 Permissions management, 1 Read, 1 Write; 0 restricted, 0 conditional | lakeformation:BatchGrantPermissions, lakeformation:BatchRevokePermissions, lakeformation:DescribeResource, lakeformation:GetDataAccess, lakeformation:GrantPermissions, lakeformation:ListPermissions, lakeformation:ListResources, lakeformation:RevokePermissions |
| CloudWatch Logs | 44 of 133 | 19 List, 1 Permissions management, 20 Read, 4 Write; 2 restricted, 2 conditional | logs:CreateLogGroup, logs:CreateLogStream, logs:Describe*, logs:Get*, logs:PutLogEvents, logs:PutResourcePolicy, logs:PutRetentionPolicy, logs:StartQuery, logs:StopQuery |
| Q | 19 of 54 | 8 List, 8 Read, 3 Write; 0 restricted, 0 conditional | q:Get*, q:List*, q:PassRequest, q:SendMessage, q:StartConversation |
| QuickSight | 1 of 357 | 1 List; 0 restricted, 0 conditional | quicksight:ListNamespaces |
| RDS | 1 of 173 | 1 List; 0 restricted, 0 conditional | rds:DescribeDBInstances |
| Redshift | 48 of 167 | 11 List, 35 Read, 2 Write; 1 restricted, 0 conditional | redshift:Describe*, redshift:GetClusterCredentials, redshift:GetClusterCredentialsWithIAM |
| Redshift Data API | All 12 actions (see the Redshift Data API page) | 3 List, 6 Read, 3 Write; 3 restricted, 3 conditional | redshift-data:*, redshift-data:BatchExecuteStatement, redshift-data:Describe*, redshift-data:ExecuteStatement, redshift-data:List* |
| Redshift Serverless | 20 of 69 | 15 List, 4 Read, 1 Write; 0 restricted, 0 conditional | redshift-serverless:GetCredentials, redshift-serverless:GetManagedWorkgroup, redshift-serverless:GetNamespace, redshift-serverless:GetWorkgroup, redshift-serverless:List* |
| Rekognition | 6 of 76 | 6 Read; 0 restricted, 0 conditional | rekognition:Detect* |
| Resource Groups | 2 of 29 | 1 List, 1 Read; 0 restricted, 0 conditional | resource-groups:GetGroupQuery, resource-groups:ListGroupResources |
| S3 | 39 of 155 | 15 List, 5 Permissions management, 13 Read, 1 Tagging, 5 Write; 20 restricted, 20 conditional | s3:CreateAccessGrant, s3:CreateAccessGrantsInstance, s3:CreateAccessGrantsLocation, s3:DeleteAccessGrant, s3:DeleteAccessGrantsLocation, s3:DeleteObject*, s3:GetAccessGrantsInstance, s3:GetAccessGrantsInstanceForPrefix, s3:GetAccessGrantsLocation, s3:GetBucketAcl, s3:GetDataAccess, s3:GetObject* and 4 more |
| SageMaker | 294 of 441 | 96 List, 86 Read, 2 Tagging, 110 Write; 12 restricted, 12 conditional | sagemaker:*Action*, sagemaker:*Artifact*, sagemaker:*Association*, sagemaker:*Context*, sagemaker:*Endpoint*, sagemaker:*Feature*, sagemaker:*InferenceComponent*, sagemaker:*Job*, sagemaker:*MlflowApp*, sagemaker:*Model*, sagemaker:AddTags, sagemaker:Batch* and 18 more |
| SageMakerDataScienceAssistant | All 1 actions (see the SageMakerDataScienceAssistant page) | 1 Write; 0 restricted, 0 conditional | sagemaker-data-science-assistant:* |
| SageMaker MLflow | All 61 actions (see the SageMaker MLflow page) | 3 List, 17 Read, 41 Write; 0 restricted, 0 conditional | sagemaker-mlflow:* |
| EventBridge Scheduler | 9 of 13 | 3 List, 3 Read, 3 Write; 0 restricted, 0 conditional | scheduler:CreateSchedule, scheduler:DeleteSchedule, scheduler:Get*, scheduler:List*, scheduler:UpdateSchedule |
| Secrets Manager | 8 of 27 | 1 List, 1 Permissions management, 2 Read, 4 Write; 7 restricted, 7 conditional | secretsmanager:CreateSecret, secretsmanager:DeleteSecret, secretsmanager:DescribeSecret, secretsmanager:GetSecretValue, secretsmanager:ListSecrets, secretsmanager:PutResourcePolicy, secretsmanager:PutSecretValue, secretsmanager:UpdateSecret |
| SQL Workbench | All 79 actions (see the SQL Workbench page) | 9 List, 23 Read, 2 Tagging, 45 Write; 0 restricted, 0 conditional | sqlworkbench:* |
| Systems Manager | 4 of 164 | 4 Read; 4 restricted, 0 conditional | ssm:GetParameter* |
| IAM Identity Center | 2 of 126 | 2 Read; 2 restricted, 2 conditional | sso:DescribeApplication, sso:DescribeInstance |
| STS | 4 of 16 | 1 Read, 1 Tagging, 2 Write; 2 restricted, 2 conditional | sts:AssumeRole, sts:GetServiceBearerToken, sts:SetSourceIdentity, sts:TagSession |
| Resource Group Tagging | 1 of 9 | 1 Read; 0 restricted, 0 conditional | tag:GetResources |
| Textract | 14 of 25 | 10 Read, 4 Write; 0 restricted, 0 conditional | textract:Analyze*, textract:Get*, textract:Start* |
| X-Ray | 2 of 32 | 2 Read; 0 restricted, 0 conditional | xray:GetSamplingRules, xray:GetTraceSegmentDestination |
The full action list is in actions.json.
Data-plane actions (109)
By access level: 15 List, 2 Permissions management, 44 Read, 4 Tagging, 44 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| MWAA | All 1 actions (see the MWAA page) | 1 Write; 0 restricted, 0 conditional | airflow:InvokeRestApi |
| Bedrock | All 37 actions (see the Bedrock page) | 3 List, 22 Read, 12 Write; 0 restricted, 0 conditional | bedrock:* |
| Bedrock-Agentcore | 31 of 62 | 8 List, 5 Read, 18 Write; 7 restricted, 0 conditional | bedrock-agentcore:*AgentRuntime, bedrock-agentcore:*BatchEvaluation*, bedrock-agentcore:*BrowserSession, bedrock-agentcore:*CodeInterpreterSession, bedrock-agentcore:*Event, bedrock-agentcore:*Harness*, bedrock-agentcore:*MemoryRecord*, bedrock-agentcore:InvokeCodeInterpreter, bedrock-agentcore:ListActors, bedrock-agentcore:ListBatchEvaluations, bedrock-agentcore:ListBrowserSessions, bedrock-agentcore:ListCodeInterpreterSessions and 3 more |
| CloudWatch | 2 of 5 | 1 Read, 1 Write; 0 restricted, 0 conditional | cloudwatch:GetMetricData, cloudwatch:PutMetricData |
| DynamoDB | 3 of 17 | 3 Read; 0 restricted, 0 conditional | dynamodb:PartiQLSelect, dynamodb:Query, dynamodb:Scan |
| S3 | 24 of 25 | 3 List, 2 Permissions management, 8 Read, 4 Tagging, 7 Write; 21 restricted, 21 conditional | s3:AbortMultipartUpload, s3:DeleteObject, s3:DeleteObject*, s3:DeleteObjectVersion, s3:GetObject, s3:GetObject*, s3:GetObjectAcl, s3:GetObjectVersion, s3:GetObjectVersionAcl, s3:List*, s3:ListMultipartUploadParts, s3:PutObject and 4 more |
| SageMaker | 8 of 19 | 1 List, 4 Read, 3 Write; 0 restricted, 0 conditional | sagemaker:*Endpoint*, sagemaker:*Record, sagemaker:Batch*, sagemaker:List* |
| X-Ray | 3 of 12 | 1 Read, 2 Write; 0 restricted, 0 conditional | xray:GetSamplingTargets, xray:PutTelemetryRecords, xray:PutTraceSegments |
The full action list is in actions.json.
Excluded and conditional actions
athena:GetResourceDashboard(deny-conditional, statement 18): 1 matching actionsathena:GetSession(deny-conditional, statement 18): 1 matching actionsathena:GetSessionEndpoint(deny-conditional, statement 18): 1 matching actionsathena:GetSessionStatus(deny-conditional, statement 18): 1 matching actionsathena:StartSession(deny-conditional, statement 18): 1 matching actionsathena:TerminateSession(deny-conditional, statement 18): 1 matching actionselasticmapreduce:*Session*(deny-conditional, statement 18): 11 matching actionsemr-containers:*ManagedEndpoint*(deny-conditional, statement 18): 5 matching actionsemr-serverless:*Dashboard*(deny-conditional, statement 18): 2 matching actionsemr-serverless:*Session*(deny-conditional, statement 18): 5 matching actionsglue:CancelStatement(deny-conditional, statement 18): 1 matching actionsglue:CreateSession(deny-conditional, statement 18): 1 matching actionsglue:DeleteSession(deny-conditional, statement 18): 1 matching actionsglue:GetDashboardUrl(deny-conditional, statement 18): 1 matching actionsglue:GetSession(deny-conditional, statement 18): 1 matching actionsglue:GetSessionEndpoint(deny-conditional, statement 18): 1 matching actionsglue:GetStatement(deny-conditional, statement 18): 1 matching actionsglue:RunStatement(deny-conditional, statement 18): 1 matching actionsglue:StopSession(deny-conditional, statement 18): 1 matching actionsathena:TagResource(deny-conditional, statement 19): 1 matching actionsathena:UntagResource(deny-conditional, statement 19): 1 matching actionselasticmapreduce:AddTags(deny-conditional, statement 19): 1 matching actionselasticmapreduce:RemoveTags(deny-conditional, statement 19): 1 matching actionsemr-containers:*Resource(deny-conditional, statement 19): 3 matching actionsemr-serverless:*Resource(deny-conditional, statement 19): 3 matching actionsglue:TagResource(deny-conditional, statement 19): 1 matching actionsglue:UntagResource(deny-conditional, statement 19): 1 matching actions
Resource scope and attachment
Resource scope across granted actions: mixed.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants at least 80% of the write and permissions-management actions of: airflow-serverless (5 of 5), bedrock (136 of 136), sagemaker-mlflow (41 of 41), sqlworkbench (45 of 45).
- 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
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Related policies
Same service
- AmazonAthenaFullAccess
- AmazonAugmentedAIFullAccess
- AmazonAugmentedAIHumanLoopFullAccess
- AmazonAugmentedAIIntegratedAPIAccess
- AmazonBedrockAgentCoreMemoryBedrockModelInferenceExecutionRolePolicy
- AmazonBedrockFullAccess
- AmazonBedrockLimitedAccess
- AmazonBedrockMarketplaceAccess
Same domain
Frequently asked questions
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Policy JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DataZone",
"Effect": "Allow",
"Action": [
"datazone:AcceptPredictions",
"datazone:AcceptSubscriptionRequest",
"datazone:BatchGetAttributesMetadata",
"datazone:BatchPutAttributesMetadata",
"datazone:BatchUpdateNotifications",
"datazone:CancelMetadataGenerationRun",
"datazone:CancelSubscription",
"datazone:CreateAsset*",
"datazone:CreateConnection",
"datazone:CreateEnvironment",
"datazone:CreateListingChangeSet",
"datazone:CreateProject",
"datazone:CreateProjectMembership",
"datazone:CreateSubscriptionGrant",
"datazone:CreateSubscriptionRequest",
"datazone:DeleteAsset*",
"datazone:DeleteConnection",
"datazone:DeleteEnvironment",
"datazone:DeleteListing",
"datazone:DeleteProject",
"datazone:DeleteProjectMembership",
"datazone:DeleteSubscriptionGrant",
"datazone:DeleteSubscriptionRequest",
"datazone:Get*",
"datazone:List*",
"datazone:PostLineageEvent",
"datazone:RejectPredictions",
"datazone:RejectSubscriptionRequest",
"datazone:RevokeSubscription",
"datazone:Search",
"datazone:SearchListings",
"datazone:SearchRules",
"datazone:SearchTypes",
"datazone:SearchUserProfiles",
"datazone:SearchGroupProfiles",
"datazone:StartMetadataGenerationRun",
"datazone:UpdateAssetFilter",
"datazone:UpdateConnection",
"datazone:UpdateEnvironment",
"datazone:UpdateProject",
"datazone:UpdateSubscriptionRequest",
"datazone:*Notebook*",
"datazone:CreateCell",
"datazone:UpdateCell",
"datazone:DeleteCell",
"datazone:BatchGetCell",
"datazone:CreateCellRun",
"datazone:UpdateCellRun",
"datazone:DeleteCellRun",
"datazone:BatchGetCellRun",
"datazone:PutCellRunResult",
"datazone:StartConversation",
"datazone:GenerateCode",
"datazone:SendMessage",
"datazone:CancelMessage",
"datazone:QueryGraph",
"datazone:StartCompute",
"datazone:StopCompute",
"datazone:InvokeAgent",
"datazone:StopAgent",
"datazone:RegisterAgentArtifact",
"datazone:DeregisterAgentArtifact",
"datazone:DeleteConversation",
"datazone:UpdateConversation",
"datazone:CreateDataApp",
"datazone:UpdateDataApp",
"datazone:DeleteDataApp",
"datazone:PutAgentApprovalPolicy",
"datazone:DeleteAgentApprovalPolicy"
],
"Resource": "*"
},
{
"Sid": "CfnManage",
"Effect": "Allow",
"Action": [
"cloudformation:*"
],
"Resource": [
"arn:aws:cloudformation:*:*:stack/DataZone*"
]
},
{
"Sid": "ValidateCfn",
"Effect": "Allow",
"Action": "cloudformation:ValidateTemplate",
"Resource": "*"
},
{
"Sid": "IamSts",
"Effect": "Allow",
"Action": [
"iam:GetRole",
"iam:ListRoles",
"sts:AssumeRole",
"ecr-public:GetAuthorizationToken",
"sts:GetServiceBearerToken"
],
"Resource": "*"
},
{
"Sid": "CreateSLR",
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": [
"arn:aws:iam::*:role/aws-service-role/neptune-graph.amazonaws.com/AWSServiceRoleForNeptuneGraph",
"arn:aws:iam::*:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift",
"arn:aws:iam::*:role/aws-service-role/sagemaker.amazonaws.com/AWSServiceRoleForAmazonSageMakerNotebooks",
"arn:aws:iam::*:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless",
"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA",
"arn:aws:iam::*:role/aws-service-role/airflow-serverless.amazonaws.com/AWSServiceRoleForAmazonMWAAServerless",
"arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com/AWSServiceRoleForEMRCleanup",
"arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint",
"arn:aws:iam::*:role/aws-service-role/observability.aoss.amazonaws.com/AWSServiceRoleForAmazonOpenSearchServerless",
"arn:aws:iam::*:role/aws-service-role/runtime-identity.bedrock-agentcore.amazonaws.com/AWSServiceRoleForBedrockAgentCoreRuntimeIdentity",
"arn:aws:iam::*:role/aws-service-role/network.bedrock-agentcore.amazonaws.com/AWSServiceRoleForBedrockAgentCoreNetwork",
"arn:aws:iam::*:role/aws-service-role/bedrock-agentcore.amazonaws.com/AWSServiceRoleForBedrockAgentCoreGatewayNetwork",
"arn:aws:iam::*:role/aws-service-role/identity-network.bedrock-agentcore.amazonaws.com/AWSServiceRoleForBedrockAgentCoreIdentity"
]
},
{
"Sid": "TagSession",
"Effect": "Allow",
"Action": "sts:TagSession",
"Resource": "*",
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"AmazonDataZone*"
]
}
}
},
{
"Sid": "SourceIdentity",
"Effect": "Allow",
"Action": "sts:SetSourceIdentity",
"Resource": "*",
"Condition": {
"StringLike": {
"sts:SourceIdentity": "${aws:PrincipalTag/datazone:userId}"
}
}
},
{
"Sid": "Q",
"Effect": "Allow",
"Action": [
"glue:StartCompletion",
"q:Get*",
"q:List*",
"q:PassRequest",
"q:SendMessage",
"q:StartConversation"
],
"Resource": "*"
},
{
"Sid": "SSM",
"Effect": "Allow",
"Action": [
"ssm:GetParameter*"
],
"Resource": [
"arn:aws:ssm:*:*:parameter/amazon/datazone/q*",
"arn:aws:ssm:*:*:parameter/amazon/datazone/genAI/*",
"arn:aws:ssm:*::parameter/aws/service/sagemaker-distribution/*"
]
},
{
"Sid": "SageMakerUserTagPermissions",
"Effect": "Allow",
"Action": [
"sagemaker:CreatePresignedDomainUrl",
"sagemaker:CreateUserProfile",
"sagemaker:DeleteUserProfile",
"sagemaker:UpdateUserProfile"
],
"Resource": "arn:aws:sagemaker:*:*:user-profile/*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneUser": "${aws:PrincipalTag/datazone:userId}"
}
}
},
{
"Sid": "SageMakerPrivateSpace",
"Effect": "Allow",
"Action": [
"sagemaker:CreateApp",
"sagemaker:CreateSpace",
"sagemaker:DeleteApp",
"sagemaker:DeleteSpace",
"sagemaker:UpdateSpace"
],
"Resource": [
"arn:aws:sagemaker:*:*:space/*",
"arn:aws:sagemaker:*:*:app/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneUser": "${aws:PrincipalTag/datazone:userId}",
"sagemaker:SpaceSharingType": [
"Private"
]
}
}
},
{
"Sid": "CanvasUserProfileApp",
"Effect": "Allow",
"Action": [
"sagemaker:CreateApp",
"sagemaker:DeleteApp",
"sagemaker:CreateSpace",
"sagemaker:DeleteSpace"
],
"Resource": [
"arn:aws:sagemaker:*:*:app/*/Canvas/*",
"arn:aws:sagemaker:*:*:space/*/CanvasManagedSpace*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneUser": "${aws:PrincipalTag/datazone:userId}"
}
}
},
{
"Sid": "AllowStartSessionForSpaceRemoteConnection",
"Effect": "Allow",
"Action": [
"sagemaker:StartSession"
],
"Resource": "arn:aws:sagemaker:*:*:space/*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneUser": "${aws:PrincipalTag/datazone:userId}"
}
}
},
{
"Sid": "ResourceGroupsPermissions",
"Effect": "Allow",
"Action": [
"resource-groups:GetGroupQuery",
"resource-groups:ListGroupResources"
],
"Resource": "*"
},
{
"Sid": "SageMakerPermissions",
"Effect": "Allow",
"Action": [
"sagemaker:Batch*",
"sagemaker:Describe*",
"sagemaker:List*",
"sagemaker:Search",
"sagemaker:*Endpoint*",
"sagemaker:*Model*",
"sagemaker:*Context*",
"sagemaker:*Artifact*",
"sagemaker:*Action*",
"sagemaker:*Association*",
"sagemaker:QueryLineage",
"sagemaker:*InferenceComponent*",
"sagemaker:*Job*",
"sagemaker:*MlflowApp*",
"sagemaker:StartMlflowTrackingServer",
"sagemaker:StopMlflowTrackingServer",
"sagemaker:CreatePresignedMlflowTrackingServerUrl",
"sagemaker-mlflow:*",
"sagemaker:*Feature*",
"sagemaker:*Record"
],
"Resource": "*"
},
{
"Sid": "SageMakerTagPermissions",
"Effect": "Allow",
"Action": [
"sagemaker:AddTags",
"sagemaker:DeleteTags"
],
"Resource": "*",
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"ProjectUserTag*",
"sagemaker*",
"sm-jumpstart*",
"endpoint-has-jumpstart-model",
"aws-jumpstart*",
"Source",
"CanvasModelName",
"Canvas",
"SageMaker",
"ProjectS3Path",
"Owner"
]
},
"ForAllValues:StringNotLike": {
"aws:TagKeys": [
"AmazonDataZone*",
"sagemaker:shared-with:*"
]
}
}
},
{
"Sid": "LogsAndMetrics",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"cloudwatch:GetMetricData",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DeleteAlarms",
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:Describe*",
"logs:Get*",
"logs:PutLogEvents",
"logs:StopQuery",
"logs:StartQuery"
],
"Resource": "*"
},
{
"Sid": "Glue",
"Effect": "Allow",
"Action": [
"glue:CancelStatement",
"glue:CreateSession",
"glue:DeleteSession",
"glue:CreateCatalog",
"glue:Describe*",
"glue:Get*",
"glue:List*",
"glue:NotifyEvent",
"glue:RunStatement",
"glue:StartCompletion",
"glue:StopSession",
"glue:UseGlueStudio",
"glue:*Resource",
"glue:*Job*",
"glue:TestConnection",
"glue:*DataQuality*"
],
"Resource": "*"
},
{
"Sid": "DenyForeignSessionAccess",
"Effect": "Deny",
"Action": [
"athena:GetResourceDashboard",
"athena:GetSession",
"athena:GetSessionEndpoint",
"athena:GetSessionStatus",
"athena:StartSession",
"athena:TerminateSession",
"emr-serverless:*Session*",
"emr-serverless:*Dashboard*",
"emr-containers:*ManagedEndpoint*",
"elasticmapreduce:*Session*",
"glue:CancelStatement",
"glue:CreateSession",
"glue:DeleteSession",
"glue:GetDashboardUrl",
"glue:GetSession",
"glue:GetSessionEndpoint",
"glue:GetStatement",
"glue:RunStatement",
"glue:StopSession"
],
"Resource": [
"arn:aws:athena:*:*:workgroup/*/session/*",
"arn:aws:emr-serverless:*:*:/applications/*/sessions/*",
"arn:aws:emr-containers:*:*:/virtualclusters/*/endpoints/*",
"arn:aws:elasticmapreduce:*:*:cluster/*/session/*",
"arn:aws:glue:*:*:session/*"
],
"Condition": {
"StringNotEquals": {
"aws:RequestTag/AmazonDataZoneSessionOwner": "${aws:SourceIdentity}",
"aws:ResourceTag/AmazonDataZoneSessionOwner": "${aws:SourceIdentity}"
}
}
},
{
"Sid": "DenyTaggingUntaggingForeignSessions",
"Effect": "Deny",
"Action": [
"athena:TagResource",
"athena:UntagResource",
"emr-serverless:*Resource",
"emr-containers:*Resource",
"elasticmapreduce:AddTags",
"elasticmapreduce:RemoveTags",
"glue:TagResource",
"glue:UntagResource"
],
"Resource": [
"arn:aws:athena:*:*:workgroup/*/session/*",
"arn:aws:emr-serverless:*:*:/applications/*/sessions/*",
"arn:aws:emr-containers:*:*:/virtualclusters/*/endpoints/*",
"arn:aws:elasticmapreduce:*:*:cluster/*/session/*",
"arn:aws:glue:*:*:session/*"
],
"Condition": {
"StringNotEquals": {
"aws:ResourceTag/AmazonDataZoneSessionOwner": "${aws:SourceIdentity}"
}
}
},
{
"Sid": "GlueDatabase",
"Effect": "Allow",
"Action": [
"glue:*"
],
"Resource": [
"arn:aws:glue:*:*:database/*",
"arn:aws:glue:*:*:table/*",
"arn:aws:glue:*:*:catalog",
"arn:aws:glue:*:*:catalog/*"
]
},
{
"Sid": "GlueLakeFormation",
"Effect": "Allow",
"Action": [
"glue:*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"glue:LakeFormationPermissions": "Enabled"
}
}
},
{
"Sid": "LFAccess",
"Effect": "Allow",
"Action": [
"lakeformation:BatchGrantPermissions",
"lakeformation:BatchRevokePermissions",
"lakeformation:DescribeResource",
"lakeformation:GetDataAccess",
"lakeformation:GrantPermissions",
"lakeformation:ListResources",
"lakeformation:ListPermissions",
"lakeformation:RevokePermissions"
],
"Resource": "*"
},
{
"Sid": "SQLWorkBench",
"Effect": "Allow",
"Action": [
"sqlworkbench:*"
],
"Resource": "*"
},
{
"Sid": "RedshiftData",
"Effect": "Allow",
"Action": "redshift-data:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"redshift-data:statement-owner-iam-userid": "${aws:userid}"
}
}
},
{
"Sid": "RedShiftActions",
"Effect": "Allow",
"Action": [
"redshift-data:BatchExecuteStatement",
"redshift-data:Describe*",
"redshift-data:ExecuteStatement",
"redshift-data:List*",
"redshift-serverless:GetManagedWorkgroup",
"redshift-serverless:GetNamespace",
"redshift-serverless:GetWorkgroup",
"redshift-serverless:List*",
"redshift:Describe*",
"redshift:GetClusterCredentialsWithIAM",
"redshift-serverless:GetCredentials"
],
"Resource": "*"
},
{
"Sid": "Bedrock",
"Effect": "Allow",
"Action": "bedrock:*",
"Resource": "*"
},
{
"Sid": "PassRole",
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": "arn:aws:iam::*:role/${aws:PrincipalTag/AmazonDataZonePassedRolePath}",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"iam:PassedToService": [
"bedrock-agentcore.amazonaws.com",
"agent-registry.amazonaws.com",
"bedrock.amazonaws.com",
"glue.amazonaws.com",
"lakeformation.amazonaws.com",
"sagemaker.amazonaws.com",
"scheduler.amazonaws.com",
"emr-serverless.amazonaws.com",
"elasticmapreduce.amazonaws.com",
"redshift.amazonaws.com",
"airflow-serverless.amazonaws.com",
"events.amazonaws.com",
"pods.eks.amazonaws.com",
"access-grants.s3.amazonaws.com"
]
}
}
},
{
"Sid": "AirflowServerless",
"Effect": "Allow",
"Action": [
"airflow-serverless:List*",
"airflow-serverless:Get*",
"airflow-serverless:CreateWorkflow",
"airflow-serverless:UpdateWorkflow",
"airflow-serverless:DeleteWorkflow",
"airflow-serverless:StartWorkflowRun",
"airflow-serverless:StopWorkflowRun",
"airflow-serverless:TagResource",
"airflow-serverless:UntagResource"
],
"Resource": "*"
},
{
"Sid": "AirflowMWAA",
"Effect": "Allow",
"Action": [
"airflow:GetEnvironment",
"airflow:ListEnvironments",
"airflow:CreateWebLoginToken",
"airflow:InvokeRestApi"
],
"Resource": "*"
},
{
"Sid": "S3List",
"Effect": "Allow",
"Action": [
"s3:GetBucketAcl",
"s3:GetAccessGrantsInstance",
"s3:GetAccessGrantsInstanceForPrefix",
"s3:GetDataAccess",
"s3:List*"
],
"Resource": "*"
},
{
"Sid": "CrossAccount",
"Effect": "Allow",
"Action": [
"s3:GetObject*"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "Scheduler",
"Effect": "Allow",
"Action": [
"scheduler:CreateSchedule",
"scheduler:DeleteSchedule",
"scheduler:Get*",
"scheduler:List*",
"scheduler:UpdateSchedule"
],
"Resource": "*"
},
{
"Sid": "FederatedConn",
"Effect": "Allow",
"Action": [
"dynamodb:List*",
"dynamodb:Describe*",
"dynamodb:Scan",
"dynamodb:PartiQLSelect",
"dynamodb:Query",
"secretsmanager:ListSecrets"
],
"Resource": "*"
},
{
"Sid": "Athena",
"Effect": "Allow",
"Action": [
"athena:BatchGet*",
"athena:CreateNamedQuery",
"athena:CreateNotebook",
"athena:CreatePreparedStatement",
"athena:CreatePresignedNotebookUrl",
"athena:DeleteNamedQuery",
"athena:DeleteNotebook",
"athena:DeletePreparedStatement",
"athena:ExportNotebook",
"athena:Get*",
"athena:ImportNotebook",
"athena:List*",
"athena:StartCalculationExecution",
"athena:StartQueryExecution",
"athena:StartSession",
"athena:StopCalculationExecution",
"athena:StopQueryExecution",
"athena:TagResource",
"athena:TerminateSession",
"athena:UpdateNamedQuery",
"athena:UpdateNotebook",
"athena:UpdateNotebookMetadata",
"athena:UpdatePreparedStatement"
],
"Resource": "*"
},
{
"Sid": "PrivateSecret",
"Effect": "Allow",
"Action": [
"secretsmanager:CreateSecret",
"secretsmanager:DeleteSecret",
"secretsmanager:DescribeSecret",
"secretsmanager:GetSecretValue",
"secretsmanager:UpdateSecret",
"secretsmanager:PutResourcePolicy",
"secretsmanager:PutSecretValue"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${datazone:projectId}"
}
}
},
{
"Sid": "SharedSecret",
"Effect": "Allow",
"Action": [
"secretsmanager:CreateSecret",
"secretsmanager:DescribeSecret",
"secretsmanager:GetSecretValue",
"secretsmanager:UpdateSecret",
"secretsmanager:PutSecretValue"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/for-use-with-all-datazone-projects": "true"
}
}
},
{
"Sid": "GenerateRecommendations",
"Effect": "Allow",
"Action": [
"codewhisperer:GenerateRecommendations"
],
"Resource": "*"
},
{
"Sid": "Ecr",
"Effect": "Allow",
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:DescribeImages",
"ecr:GetAuthorizationToken",
"ecr:GetDownloadUrlForLayer"
],
"Resource": "*"
},
{
"Sid": "CodeConnectionsUser",
"Effect": "Allow",
"Action": [
"codeconnections:GetConnection",
"codeconnections:UseConnection",
"codestar-connections:GetConnection",
"codestar-connections:UseConnection"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/for-use-with-all-datazone-projects": "true"
}
}
},
{
"Sid": "CodeConnectionsUserList",
"Effect": "Allow",
"Action": [
"codeconnections:GetHost",
"codeconnections:ListConnections",
"codeconnections:ListTagsForResource",
"codestar-connections:GetHost",
"codestar-connections:ListConnections",
"codestar-connections:ListTagsForResource"
],
"Resource": "*"
},
{
"Sid": "KmsListAndDescribe",
"Effect": "Allow",
"Action": [
"kms:DescribeKey",
"kms:ListAliases",
"kms:ListGrants"
],
"Resource": "*"
},
{
"Sid": "DataZoneKms",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:Encrypt",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:ReEncryptTo",
"kms:ReEncryptFrom"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"kms:EncryptionContextKeys": "aws:datazone:domainId"
},
"StringLike": {
"kms:ViaService": "datazone.*.amazonaws.com"
}
}
},
{
"Sid": "S3Kms",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"Null": {
"kms:EncryptionContext:aws:s3:arn": "false"
},
"StringLike": {
"kms:ViaService": "s3.*.amazonaws.com"
}
}
},
{
"Sid": "SchedulerKms",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"Null": {
"kms:EncryptionContext:aws:scheduler:schedule:arn": "false"
}
}
},
{
"Sid": "SecretsKms",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"Null": {
"kms:EncryptionContext:SecretARN": "false"
},
"StringLike": {
"kms:ViaService": "secretsmanager.*.amazonaws.com"
}
}
},
{
"Sid": "SageMakerKms",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:ReEncryptTo",
"kms:ReEncryptFrom"
],
"Resource": "*",
"Condition": {
"Null": {
"kms:EncryptionContextKeys": "false"
},
"StringLike": {
"kms:ViaService": "sagemaker.*.amazonaws.com"
}
}
},
{
"Sid": "SageMakerCreateGrant",
"Effect": "Allow",
"Action": [
"kms:CreateGrant"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:ViaService": "sagemaker.*.amazonaws.com"
}
}
},
{
"Sid": "DataZoneCreateGrant",
"Effect": "Allow",
"Action": [
"kms:CreateGrant"
],
"Resource": "*",
"Condition": {
"ForAllValues:StringEquals": {
"kms:GrantOperations": [
"Encrypt",
"Decrypt",
"ReEncryptFrom",
"ReEncryptTo",
"GenerateDataKeyWithoutPlaintext",
"GenerateDataKey",
"DescribeKey",
"RetireGrant",
"CreateGrant"
]
},
"StringLike": {
"kms:ViaService": "datazone.*.amazonaws.com"
}
}
},
{
"Sid": "GlueKms",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext"
],
"Resource": "*",
"Condition": {
"Null": {
"kms:EncryptionContextKeys": "false"
},
"StringLike": {
"kms:ViaService": "glue.*.amazonaws.com"
}
}
},
{
"Sid": "BedrockKms",
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"Null": {
"kms:EncryptionContextKeys": "false"
},
"StringLike": {
"kms:ViaService": "bedrock.*.amazonaws.com"
}
}
},
{
"Sid": "WorkflowsCreateGrant",
"Effect": "Allow",
"Action": [
"kms:CreateGrant"
],
"Resource": "arn:*:kms:*:*:key/*",
"Condition": {
"ForAllValues:StringEquals": {
"kms:GrantOperations": [
"Decrypt",
"Encrypt",
"GenerateDataKey",
"GenerateDataKeyWithoutPlaintext",
"RetireGrant"
]
},
"ForAnyValue:StringEquals": {
"kms:EncryptionContextKeys": "aws:airflow-serverless:workflow-arn"
},
"StringLike": {
"kms:ViaService": "airflow-serverless.*.amazonaws.com"
}
}
},
{
"Sid": "WorkflowsKms",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext"
],
"Resource": "arn:*:kms:*:*:key/*",
"Condition": {
"ForAnyValue:StringEquals": {
"kms:EncryptionContextKeys": "aws:airflow-serverless:workflow-arn"
}
}
},
{
"Sid": "Ec2DescribeOnly",
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Sid": "VpcAccess",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface",
"ec2:DeleteNetworkInterface",
"ec2:CreateNetworkInterfacePermission",
"ec2:DeleteNetworkInterfacePermission",
"ec2:CreateVpcEndpoint"
],
"Resource": "*"
},
{
"Sid": "EC2TagAccessForVpc",
"Effect": "Allow",
"Action": [
"ec2:CreateTags",
"ec2:DeleteTags"
],
"Resource": [
"arn:aws:ec2:*:*:network-interface/*"
]
},
{
"Sid": "AccessProjectS3BucketPermissions",
"Effect": "Allow",
"Action": [
"s3:GetObject*",
"s3:PutObject*",
"s3:RestoreObject",
"s3:ReplicateObject",
"s3:DeleteObject*",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": [
"arn:aws:s3:::${aws:PrincipalTag/AmazonDataZoneProjectBucket}/*"
],
"Condition": {
"StringNotEquals": {
"aws:PrincipalTag/AmazonDataZoneProjectBucket": ""
}
}
},
{
"Sid": "EMR",
"Effect": "Allow",
"Action": [
"emr-serverless:Get*",
"emr-serverless:List*",
"emr-serverless:Start*",
"emr-serverless:Access*Endpoints",
"emr-serverless:Terminate*",
"emr-serverless:*Resource",
"emr-containers:*ManagedEndpoint*",
"emr-containers:*SecurityConfiguration*",
"emr-containers:*VirtualCluster*",
"emr-containers:*Resource",
"elasticmapreduce:*PersistentAppUI*",
"elasticmapreduce:Start*",
"elasticmapreduce:Get*",
"elasticmapreduce:Describe*",
"elasticmapreduce:List*",
"elasticmapreduce:Terminate*",
"elasticmapreduce:*Tag*"
],
"Resource": "*"
},
{
"Sid": "CanvasGeneralPermissions",
"Effect": "Allow",
"Action": [
"comprehend:BatchDetect*",
"comprehend:Detect*",
"textract:Analyze*",
"textract:Start*",
"textract:Get*",
"rekognition:Detect*",
"sagemaker-data-science-assistant:*",
"rds:DescribeDBInstances",
"application-autoscaling:PutScalingPolicy",
"application-autoscaling:RegisterScalableTarget",
"application-autoscaling:DescribeScalingActivities",
"quicksight:ListNamespaces",
"events:ListTagsForResource"
],
"Resource": "*"
},
{
"Sid": "CanvasRedshiftAccess",
"Effect": "Allow",
"Action": [
"redshift:GetClusterCredentials"
],
"Resource": [
"arn:aws:redshift:*:*:dbuser:*/sagemaker_access*",
"arn:aws:redshift:*:*:dbname:*"
]
},
{
"Sid": "CanvasEventBridgePutOperation",
"Effect": "Allow",
"Action": [
"events:PutRule"
],
"Resource": "arn:aws:events:*:*:rule/*",
"Condition": {
"StringEquals": {
"aws:RequestTag/sagemaker:is-canvas-data-prep-job": "true"
}
}
},
{
"Sid": "CanvasEventBridgeOperations",
"Effect": "Allow",
"Action": [
"events:DescribeRule",
"events:PutTargets"
],
"Resource": "arn:aws:events:*:*:rule/*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/sagemaker:is-canvas-data-prep-job": "true"
}
}
},
{
"Sid": "CanvasEventBridgeTagBasedOperations",
"Effect": "Allow",
"Action": [
"events:TagResource"
],
"Resource": "arn:aws:events:*:*:rule/*",
"Condition": {
"StringEquals": {
"aws:RequestTag/sagemaker:is-canvas-data-prep-job": "true",
"aws:ResourceTag/sagemaker:is-canvas-data-prep-job": "true"
}
}
},
{
"Sid": "ACActions",
"Effect": "Allow",
"Action": [
"bedrock-agentcore:*Harness*",
"bedrock-agentcore:*AgentRuntime",
"bedrock-agentcore:*AgentRuntimeEndpoint",
"bedrock-agentcore:StopRuntimeSession",
"bedrock-agentcore:*Memory",
"bedrock-agentcore:*MemoryRecord*",
"bedrock-agentcore:*Event",
"bedrock-agentcore:ListEvents",
"bedrock-agentcore:*Gateway",
"bedrock-agentcore:*GatewayTarget",
"bedrock-agentcore:*GatewayTargets",
"bedrock-agentcore:*Dataset*",
"bedrock-agentcore:*BatchEvaluation*",
"bedrock-agentcore:*WorkloadIdentity",
"bedrock-agentcore:GetWorkloadAccessToken",
"bedrock-agentcore:GetWorkloadAccessTokenForJWT",
"bedrock-agentcore:ListHarnesses",
"bedrock-agentcore:ListAgentRuntimes",
"bedrock-agentcore:ListAgentRuntimeEndpoints",
"bedrock-agentcore:ListGateways",
"bedrock-agentcore:ListDatasets",
"bedrock-agentcore:ListBatchEvaluations",
"bedrock-agentcore:ListEvaluators",
"bedrock-agentcore:ListMemories",
"bedrock-agentcore:ListAgentRuntimeVersions",
"bedrock-agentcore:ListActors",
"bedrock-agentcore:ListSessions",
"bedrock-agentcore:ListTagsForResource",
"bedrock-agentcore:GetEvaluator",
"bedrock-agentcore:GetConfigurationBundleVersion",
"bedrock-agentcore:ListCodeInterpreterSessions",
"bedrock-agentcore:ListBrowserSessions"
],
"Resource": "*"
},
{
"Sid": "ACManagedBuiltInTools",
"Effect": "Allow",
"Action": [
"bedrock-agentcore:*CodeInterpreterSession",
"bedrock-agentcore:InvokeCodeInterpreter",
"bedrock-agentcore:*BrowserSession",
"bedrock-agentcore:ConnectBrowserAutomationStream"
],
"Resource": [
"arn:*:bedrock-agentcore:*:aws:code-interpreter/*",
"arn:*:bedrock-agentcore:*:aws:browser/*"
]
},
{
"Sid": "ACTagOwnProject",
"Effect": "Allow",
"Action": "bedrock-agentcore:TagResource",
"Resource": "*",
"Condition": {
"StringEqualsIfExists": {
"aws:RequestTag/AmazonDataZoneProject": "${datazone:projectId}",
"aws:ResourceTag/AmazonDataZoneProject": "${datazone:projectId}"
}
}
},
{
"Sid": "ACXRay",
"Effect": "Allow",
"Action": [
"xray:GetTraceSegmentDestination",
"xray:GetSamplingRules",
"xray:GetSamplingTargets",
"xray:PutTraceSegments",
"xray:PutTelemetryRecords"
],
"Resource": "*"
},
{
"Sid": "ACLogRetention",
"Effect": "Allow",
"Action": "logs:PutRetentionPolicy",
"Resource": "arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": "bedrock-agentcore.amazonaws.com"
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "ACResourcePolicy",
"Effect": "Allow",
"Action": [
"logs:PutResourcePolicy"
],
"Resource": "arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/runtimes/*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "TagLookup",
"Effect": "Allow",
"Action": [
"tag:GetResources"
],
"Resource": "*"
},
{
"Sid": "ACIdentityDirectory",
"Effect": "Allow",
"Action": "bedrock-agentcore:DeleteWorkloadIdentity",
"Resource": "arn:*:bedrock-agentcore:*:*:workload-identity-directory/default",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "S3AGObjectPermissions",
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectAcl",
"s3:GetObjectVersionAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"s3:AccessGrantsInstanceArn": [
"arn:aws:s3:*:*:access-grants/default"
]
}
}
},
{
"Sid": "S3AGInstancePermissions",
"Effect": "Allow",
"Action": [
"s3:GetAccessGrantsInstance",
"s3:CreateAccessGrantsInstance"
],
"Resource": [
"arn:aws:s3:*:*:access-grants/default"
],
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "S3AGLocationPermissions",
"Effect": "Allow",
"Action": [
"s3:CreateAccessGrantsLocation",
"s3:DeleteAccessGrantsLocation",
"s3:GetAccessGrantsLocation"
],
"Resource": "arn:aws:s3:*:*:access-grants/default/location/*",
"Condition": {
"Null": {
"aws:PrincipalTag/AmazonDataZoneProjectBucket": "false"
},
"StringEquals": {
"s3:accessGrantsLocationScope": "s3://${aws:PrincipalTag/AmazonDataZoneProjectBucket}"
}
}
},
{
"Sid": "S3AGPermissions",
"Effect": "Allow",
"Action": [
"s3:CreateAccessGrant",
"s3:DeleteAccessGrant"
],
"Resource": "arn:aws:s3:*:*:access-grants/default/grant/*",
"Condition": {
"Null": {
"aws:PrincipalTag/AmazonDataZoneProjectBucket": "false"
},
"StringLike": {
"s3:accessGrantScope": "s3://${aws:PrincipalTag/AmazonDataZoneProjectBucket}/*"
}
}
},
{
"Sid": "S3AGTaggingPermission",
"Effect": "Allow",
"Action": [
"s3:TagResource"
],
"Resource": [
"arn:aws:s3:*:*:access-grants/default/location/*",
"arn:aws:s3:*:*:access-grants/default/grant/*"
],
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"AWSDataZone*",
"AmazonDataZone*"
]
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "SSOInstanceReadOnlyPermissions",
"Effect": "Allow",
"Action": [
"sso:DescribeInstance",
"sso:DescribeApplication"
],
"Resource": [
"arn:aws:sso:::instance/*",
"arn:aws:sso::*:application/*/*"
],
"Condition": {
"Bool": {
"aws:ViaAWSService": "true"
}
}
},
{
"Sid": "IdentityStoreReadOnlyPermissions",
"Effect": "Allow",
"Action": [
"identitystore:DescribeUser",
"identitystore:DescribeGroup"
],
"Resource": [
"arn:aws:identitystore::*:identitystore/*",
"arn:aws:identitystore:::user/*",
"arn:aws:identitystore:::group/*"
],
"Condition": {
"Bool": {
"aws:ViaAWSService": "true"
}
}
}
]
}
Version history
Current version v32, edited by AWS on 2026-10-29. 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/SageMakerStudioUserIAMDefaultExecutionPolicy
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/SageMakerStudioUserIAMDefaultExecutionPolicy
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/SageMakerStudioUserIAMDefaultExecutionPolicyCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/SageMakerStudioUserIAMDefaultExecutionPolicyTerraform
resource "aws_iam_role_policy_attachment" "sagemakerstudiouseriamdefaultexecutionpolicy" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/SageMakerStudioUserIAMDefaultExecutionPolicy"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("SageMakerStudioUserIAMDefaultExecutionPolicy"),
);Sources
Pending editorial review. No editorial sources are listed yet.