Skip to main content
IAM Policy Map

SageMakerStudioAdminIAMDefaultExecutionPolicy

AdminAWS managedActivePermissions reviewedShow on mapCompare

Summary

Administrative execution policy for using IAM roles with SageMaker Unified Studio. Allows admins to provision, manage and access resources in your 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/SageMakerStudioAdminIAMDefaultExecutionPolicy
Default version
v28
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, organizations, q, quicksight, ram, rds, redshift, redshift-data, redshift-serverless, rekognition, resource-groups, s3, s3tables, sagemaker, sagemaker-data-science-assistant, sagemaker-mlflow, sagemaker-unified-studio-mcp, scheduler, secretsmanager, sqlworkbench, ssm, sso, sts, tag, textract, xray

Control-plane actions (2769)

By access level: 648 List, 81 Permissions management, 823 Read, 46 Tagging, 1171 Write.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
MWAA3 of 121 List, 1 Read, 1 Write; 0 restricted, 0 conditionalairflow:CreateWebLoginToken, airflow:GetEnvironment, airflow:ListEnvironments
MWAA Serverless15 of 164 List, 4 Read, 2 Tagging, 5 Write; 0 restricted, 0 conditionalairflow-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 Scaling3 of 141 Read, 2 Write; 0 restricted, 0 conditionalapplication-autoscaling:DescribeScalingActivities, application-autoscaling:PutScalingPolicy, application-autoscaling:RegisterScalableTarget
AthenaAll 86 actions (see the Athena page)13 List, 35 Read, 2 Tagging, 36 Write; 0 restricted, 0 conditionalathena:*
BedrockAll 232 actions (see the Bedrock page)45 List, 1 Permissions management, 61 Read, 2 Tagging, 123 Write; 0 restricted, 0 conditionalbedrock:*
Bedrock-AgentcoreAll 197 actions (see the Bedrock-Agentcore page)38 List, 8 Permissions management, 45 Read, 2 Tagging, 104 Write; 0 restricted, 0 conditionalbedrock-agentcore:*
CloudFormationAll 104 actions (see the CloudFormation page)23 List, 1 Permissions management, 34 Read, 2 Tagging, 44 Write; 103 restricted, 0 conditionalcloudformation:*, cloudformation:ValidateTemplate
CloudWatch3 of 1601 Read, 2 Write; 0 restricted, 0 conditionalcloudwatch:DeleteAlarms, cloudwatch:DescribeAlarms, cloudwatch:PutMetricAlarm
CodeConnectionsAll 38 actions (see the CodeConnections page)7 List, 16 Read, 2 Tagging, 13 Write; 0 restricted, 0 conditionalcodeconnections:*
CodeStar ConnectionsAll 38 actions (see the CodeStar Connections page)7 List, 16 Read, 2 Tagging, 13 Write; 0 restricted, 0 conditionalcodestar-connections:*
CodeWhisperer1 of 191 Read; 0 restricted, 0 conditionalcodewhisperer:GenerateRecommendations
ComprehendAll 85 actions (see the Comprehend page)50 Read, 2 Tagging, 33 Write; 0 restricted, 0 conditionalcomprehend:*
DataZoneAll 278 actions (see the DataZone page)55 List, 6 Permissions management, 62 Read, 2 Tagging, 153 Write; 0 restricted, 0 conditionaldatazone:*
DynamoDB26 of 687 List, 19 Read; 0 restricted, 0 conditionaldynamodb:Describe*, dynamodb:List*
EC2208 of 834195 List, 2 Permissions management, 2 Tagging, 9 Write; 8 restricted, 2 conditionalec2:AuthorizeSecurityGroupEgress, ec2:AuthorizeSecurityGroupIngress, ec2:CreateNetworkInterface, ec2:CreateNetworkInterfacePermission, ec2:CreateSecurityGroup, ec2:CreateTags, ec2:CreateVpcEndpoint, ec2:DeleteNetworkInterface, ec2:DeleteNetworkInterfacePermission, ec2:DeleteSecurityGroup, ec2:DeleteTags, ec2:Describe* and 2 more
Elastic Container Registry5 of 651 List, 4 Read; 0 restricted, 0 conditionalecr:BatchCheckLayerAvailability, ecr:BatchGetImage, ecr:DescribeImages, ecr:GetAuthorizationToken, ecr:GetDownloadUrlForLayer
Elastic Container Registry Public1 of 231 Read; 0 restricted, 0 conditionalecr-public:GetAuthorizationToken
EMR43 of 8811 List, 20 Read, 2 Tagging, 10 Write; 0 restricted, 0 conditionalelasticmapreduce:*PersistentAppUI*, elasticmapreduce:*Tag*, elasticmapreduce:Describe*, elasticmapreduce:Get*, elasticmapreduce:List*, elasticmapreduce:Start*, elasticmapreduce:Terminate*
EMR Containers16 of 254 List, 3 Read, 2 Tagging, 7 Write; 0 restricted, 0 conditionalemr-containers:*ManagedEndpoint*, emr-containers:*Resource, emr-containers:*SecurityConfiguration*, emr-containers:*VirtualCluster*
EMR Serverless20 of 254 List, 7 Read, 2 Tagging, 7 Write; 0 restricted, 0 conditionalemr-serverless:*Resource, emr-serverless:Access*, emr-serverless:Get*, emr-serverless:List*, emr-serverless:Start*, emr-serverless:Terminate*
EventBridge5 of 711 List, 1 Read, 1 Tagging, 2 Write; 0 restricted, 0 conditionalevents:DescribeRule, events:ListTagsForResource, events:PutRule, events:PutTargets, events:TagResource
GlueAll 306 actions (see the Glue page)27 List, 36 Permissions management, 93 Read, 2 Tagging, 148 Write; 144 restricted, 0 conditionalglue:*, glue:*DataQuality*, glue:*Job*, glue:*Resource, glue:CancelStatement, glue:CreateSession, glue:DeleteSession, glue:Describe*, glue:Get*, glue:List*, glue:NotifyEvent, glue:RunStatement and 4 more
IAM10 of 1902 List, 2 Permissions management, 2 Read, 1 Tagging, 3 Write; 6 restricted, 3 conditionaliam:AttachRolePolicy, iam:CreateRole, iam:CreateServiceLinkedRole, iam:GetRole, iam:GetUser, iam:ListRoles, iam:ListUsers, iam:PassRole, iam:TagRole, iam:UpdateAssumeRolePolicy
Identity Store2 of 292 Read; 2 restricted, 2 conditionalidentitystore:DescribeGroup, identitystore:DescribeUser
KMS10 of 582 List, 1 Permissions management, 1 Read, 6 Write; 7 restricted, 7 conditionalkms:CreateGrant, kms:Decrypt, kms:DescribeKey, kms:Encrypt, kms:GenerateDataKey, kms:GenerateDataKeyWithoutPlaintext, kms:ListAliases, kms:ListGrants, kms:ReEncryptFrom, kms:ReEncryptTo
Lake Formation20 of 684 List, 5 Permissions management, 3 Read, 8 Write; 0 restricted, 0 conditionallakeformation:*DataCellsFilter, lakeformation:BatchGrantPermissions, lakeformation:BatchRevokePermissions, lakeformation:CreateLakeFormationOptIn, lakeformation:DeleteLakeFormationOptIn, lakeformation:DeregisterResource, lakeformation:DescribeResource, lakeformation:GetDataAccess, lakeformation:GetDataLakeSettings, lakeformation:GrantPermissions, lakeformation:ListLakeFormationOptIns, lakeformation:ListPermissions and 4 more
CloudWatch Logs43 of 13319 List, 20 Read, 4 Write; 1 restricted, 1 conditionallogs:CreateLogGroup, logs:CreateLogStream, logs:Describe*, logs:Get*, logs:PutLogEvents, logs:PutRetentionPolicy, logs:StartQuery, logs:StopQuery
Organizations1 of 631 Read; 0 restricted, 0 conditionalorganizations:DescribeOrganization
Q19 of 548 List, 8 Read, 3 Write; 0 restricted, 0 conditionalq:Get*, q:List*, q:PassRequest, q:SendMessage, q:StartConversation
QuickSight1 of 3571 List; 0 restricted, 0 conditionalquicksight:ListNamespaces
Resource Access Manager21 of 399 List, 7 Read, 5 Write; 5 restricted, 5 conditionalram:AssociateResourceShare, ram:AssociateResourceSharePermission, ram:CreateResourceShare, ram:DeleteResourceShare, ram:DisassociateResourceShare, ram:Get*, ram:List*
RDS1 of 1731 List; 0 restricted, 0 conditionalrds:DescribeDBInstances
Redshift48 of 16711 List, 35 Read, 2 Write; 1 restricted, 0 conditionalredshift:Describe*, redshift:GetClusterCredentials, redshift:GetClusterCredentialsWithIAM
Redshift Data APIAll 12 actions (see the Redshift Data API page)3 List, 6 Read, 3 Write; 3 restricted, 3 conditionalredshift-data:*, redshift-data:BatchExecuteStatement, redshift-data:Describe*, redshift-data:ExecuteStatement, redshift-data:List*
Redshift Serverless20 of 6915 List, 4 Read, 1 Write; 0 restricted, 0 conditionalredshift-serverless:GetCredentials, redshift-serverless:GetManagedWorkgroup, redshift-serverless:GetNamespace, redshift-serverless:GetWorkgroup, redshift-serverless:List*
RekognitionAll 76 actions (see the Rekognition page)1 List, 36 Read, 2 Tagging, 37 Write; 0 restricted, 0 conditionalrekognition:*
Resource Groups2 of 291 List, 1 Read; 0 restricted, 0 conditionalresource-groups:GetGroupQuery, resource-groups:ListGroupResources
S3112 of 15515 List, 17 Permissions management, 55 Read, 4 Tagging, 21 Write; 93 restricted, 7 conditionals3:AssociateAccessGrantsIdentityCenter, s3:CreateAccessGrant, s3:CreateAccessGrantsInstance, s3:CreateAccessGrantsLocation, s3:CreateBucket, s3:DeleteAccessGrant, s3:DeleteAccessGrantsLocation, s3:DeleteBucketPolicy, s3:Get*, s3:GetAccessGrantsInstance, s3:GetAccessGrantsInstanceForPrefix, s3:GetAccessGrantsLocation and 7 more
S3 Tables2 of 611 Permissions management, 1 Write; 2 restricted, 0 conditionals3tables:CreateTableBucket, s3tables:PutTableBucketPolicy
SageMakerAll 441 actions (see the SageMaker page)96 List, 97 Read, 2 Tagging, 246 Write; 157 restricted, 0 conditionalsagemaker:*, sagemaker:*Action*, sagemaker:*Artifact*, sagemaker:*Association*, sagemaker:*Context*, sagemaker:*Endpoint*, sagemaker:*Feature*, sagemaker:*InferenceComponent*, sagemaker:*Job*, sagemaker:*MlflowApp*, sagemaker:*Model*, sagemaker:AddTags and 9 more
SageMakerDataScienceAssistantAll 1 actions (see the SageMakerDataScienceAssistant page)1 Write; 0 restricted, 0 conditionalsagemaker-data-science-assistant:*
SageMaker MLflowAll 61 actions (see the SageMaker MLflow page)3 List, 17 Read, 41 Write; 0 restricted, 0 conditionalsagemaker-mlflow:*
SageMaker Unified Studio MCPAll 1 actions (see the SageMaker Unified Studio MCP page)1 Read; 0 restricted, 0 conditionalsagemaker-unified-studio-mcp:*
EventBridge SchedulerAll 13 actions (see the EventBridge Scheduler page)3 List, 3 Read, 2 Tagging, 5 Write; 0 restricted, 0 conditionalscheduler:*
Secrets Manager10 of 271 List, 1 Permissions management, 2 Read, 1 Tagging, 5 Write; 9 restricted, 3 conditionalsecretsmanager:CreateSecret, secretsmanager:DeleteSecret, secretsmanager:DescribeSecret, secretsmanager:GetSecretValue, secretsmanager:ListSecrets, secretsmanager:PutResourcePolicy, secretsmanager:PutSecretValue, secretsmanager:RotateSecret, secretsmanager:TagResource, secretsmanager:UpdateSecret
SQL WorkbenchAll 79 actions (see the SQL Workbench page)9 List, 23 Read, 2 Tagging, 45 Write; 0 restricted, 0 conditionalsqlworkbench:*
Systems Manager6 of 1644 Read, 2 Write; 6 restricted, 0 conditionalssm:DeleteParameter, ssm:GetParameter*, ssm:PutParameter
IAM Identity Center12 of 1261 List, 2 Read, 9 Write; 11 restricted, 11 conditionalsso:CreateApplication, sso:CreateApplicationAssignment, sso:DeleteApplication, sso:DeleteApplicationAssignment, sso:DescribeApplication, sso:DescribeInstance, sso:ListInstances, sso:PutApplicationAccessScope, sso:PutApplicationAssignmentConfiguration, sso:PutApplicationAuthenticationMethod, sso:PutApplicationGrant, sso:UpdateApplication
STS4 of 161 Read, 1 Tagging, 2 Write; 2 restricted, 2 conditionalsts:AssumeRole, sts:GetServiceBearerToken, sts:SetSourceIdentity, sts:TagSession
Resource Group Tagging1 of 91 Read; 0 restricted, 0 conditionaltag:GetResources
TextractAll 25 actions (see the Textract page)14 Read, 2 Tagging, 9 Write; 0 restricted, 0 conditionaltextract:*
X-Ray2 of 322 Read; 0 restricted, 0 conditionalxray:GetSamplingRules, xray:GetTraceSegmentDestination

The full action list is in actions.json.

Data-plane actions (148)

By access level: 20 List, 2 Permissions management, 55 Read, 2 Tagging, 69 Write.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
MWAAAll 1 actions (see the MWAA page)1 Write; 0 restricted, 0 conditionalairflow:InvokeRestApi
BedrockAll 37 actions (see the Bedrock page)3 List, 22 Read, 12 Write; 0 restricted, 0 conditionalbedrock:*
Bedrock-AgentcoreAll 62 actions (see the Bedrock-Agentcore page)13 List, 13 Read, 36 Write; 0 restricted, 0 conditionalbedrock-agentcore:*
CloudWatch2 of 51 Read, 1 Write; 0 restricted, 0 conditionalcloudwatch:GetMetricData, cloudwatch:PutMetricData
DynamoDB3 of 173 Read; 0 restricted, 0 conditionaldynamodb:PartiQLSelect, dynamodb:Query, dynamodb:Scan
S321 of 253 List, 2 Permissions management, 8 Read, 2 Tagging, 6 Write; 18 restricted, 1 conditionals3:AbortMultipartUpload, s3:DeleteObject, s3:DeleteObjectVersion, s3:Get*, s3:GetObject, s3:GetObject*, s3:GetObjectAcl, s3:GetObjectVersion, s3:GetObjectVersionAcl, s3:List*, s3:Put*, s3:PutObject and 3 more
SageMakerAll 19 actions (see the SageMaker page)1 List, 7 Read, 11 Write; 11 restricted, 0 conditionalsagemaker:*, sagemaker:*Endpoint*, sagemaker:*Record, sagemaker:Batch*, sagemaker:List*
X-Ray3 of 121 Read, 2 Write; 0 restricted, 0 conditionalxray:GetSamplingTargets, xray:PutTelemetryRecords, xray:PutTraceSegments

The full action list is in actions.json.

Excluded and conditional actions

  • athena:GetResourceDashboard (deny-conditional, statement 26): 1 matching actions
  • athena:GetSession (deny-conditional, statement 26): 1 matching actions
  • athena:GetSessionEndpoint (deny-conditional, statement 26): 1 matching actions
  • athena:GetSessionStatus (deny-conditional, statement 26): 1 matching actions
  • athena:StartSession (deny-conditional, statement 26): 1 matching actions
  • athena:TerminateSession (deny-conditional, statement 26): 1 matching actions
  • elasticmapreduce:*Session* (deny-conditional, statement 26): 11 matching actions
  • emr-containers:*ManagedEndpoint* (deny-conditional, statement 26): 5 matching actions
  • emr-serverless:*Dashboard* (deny-conditional, statement 26): 2 matching actions
  • emr-serverless:*Session* (deny-conditional, statement 26): 5 matching actions
  • glue:CancelStatement (deny-conditional, statement 26): 1 matching actions
  • glue:CreateSession (deny-conditional, statement 26): 1 matching actions
  • glue:DeleteSession (deny-conditional, statement 26): 1 matching actions
  • glue:GetDashboardUrl (deny-conditional, statement 26): 1 matching actions
  • glue:GetSession (deny-conditional, statement 26): 1 matching actions
  • glue:GetSessionEndpoint (deny-conditional, statement 26): 1 matching actions
  • glue:GetStatement (deny-conditional, statement 26): 1 matching actions
  • glue:RunStatement (deny-conditional, statement 26): 1 matching actions
  • glue:StopSession (deny-conditional, statement 26): 1 matching actions
  • athena:TagResource (deny-conditional, statement 27): 1 matching actions
  • athena:UntagResource (deny-conditional, statement 27): 1 matching actions
  • elasticmapreduce:AddTags (deny-conditional, statement 27): 1 matching actions
  • elasticmapreduce:RemoveTags (deny-conditional, statement 27): 1 matching actions
  • emr-containers:*Resource (deny-conditional, statement 27): 3 matching actions
  • emr-serverless:*Resource (deny-conditional, statement 27): 3 matching actions
  • glue:TagResource (deny-conditional, statement 27): 1 matching actions
  • glue:UntagResource (deny-conditional, statement 27): 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), athena (36 of 36), bedrock (136 of 136), bedrock-agentcore (148 of 148), codeconnections (13 of 13), codestar-connections (13 of 13), comprehend (33 of 33), datazone (159 of 159), and 5 more.
  • 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).
  • Grants permissions-management actions on iam, but only for scoped resources or under conditions.

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.

Same service

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

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DataZone",
      "Effect": "Allow",
      "Action": [
        "datazone:*"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "SageMakerUnifiedStudioMcp",
      "Effect": "Allow",
      "Action": [
        "sagemaker-unified-studio-mcp:*"
      ],
      "Resource": "*"
    },
    {
      "Sid": "IamSts",
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:ListRoles",
        "iam:GetUser",
        "iam:ListUsers",
        "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/ops.athena.amazonaws.com/AWSServiceRoleForAmazonAthena",
        "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": "TagRoleAndSession",
      "Effect": "Allow",
      "Action": [
        "iam:TagRole",
        "sts:TagSession"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringLike": {
          "aws:TagKeys": [
            "AmazonDataZone*",
            "SageMakerSpacesDomainId"
          ]
        }
      }
    },
    {
      "Sid": "UpdateDzManagedRoleTrustPolicy",
      "Effect": "Allow",
      "Action": "iam:UpdateAssumeRolePolicy",
      "Resource": [
        "arn:aws:iam::*:role/service-role/AmazonSageMakerAdminIAMExecutionRole*",
        "arn:aws:iam::*:role/service-role/AmazonSageMakerUserIAMExecutionRole*",
        "arn:aws:iam::*:role/AmazonSageMakerAdminIAMExecutionRole*",
        "arn:aws:iam::*:role/AmazonSageMakerUserIAMExecutionRole*"
      ]
    },
    {
      "Sid": "CreateRole",
      "Effect": "Allow",
      "Action": [
        "iam:CreateRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/service-role/AmazonSageMaker*"
      ]
    },
    {
      "Sid": "AttachPolicy",
      "Effect": "Allow",
      "Action": "iam:AttachRolePolicy",
      "Resource": "arn:aws:iam::*:role/service-role/AmazonSageMaker*",
      "Condition": {
        "ArnEquals": {
          "iam:PolicyARN": [
            "arn:aws:iam::aws:policy/SageMakerStudioUserIAMDefaultExecutionPolicy",
            "arn:aws:iam::aws:policy/SageMakerStudioUserIAMPermissiveExecutionPolicy",
            "arn:aws:iam::aws:policy/service-role/AmazonS3TablesLakeFormationServiceRole",
            "arn:aws:iam::aws:policy/service-role/SageMakerStudioDataAppsAccessRolePolicy"
          ]
        }
      }
    },
    {
      "Sid": "SourceIdentity",
      "Effect": "Allow",
      "Action": "sts:SetSourceIdentity",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "sts:SourceIdentity": "${aws:PrincipalTag/datazone:userId}"
        }
      }
    },
    {
      "Sid": "PassRoleForProvisioning",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}",
          "iam:PassedToService": [
            "sagemaker.amazonaws.com",
            "lakeformation.amazonaws.com",
            "athena.amazonaws.com",
            "glue.amazonaws.com",
            "datazone.amazonaws.com",
            "airflow-serverless.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "PassRole",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": [
        "arn:aws:iam::*:role/service-role/AmazonSageMaker*",
        "arn:aws:iam::*:role/${aws:PrincipalTag/AmazonDataZonePassedRolePath}"
      ],
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": [
            "datazone.amazonaws.com",
            "bedrock.amazonaws.com",
            "bedrock-agentcore.amazonaws.com",
            "agent-registry.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": "Q",
      "Effect": "Allow",
      "Action": [
        "glue:StartCompletion",
        "q:Get*",
        "q:List*",
        "q:PassRequest",
        "q:SendMessage",
        "q:StartConversation"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SSMParameter",
      "Effect": "Allow",
      "Action": [
        "ssm:DeleteParameter",
        "ssm:GetParameter*",
        "ssm:PutParameter"
      ],
      "Resource": [
        "arn:aws:ssm:*:*:parameter/amazon/datazone/q*",
        "arn:aws:ssm:*:*:parameter/amazon/datazone/genAI/*",
        "arn:aws:ssm:*::parameter/aws/service/sagemaker-distribution/*"
      ]
    },
    {
      "Sid": "ManageSageMakerSpace",
      "Effect": "Allow",
      "Action": "sagemaker:*",
      "Resource": [
        "arn:aws:sagemaker:*:*:app/*",
        "arn:aws:sagemaker:*:*:space/*",
        "arn:aws:sagemaker:*:*:domain/*",
        "arn:aws:sagemaker:*:*:user-profile/*"
      ]
    },
    {
      "Sid": "ResourceGroupsPermissions",
      "Effect": "Allow",
      "Action": [
        "resource-groups:GetGroupQuery",
        "resource-groups:ListGroupResources"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SageMakerPermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags",
        "sagemaker:Batch*",
        "sagemaker:DeleteTags",
        "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": "CreateBucket",
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:DeleteBucketPolicy",
        "s3:Get*",
        "s3:Put*",
        "s3:DeleteObject",
        "s3:AbortMultipartUpload"
      ],
      "Resource": [
        "arn:aws:s3:::amazon-sagemaker*"
      ]
    },
    {
      "Sid": "S3List",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketAcl",
        "s3:GetAccessGrantsInstance",
        "s3:GetAccessGrantsInstanceForPrefix",
        "s3:GetDataAccess",
        "s3:List*"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CrossAccount",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject*",
        "s3:List*",
        "s3:PutObject*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "CfnManage",
      "Effect": "Allow",
      "Action": [
        "cloudformation:*"
      ],
      "Resource": [
        "arn:aws:cloudformation:*:*:stack/DataZone*",
        "arn:aws:cloudformation:*:*:transform/*"
      ]
    },
    {
      "Sid": "ValidateCfn",
      "Effect": "Allow",
      "Action": "cloudformation:ValidateTemplate",
      "Resource": "*"
    },
    {
      "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": "LFManage",
      "Effect": "Allow",
      "Action": [
        "lakeformation:BatchGrantPermissions",
        "lakeformation:BatchRevokePermissions",
        "lakeformation:DeregisterResource",
        "lakeformation:DescribeResource",
        "lakeformation:GetDataAccess",
        "lakeformation:GetDataLakeSettings",
        "lakeformation:GrantPermissions",
        "lakeformation:ListPermissions",
        "lakeformation:ListResources",
        "lakeformation:PutDataLakeSettings",
        "lakeformation:RegisterResource",
        "lakeformation:RevokePermissions",
        "lakeformation:ListLakeFormationOptIns",
        "lakeformation:CreateLakeFormationOptIn",
        "lakeformation:DeleteLakeFormationOptIn",
        "lakeformation:*DataCellsFilter"
      ],
      "Resource": "*"
    },
    {
      "Sid": "GlueDatabase",
      "Effect": "Allow",
      "Action": [
        "glue:*"
      ],
      "Resource": [
        "arn:aws:glue:*:*:database/*",
        "arn:aws:glue:*:*:table/*",
        "arn:aws:glue:*:*:catalog",
        "arn:aws:glue:*:*:catalog/*",
        "arn:aws:glue:*:*:connection/*"
      ]
    },
    {
      "Sid": "GlueLakeFormation",
      "Effect": "Allow",
      "Action": [
        "glue:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "glue:LakeFormationPermissions": "Enabled"
        }
      }
    },
    {
      "Sid": "Glue",
      "Effect": "Allow",
      "Action": [
        "glue:CancelStatement",
        "glue:CreateSession",
        "glue:DeleteSession",
        "glue:Describe*",
        "glue:Get*",
        "glue:List*",
        "glue:NotifyEvent",
        "glue:RunStatement",
        "glue:StartCompletion",
        "glue:StopSession",
        "glue:*Resource",
        "glue:UseGlueStudio",
        "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": "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": "FederatedConn",
      "Effect": "Allow",
      "Action": [
        "dynamodb:List*",
        "dynamodb:Describe*",
        "dynamodb:Scan",
        "dynamodb:PartiQLSelect",
        "dynamodb:Query",
        "secretsmanager:ListSecrets"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Athena",
      "Effect": "Allow",
      "Action": [
        "athena:*"
      ],
      "Resource": "*"
    },
    {
      "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": "ManagePrivateSecret",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:CreateSecret",
        "secretsmanager:DeleteSecret",
        "secretsmanager:DescribeSecret",
        "secretsmanager:GetSecretValue",
        "secretsmanager:TagResource",
        "secretsmanager:UpdateSecret",
        "secretsmanager:PutResourcePolicy",
        "secretsmanager:PutSecretValue"
      ],
      "Resource": "*",
      "Condition": {
        "Null": {
          "aws:ResourceTag/AmazonDataZoneProject": "false"
        }
      }
    },
    {
      "Sid": "ManageSharedSecret",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:CreateSecret",
        "secretsmanager:DeleteSecret",
        "secretsmanager:DescribeSecret",
        "secretsmanager:GetSecretValue",
        "secretsmanager:TagResource",
        "secretsmanager:UpdateSecret",
        "secretsmanager:PutSecretValue"
      ],
      "Resource": "*",
      "Condition": {
        "Null": {
          "aws:ResourceTag/AmazonDataZoneProject": "true"
        },
        "StringEquals": {
          "aws:ResourceTag/for-use-with-all-datazone-projects": "true"
        }
      }
    },
    {
      "Sid": "RedshiftSecret",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:CreateSecret",
        "secretsmanager:RotateSecret",
        "secretsmanager:DescribeSecret",
        "secretsmanager:UpdateSecret",
        "secretsmanager:DeleteSecret",
        "secretsmanager:TagResource"
      ],
      "Resource": "arn:aws:secretsmanager:*:*:secret:redshift!*"
    },
    {
      "Sid": "GenerateRecommendations",
      "Effect": "Allow",
      "Action": [
        "codewhisperer:GenerateRecommendations"
      ],
      "Resource": "*"
    },
    {
      "Sid": "ManageScheduler",
      "Effect": "Allow",
      "Action": "scheduler:*",
      "Resource": "*"
    },
    {
      "Sid": "Ecr",
      "Effect": "Allow",
      "Action": [
        "ecr:BatchCheckLayerAvailability",
        "ecr:BatchGetImage",
        "ecr:DescribeImages",
        "ecr:GetAuthorizationToken",
        "ecr:GetDownloadUrlForLayer"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CodeConnectionsAdmin",
      "Effect": "Allow",
      "Action": [
        "codeconnections:*",
        "codestar-connections:*"
      ],
      "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": "CreateSG",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateSecurityGroup"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:security-group/*",
        "arn:aws:ec2:*:*:vpc/*"
      ]
    },
    {
      "Sid": "SGManage",
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteSecurityGroup",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:security-group/*"
      ]
    },
    {
      "Sid": "SGAuth",
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:security-group/*"
      ],
      "Condition": {
        "Null": {
          "aws:ResourceTag/AmazonDataZoneProject": "false"
        }
      }
    },
    {
      "Sid": "Ec2DescribeOnly",
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    },
    {
      "Sid": "SGCreateTags",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:*:*:security-group/*",
      "Condition": {
        "ForAllValues:StringLike": {
          "aws:TagKeys": [
            "AmazonDataZone*",
            "for-use-with-amazon-emr-managed-policies",
            "aws:cloudformation:*"
          ]
        }
      }
    },
    {
      "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": "EMR",
      "Effect": "Allow",
      "Action": [
        "emr-serverless:Get*",
        "emr-serverless:List*",
        "emr-serverless:Start*",
        "emr-serverless:Access*",
        "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": "SSOApplicationPermissions",
      "Effect": "Allow",
      "Action": [
        "identitystore:DescribeUser",
        "identitystore:DescribeGroup",
        "sso:CreateApplication",
        "sso:DeleteApplication",
        "sso:DescribeInstance",
        "sso:DescribeApplication",
        "sso:PutApplicationGrant",
        "sso:PutApplicationAssignmentConfiguration",
        "sso:PutApplicationAuthenticationMethod",
        "sso:PutApplicationAccessScope",
        "sso:UpdateApplication",
        "sso:CreateApplicationAssignment",
        "sso:DeleteApplicationAssignment"
      ],
      "Resource": "*",
      "Condition": {
        "Bool": {
          "aws:ViaAWSService": "true"
        }
      }
    },
    {
      "Sid": "SSOReadOnlyPermissions",
      "Effect": "Allow",
      "Action": [
        "sso:ListInstances",
        "organizations:DescribeOrganization"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SSOKMSPermissions",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
      ],
      "Resource": "*",
      "Condition": {
        "Null": {
          "kms:EncryptionContext:aws:sso:instance-arn": "false"
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com"
        }
      }
    },
    {
      "Sid": "IdentityStoreKMSPermissions",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
      ],
      "Resource": "*",
      "Condition": {
        "Null": {
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "false"
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com"
        }
      }
    },
    {
      "Sid": "RAMReadOnlyPermissions",
      "Effect": "Allow",
      "Action": [
        "ram:Get*",
        "ram:List*"
      ],
      "Resource": "*"
    },
    {
      "Sid": "RAMCreateResourcePermission",
      "Effect": "Allow",
      "Action": [
        "ram:CreateResourceShare"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ram:RequestedResourceType": "datazone:Domain"
        }
      }
    },
    {
      "Sid": "RAMResourceSharePermissions",
      "Effect": "Allow",
      "Action": [
        "ram:AssociateResourceShare",
        "ram:DisassociateResourceShare",
        "ram:DeleteResourceShare"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "ram:ResourceShareName": [
            "DataZone*"
          ]
        }
      }
    },
    {
      "Sid": "RAMAssociateResourceSharePermission",
      "Effect": "Allow",
      "Action": "ram:AssociateResourceSharePermission",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ram:PermissionArn": [
            "arn:aws:ram::aws:permission/AWSRAMDefaultPermissionAmazonDataZoneDomain",
            "arn:aws:ram::aws:permission/AWSRAMPermissionAmazonDataZoneDomainFullAccessWithPortalAccess",
            "arn:aws:ram::aws:permission/AWSRAMPermissionsAmazonDatazoneDomainExtendedServiceAccess",
            "arn:aws:ram::aws:permission/AWSRAMPermissionsAmazonDatazoneDomainExtendedServiceWithPortalAccess"
          ]
        }
      }
    },
    {
      "Sid": "CanvasGeneralPermissions",
      "Effect": "Allow",
      "Action": [
        "comprehend:*",
        "textract:*",
        "rekognition:*",
        "sagemaker-data-science-assistant:*",
        "rds:DescribeDBInstances",
        "application-autoscaling:PutScalingPolicy",
        "application-autoscaling:RegisterScalableTarget",
        "application-autoscaling:DescribeScalingActivities",
        "quicksight:ListNamespaces",
        "events:PutRule",
        "events:DescribeRule",
        "events:PutTargets",
        "events:TagResource",
        "events:ListTagsForResource"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CanvasRedshiftAccess",
      "Effect": "Allow",
      "Action": [
        "redshift:GetClusterCredentials"
      ],
      "Resource": [
        "arn:aws:redshift:*:*:dbuser:*/sagemaker_access*",
        "arn:aws:redshift:*:*:dbname:*"
      ]
    },
    {
      "Sid": "AgentCore",
      "Effect": "Allow",
      "Action": "bedrock-agentcore:*",
      "Resource": "*"
    },
    {
      "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": "TagLookup",
      "Effect": "Allow",
      "Action": [
        "tag:GetResources"
      ],
      "Resource": "*"
    },
    {
      "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:AssociateAccessGrantsIdentityCenter",
        "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": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "S3TableBucketPermissions",
      "Effect": "Allow",
      "Action": [
        "s3tables:CreateTableBucket",
        "s3tables:PutTableBucketPolicy"
      ],
      "Resource": "arn:aws:s3tables:*:*:bucket/aws-sagemaker-unified-studio"
    }
  ]
}

Version history

Current version v28, 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/SageMakerStudioAdminIAMDefaultExecutionPolicy
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/SageMakerStudioAdminIAMDefaultExecutionPolicy
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/SageMakerStudioAdminIAMDefaultExecutionPolicy

CloudFormation

Resources:
  ExampleRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument: {}  # replace with your trust policy
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/SageMakerStudioAdminIAMDefaultExecutionPolicy

Terraform

resource "aws_iam_role_policy_attachment" "sagemakerstudioadminiamdefaultexecutionpolicy" {
  role       = aws_iam_role.example.name
  policy_arn = "arn:aws:iam::aws:policy/SageMakerStudioAdminIAMDefaultExecutionPolicy"
}

CDK (TypeScript)

role.addManagedPolicy(
  iam.ManagedPolicy.fromAwsManagedPolicyName("SageMakerStudioAdminIAMDefaultExecutionPolicy"),
);

Sources

Pending editorial review. No editorial sources are listed yet.