SageMakerStudioProjectUserRolePolicy
Summary
Amazon SageMaker Studio creates IAM roles for projects users to perform data analytics, artificial intelligence, and machine learning actions, and uses this policy when creating these roles to define the permissions.
Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.
Identity
- ARN
arn:aws:iam::aws:policy/SageMakerStudioProjectUserRolePolicy- Default version
- v76
- Created
- Last edited
- Services
- airflow, athena, bedrock, cloudformation, cloudwatch, codecommit, codeconnections, codestar-connections, codewhisperer, datazone, dynamodb, ec2, ecr, elasticmapreduce, emr-containers, emr-serverless, glue, iam, kms, lakeformation, lambda, logs, pricing, q, quicksight, ram, redshift, redshift-data, redshift-serverless, s3, scheduler, secretsmanager, sqlworkbench, sqs, sso, sts, tag
Control-plane actions (556)
By access level: 74 List, 16 Permissions management, 221 Read, 13 Tagging, 232 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| MWAA | 4 of 12 | 1 List, 1 Read, 2 Write; 3 restricted, 2 conditional | airflow:CreateWebLoginToken, airflow:GetEnvironment, airflow:ListEnvironments, airflow:UpdateEnvironment |
| Athena | 47 of 86 | 5 List, 23 Read, 19 Write; 44 restricted, 39 conditional | athena:BatchGetNamedQuery, athena:BatchGetPreparedStatement, athena:BatchGetQueryExecution, athena:CreateNamedQuery, athena:CreateNotebook, athena:CreatePreparedStatement, athena:CreatePresignedNotebookUrl, athena:DeleteNamedQuery, athena:DeleteNotebook, athena:DeletePreparedStatement, athena:ExportNotebook, athena:GetCalculationExecution and 35 more |
| Bedrock | 40 of 232 | 10 List, 11 Read, 1 Tagging, 18 Write; 40 restricted, 39 conditional | bedrock:BatchDeleteEvaluationJob, bedrock:CreateAgentAlias, bedrock:CreateBlueprint, bedrock:CreateBlueprintVersion, bedrock:CreateDataAutomationProject, bedrock:CreateEvaluationJob, bedrock:CreatePrompt, bedrock:CreatePromptVersion, bedrock:DeleteAgentAlias, bedrock:DeleteAgentVersion, bedrock:DeleteBlueprint, bedrock:DeleteDataAutomationProject and 28 more |
| CloudFormation | 3 of 104 | 2 List, 1 Read; 3 restricted, 3 conditional | cloudformation:DescribeStacks, cloudformation:GetTemplate, cloudformation:ListStackResources |
| CodeCommit | 61 of 91 | 5 List, 31 Read, 25 Write; 61 restricted, 61 conditional | codecommit:BatchDescribeMergeConflicts, codecommit:BatchGetCommits, codecommit:BatchGetPullRequests, codecommit:BatchGetRepositories, codecommit:CreateBranch, codecommit:CreateCommit, codecommit:CreatePullRequest, codecommit:DeleteBranch, codecommit:DeleteFile, codecommit:DescribeMergeConflicts, codecommit:DescribePullRequestEvents, codecommit:GetBlob and 49 more |
| 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 |
| DataZone | 21 of 278 | 4 List, 9 Read, 8 Write; 21 restricted, 0 conditional | datazone:*Compute*, datazone:CreateConnection, datazone:DeleteConnection, datazone:GetConnection, datazone:GetDomain, datazone:GetDomainExecutionRoleCredentials, datazone:GetEnvironment, datazone:GetEnvironmentBlueprintConfiguration, datazone:GetProject, datazone:GetUserProfile, datazone:ListConnections, datazone:ListEnvironmentBlueprints and 4 more |
| DynamoDB | 1 of 68 | 1 List; 0 restricted, 0 conditional | dynamodb:ListTables |
| EC2 | 13 of 834 | 7 List, 2 Tagging, 4 Write; 6 restricted, 6 conditional | ec2:AttachNetworkInterface, ec2:CreateNetworkInterface, ec2:CreateTags, ec2:DeleteNetworkInterface, ec2:DeleteTags, ec2:DescribeInstanceTypes, ec2:DescribeNetworkInterfaces, ec2:DescribeRouteTables, ec2:DescribeSecurityGroups, ec2:DescribeSubnets, ec2:DescribeVpcEndpoints, ec2:DescribeVpcs and 1 more |
| Elastic Container Registry | 13 of 65 | 1 List, 3 Read, 2 Tagging, 7 Write; 13 restricted, 13 conditional | ecr:BatchCheckLayerAvailability, ecr:BatchDeleteImage, ecr:CompleteLayerUpload, ecr:CreateRepository, ecr:DeleteRepository, ecr:DescribeRepositories, ecr:InitiateLayerUpload, ecr:ListImages, ecr:ListTagsForResource, ecr:PutImage, ecr:TagResource, ecr:UntagResource and 1 more |
| EMR | 25 of 88 | 5 List, 9 Read, 1 Tagging, 10 Write; 20 restricted, 20 conditional | elasticmapreduce:*Session*, elasticmapreduce:AddTags, elasticmapreduce:CreatePersistentAppUI, elasticmapreduce:DescribeCluster, elasticmapreduce:DescribePersistentAppUI, elasticmapreduce:GetClusterSessionCredentials, elasticmapreduce:GetManagedScalingPolicy, elasticmapreduce:GetOnClusterAppUIPresignedURL, elasticmapreduce:GetPersistentAppUIPresignedURL, elasticmapreduce:ListBootstrapActions, elasticmapreduce:ListClusters, elasticmapreduce:ListInstanceFleets and 4 more |
| EMR Containers | 8 of 25 | 1 List, 3 Read, 1 Tagging, 3 Write; 8 restricted, 8 conditional | emr-containers:*ManagedEndpoint*, emr-containers:DescribeSecurityConfiguration, emr-containers:DescribeVirtualCluster, emr-containers:TagResource |
| EMR Serverless | 15 of 25 | 1 List, 6 Read, 1 Tagging, 7 Write; 15 restricted, 15 conditional | emr-serverless:*Session*, emr-serverless:AccessInteractiveEndpoints, emr-serverless:AccessLivyEndpoints, emr-serverless:GetApplication, emr-serverless:GetDashboardForJobRun, emr-serverless:GetJobRun, emr-serverless:GetResourceDashboard, emr-serverless:StartApplication, emr-serverless:StartJobRun, emr-serverless:StopApplication, emr-serverless:TagResource |
| Glue | 142 of 306 | 9 List, 12 Permissions management, 49 Read, 2 Tagging, 70 Write; 130 restricted, 64 conditional | glue:*ColumnStatistics*, glue:*DataQuality*, glue:*Database*, glue:*Partition*, glue:*Session*, glue:*Statement*, glue:*Table*, glue:BatchCreatePartition, glue:BatchDeletePartition, glue:BatchDeleteTable, glue:BatchDeleteTableVersion, glue:BatchGetJobs and 91 more |
| IAM | 3 of 190 | 1 List, 1 Read, 1 Write; 2 restricted, 2 conditional | iam:GetRole, iam:ListRoles, iam:PassRole |
| KMS | 12 of 58 | 2 List, 2 Permissions management, 2 Read, 6 Write; 12 restricted, 12 conditional | kms:CreateGrant, kms:Decrypt, kms:DescribeKey, kms:Encrypt, kms:GenerateDataKey, kms:GenerateDataKeyWithoutPlaintext, kms:GetPublicKey, kms:ListAliases, kms:ListGrants, kms:ReEncryptFrom, kms:ReEncryptTo, kms:RevokeGrant |
| Lake Formation | 11 of 68 | 2 List, 2 Permissions management, 3 Read, 4 Write; 0 restricted, 0 conditional | lakeformation:BatchGrantPermissions, lakeformation:BatchRevokePermissions, lakeformation:CreateDataCellsFilter, lakeformation:DeleteDataCellsFilter, lakeformation:DescribeResource, lakeformation:GetDataAccess, lakeformation:GetDataCellsFilter, lakeformation:GetResourceLFTags, lakeformation:ListDataCellsFilter, lakeformation:ListPermissions, lakeformation:UpdateDataCellsFilter |
| CloudWatch Logs | 12 of 133 | 2 List, 7 Read, 3 Write; 10 restricted, 0 conditional | logs:CreateLogGroup, logs:CreateLogStream, logs:DescribeLogGroups, logs:DescribeLogStreams, logs:FilterLogEvents, logs:GetLogEvents, logs:GetLogGroupFields, logs:GetLogRecord, logs:GetQueryResults, logs:PutLogEvents, logs:StartQuery, logs:StopQuery |
| Price List | 1 of 5 | 1 Read; 0 restricted, 0 conditional | pricing:GetProducts |
| Q | 2 of 54 | 2 Write; 0 restricted, 0 conditional | q:SendMessage, q:StartConversation |
| QuickSight | 12 of 357 | 9 Read, 1 Tagging, 2 Write; 12 restricted, 8 conditional | quicksight:CreateDataSet, quicksight:CreateFolderMembership, quicksight:DescribeAccountSubscription, quicksight:DescribeDataSet, quicksight:DescribeDataSource, quicksight:DescribeFolder, quicksight:DescribeFolderPermissions, quicksight:DescribeGroup, quicksight:DescribeUser, quicksight:ListFolderMembers, quicksight:PassDataSource, quicksight:TagResource |
| Resource Access Manager | 11 of 39 | 2 List, 2 Read, 7 Write; 9 restricted, 9 conditional | ram:AcceptResourceShareInvitation, ram:AssociateResourceShare, ram:AssociateResourceSharePermission, ram:CreateResourceShare, ram:DeleteResourceShare, ram:DisassociateResourceShare, ram:GetResourceShareInvitations, ram:GetResourceShares, ram:ListResourceSharePermissions, ram:ListResources, ram:UpdateResourceShare |
| Redshift | 3 of 167 | 1 List, 1 Read, 1 Write; 2 restricted, 2 conditional | redshift:DescribeClusters, redshift:DescribeTags, redshift:GetClusterCredentialsWithIAM |
| Redshift Data API | 11 of 12 | 2 List, 6 Read, 3 Write; 11 restricted, 11 conditional | redshift-data:BatchExecuteStatement, redshift-data:CancelStatement, redshift-data:DescribeStatement, redshift-data:DescribeTable, redshift-data:ExecuteStatement, redshift-data:GetStagingBucketLocation, redshift-data:GetStatementResult, redshift-data:ListDatabases, redshift-data:ListSchemas, redshift-data:ListStatements, redshift-data:ListTables |
| Redshift Serverless | 7 of 69 | 3 List, 3 Read, 1 Write; 5 restricted, 5 conditional | redshift-serverless:GetCredentials, redshift-serverless:GetManagedWorkgroup, redshift-serverless:GetNamespace, redshift-serverless:GetWorkgroup, redshift-serverless:ListNamespaces, redshift-serverless:ListTagsForResource, redshift-serverless:ListWorkgroups |
| S3 | 14 of 155 | 13 Read, 1 Write; 14 restricted, 14 conditional | s3:GetAccountPublicAccessBlock, s3:GetBucketAcl, s3:GetBucketLocation, s3:GetBucketPublicAccessBlock, s3:GetEncryptionConfiguration, s3:GetObject*, s3:ReplicateObject |
| EventBridge Scheduler | 5 of 13 | 2 Read, 3 Write; 5 restricted, 5 conditional | scheduler:CreateSchedule, scheduler:DeleteSchedule, scheduler:GetSchedule, scheduler:GetScheduleGroup, scheduler:UpdateSchedule |
| Secrets Manager | 4 of 27 | 1 List, 2 Read, 1 Write; 3 restricted, 3 conditional | secretsmanager:DescribeSecret, secretsmanager:GetSecretValue, secretsmanager:ListSecrets, secretsmanager:PutSecretValue |
| SQL Workbench | 32 of 79 | 2 List, 11 Read, 1 Tagging, 18 Write; 15 restricted, 14 conditional | sqlworkbench:*QCustomContext, sqlworkbench:AssociateNotebookWithTab, sqlworkbench:BatchGetNotebookCell, sqlworkbench:CreateConnection, sqlworkbench:CreateNotebook*, sqlworkbench:DeleteNotebook*, sqlworkbench:DeleteTab, sqlworkbench:DriverExecute, sqlworkbench:ExportNotebook, sqlworkbench:GetAutocompletion*, sqlworkbench:GetNotebook, sqlworkbench:GetQSql* and 9 more |
| SQS | 6 of 20 | 3 Read, 3 Write; 6 restricted, 6 conditional | sqs:ChangeMessageVisibility, sqs:DeleteMessage, sqs:GetQueueAttributes, sqs:GetQueueUrl, sqs:ReceiveMessage, sqs:SendMessage |
| IAM Identity Center | 1 of 126 | 1 Read; 1 restricted, 1 conditional | sso:DescribeApplication |
| STS | 4 of 16 | 1 Tagging, 3 Write; 4 restricted, 4 conditional | sts:AssumeRole, sts:SetContext, sts:SetSourceIdentity, sts:TagSession |
| Resource Group Tagging | 1 of 9 | 1 Read; 1 restricted, 1 conditional | tag:GetResources |
MWAA: 4 actions
- airflow:CreateWebLoginToken (Write)
- airflow:GetEnvironment (Read)
- airflow:ListEnvironments (List)
- airflow:UpdateEnvironment (Write)
Athena: 47 actions
- athena:BatchGetNamedQuery (Read)
- athena:BatchGetPreparedStatement (Read)
- athena:BatchGetQueryExecution (Read)
- athena:CreateNamedQuery (Write)
- athena:CreateNotebook (Write)
- athena:CreatePreparedStatement (Write)
- athena:CreatePresignedNotebookUrl (Write)
- athena:DeleteNamedQuery (Write)
- athena:DeleteNotebook (Write)
- athena:DeletePreparedStatement (Write)
- athena:ExportNotebook (Write)
- athena:GetCalculationExecution (Read)
- athena:GetCalculationExecutionCode (Read)
- athena:GetCalculationExecutionStatus (Read)
- athena:GetDataCatalog (Read)
- athena:GetDatabase (Read)
- athena:GetNamedQuery (Read)
- athena:GetNotebookMetadata (Read)
- athena:GetPreparedStatement (Read)
- athena:GetQueryExecution (Read)
- athena:GetQueryResults (Read)
- athena:GetQueryResultsStream (Read)
- athena:GetQueryRuntimeStatistics (Read)
- athena:GetSession (Read)
- athena:GetSessionStatus (Read)
- athena:GetTableMetadata (Read)
- athena:GetWorkGroup (Read)
- athena:ImportNotebook (Write)
- athena:ListDataCatalogs (List)
- athena:ListDatabases (List)
- athena:ListEngineVersions (Read)
- athena:ListNamedQueries (List)
- athena:ListPreparedStatements (List)
- athena:ListQueryExecutions (Read)
- athena:ListTableMetadata (Read)
- athena:ListTagsForResource (Read)
- athena:ListWorkGroups (List)
- athena:StartCalculationExecution (Write)
- athena:StartQueryExecution (Write)
- athena:StartSession (Write)
- athena:StopCalculationExecution (Write)
- athena:StopQueryExecution (Write)
- athena:TerminateSession (Write)
- athena:UpdateNamedQuery (Write)
- athena:UpdateNotebook (Write)
- athena:UpdateNotebookMetadata (Write)
- athena:UpdatePreparedStatement (Write)
Bedrock: 40 actions
- bedrock:BatchDeleteEvaluationJob (Write)
- bedrock:CreateAgentAlias (Write)
- bedrock:CreateBlueprint (Write)
- bedrock:CreateBlueprintVersion (Write)
- bedrock:CreateDataAutomationProject (Write)
- bedrock:CreateEvaluationJob (Write)
- bedrock:CreatePrompt (Write)
- bedrock:CreatePromptVersion (Write)
- bedrock:DeleteAgentAlias (Write)
- bedrock:DeleteAgentVersion (Write)
- bedrock:DeleteBlueprint (Write)
- bedrock:DeleteDataAutomationProject (Write)
- bedrock:DeletePrompt (Write)
- bedrock:GetAgentAlias (Read)
- bedrock:GetAgentVersion (Read)
- bedrock:GetBlueprint (Read)
- bedrock:GetDataAutomationProject (Read)
- bedrock:GetEvaluationJob (Read)
- bedrock:GetInferenceProfile (Read)
- bedrock:GetIngestionJob (Read)
- bedrock:GetKnowledgeBase (Read)
- bedrock:GetPrompt (Read)
- bedrock:InvokeModelWithResponseStream (Read)
- bedrock:ListAgentActionGroups (List)
- bedrock:ListAgentAliases (List)
- bedrock:ListAgentKnowledgeBases (List)
- bedrock:ListAgentVersions (List)
- bedrock:ListEvaluationJobs (List)
- bedrock:ListFoundationModels (List)
- bedrock:ListInferenceProfiles (List)
- bedrock:ListIngestionJobs (List)
- bedrock:ListKnowledgeBases (List)
- bedrock:ListPrompts (List)
- bedrock:ListTagsForResource (Read)
- bedrock:StartIngestionJob (Write)
- bedrock:StopEvaluationJob (Write)
- bedrock:TagResource (Tagging)
- bedrock:UpdateAgentAlias (Write)
- bedrock:UpdateBlueprint (Write)
- bedrock:UpdateDataAutomationProject (Write)
CloudFormation: 3 actions
- cloudformation:DescribeStacks (List)
- cloudformation:GetTemplate (Read)
- cloudformation:ListStackResources (List)
CodeCommit: 61 actions
- codecommit:BatchDescribeMergeConflicts (Read)
- codecommit:BatchGetCommits (Read)
- codecommit:BatchGetPullRequests (Read)
- codecommit:BatchGetRepositories (Read)
- codecommit:CreateBranch (Write)
- codecommit:CreateCommit (Write)
- codecommit:CreatePullRequest (Write)
- codecommit:DeleteBranch (Write)
- codecommit:DeleteFile (Write)
- codecommit:DescribeMergeConflicts (Read)
- codecommit:DescribePullRequestEvents (Read)
- codecommit:GetBlob (Read)
- codecommit:GetBranch (Read)
- codecommit:GetComment (Read)
- codecommit:GetCommentReactions (Read)
- codecommit:GetCommentsForComparedCommit (Read)
- codecommit:GetCommentsForPullRequest (Read)
- codecommit:GetCommit (Read)
- codecommit:GetCommitHistory (Read)
- codecommit:GetCommitsFromMergeBase (Read)
- codecommit:GetDifferences (Read)
- codecommit:GetFile (Read)
- codecommit:GetFolder (Read)
- codecommit:GetMergeCommit (Read)
- codecommit:GetMergeConflicts (Read)
- codecommit:GetMergeOptions (Read)
- codecommit:GetObjectIdentifier (Read)
- codecommit:GetPullRequest (Read)
- codecommit:GetPullRequestApprovalStates (Read)
- codecommit:GetPullRequestOverrideState (Read)
- codecommit:GetReferences (Read)
- codecommit:GetRepository (Read)
- codecommit:GetRepositoryTriggers (Read)
- codecommit:GetTree (Read)
- codecommit:GetUploadArchiveStatus (Read)
- codecommit:GitPull (Read)
- codecommit:GitPush (Write)
- codecommit:ListAssociatedApprovalRuleTemplatesForRepository (List)
- codecommit:ListBranches (List)
- codecommit:ListFileCommitHistory (List)
- codecommit:ListPullRequests (List)
- codecommit:ListTagsForResource (List)
- codecommit:MergeBranchesByFastForward (Write)
- codecommit:MergeBranchesBySquash (Write)
- codecommit:MergeBranchesByThreeWay (Write)
- codecommit:MergePullRequestByFastForward (Write)
- codecommit:MergePullRequestBySquash (Write)
- codecommit:MergePullRequestByThreeWay (Write)
- codecommit:PostCommentForComparedCommit (Write)
- codecommit:PostCommentForPullRequest (Write)
- codecommit:PostCommentReply (Write)
- codecommit:PutCommentReaction (Write)
- codecommit:PutFile (Write)
- codecommit:UpdateComment (Write)
- codecommit:UpdateDefaultBranch (Write)
- codecommit:UpdatePullRequestApprovalRuleContent (Write)
- codecommit:UpdatePullRequestApprovalState (Write)
- codecommit:UpdatePullRequestDescription (Write)
- codecommit:UpdatePullRequestStatus (Write)
- codecommit:UpdatePullRequestTitle (Write)
- codecommit:UpdateRepositoryDescription (Write)
CodeConnections: 5 actions
- codeconnections:GetConnection (Read)
- codeconnections:GetHost (Read)
- codeconnections:ListConnections (List)
- codeconnections:ListTagsForResource (List)
- codeconnections:UseConnection (Read)
CodeStar Connections: 5 actions
- codestar-connections:GetConnection (Read)
- codestar-connections:GetHost (Read)
- codestar-connections:ListConnections (List)
- codestar-connections:ListTagsForResource (List)
- codestar-connections:UseConnection (Read)
CodeWhisperer: 1 actions
- codewhisperer:GenerateRecommendations (Read)
DataZone: 21 actions
- datazone:CreateConnection (Write)
- datazone:DeleteConnection (Write)
- datazone:GetCompute (Read)
- datazone:GetConnection (Read)
- datazone:GetDomain (Read)
- datazone:GetDomainExecutionRoleCredentials (Read)
- datazone:GetEnvironment (Read)
- datazone:GetEnvironmentBlueprintConfiguration (Read)
- datazone:GetNotebookCompute (Read)
- datazone:GetProject (Read)
- datazone:GetUserProfile (Read)
- datazone:ListConnections (List)
- datazone:ListEnvironmentBlueprints (List)
- datazone:ListEnvironments (List)
- datazone:ListProjects (List)
- datazone:PostLineageEvent (Write)
- datazone:StartCompute (Write)
- datazone:StartNotebookCompute (Write)
- datazone:StopCompute (Write)
- datazone:StopNotebookCompute (Write)
- datazone:UpdateConnection (Write)
DynamoDB: 1 actions
- dynamodb:ListTables (List)
EC2: 13 actions
- ec2:AttachNetworkInterface (Write)
- ec2:CreateNetworkInterface (Write)
- ec2:CreateTags (Tagging)
- ec2:DeleteNetworkInterface (Write)
- ec2:DeleteTags (Tagging)
- ec2:DescribeInstanceTypes (List)
- ec2:DescribeNetworkInterfaces (List)
- ec2:DescribeRouteTables (List)
- ec2:DescribeSecurityGroups (List)
- ec2:DescribeSubnets (List)
- ec2:DescribeVpcEndpoints (List)
- ec2:DescribeVpcs (List)
- ec2:DetachNetworkInterface (Write)
Elastic Container Registry: 13 actions
- ecr:BatchCheckLayerAvailability (Read)
- ecr:BatchDeleteImage (Write)
- ecr:CompleteLayerUpload (Write)
- ecr:CreateRepository (Write)
- ecr:DeleteRepository (Write)
- ecr:DescribeRepositories (Read)
- ecr:InitiateLayerUpload (Write)
- ecr:ListImages (List)
- ecr:ListTagsForResource (Read)
- ecr:PutImage (Write)
- ecr:TagResource (Tagging)
- ecr:UntagResource (Tagging)
- ecr:UploadLayerPart (Write)
EMR: 25 actions
- elasticmapreduce:AddTags (Tagging)
- elasticmapreduce:CreatePersistentAppUI (Write)
- elasticmapreduce:CreateStudioSessionMapping (Write)
- elasticmapreduce:DeleteStudioSessionMapping (Write)
- elasticmapreduce:DescribeCluster (Read)
- elasticmapreduce:DescribePersistentAppUI (Read)
- elasticmapreduce:GetClusterSessionCredentials (Write)
- elasticmapreduce:GetManagedScalingPolicy (Read)
- elasticmapreduce:GetOnClusterAppUIPresignedURL (Write)
- elasticmapreduce:GetPersistentAppUIPresignedURL (Write)
- elasticmapreduce:GetSession (Read)
- elasticmapreduce:GetSessionEndpoint (Write)
- elasticmapreduce:GetStudioSessionMapping (Read)
- elasticmapreduce:ListBootstrapActions (Read)
- elasticmapreduce:ListClusters (List)
- elasticmapreduce:ListInstanceFleets (Read)
- elasticmapreduce:ListInstanceGroups (Read)
- elasticmapreduce:ListInstances (Read)
- elasticmapreduce:ListReleaseLabels (List)
- elasticmapreduce:ListSessions (List)
- elasticmapreduce:ListStudioSessionMappings (List)
- elasticmapreduce:ListSupportedInstanceTypes (List)
- elasticmapreduce:StartSession (Write)
- elasticmapreduce:TerminateSession (Write)
- elasticmapreduce:UpdateStudioSessionMapping (Write)
EMR Containers: 8 actions
- emr-containers:CreateManagedEndpoint (Write)
- emr-containers:DeleteManagedEndpoint (Write)
- emr-containers:DescribeManagedEndpoint (Read)
- emr-containers:DescribeSecurityConfiguration (Read)
- emr-containers:DescribeVirtualCluster (Read)
- emr-containers:GetManagedEndpointSessionCredentials (Write)
- emr-containers:ListManagedEndpoints (List)
- emr-containers:TagResource (Tagging)
EMR Serverless: 15 actions
- emr-serverless:AccessInteractiveEndpoints (Write)
- emr-serverless:AccessLivyEndpoints (Write)
- emr-serverless:GetApplication (Read)
- emr-serverless:GetDashboardForJobRun (Read)
- emr-serverless:GetJobRun (Read)
- emr-serverless:GetResourceDashboard (Read)
- emr-serverless:GetSession (Read)
- emr-serverless:GetSessionEndpoint (Read)
- emr-serverless:ListSessions (List)
- emr-serverless:StartApplication (Write)
- emr-serverless:StartJobRun (Write)
- emr-serverless:StartSession (Write)
- emr-serverless:StopApplication (Write)
- emr-serverless:TagResource (Tagging)
- emr-serverless:TerminateSession (Write)
Glue: 142 actions
- glue:AccessDataQualityRuntimeConfiguration (Read)
- glue:BatchCreatePartition (Write)
- glue:BatchDeletePartition (Write)
- glue:BatchDeleteTable (Write)
- glue:BatchDeleteTableVersion (Write)
- glue:BatchGetJobs (Read)
- glue:BatchGetPartition (Read)
- glue:BatchGetTableOptimizer (Read)
- glue:BatchStopJobRun (Write)
- glue:BatchUpdatePartition (Write)
- glue:CancelDataQualityRuleRecommendationRun (Write)
- glue:CancelDataQualityRulesetEvaluationRun (Write)
- glue:CancelStatement (Write)
- glue:CreateBlueprint (Write)
- glue:CreateColumnStatisticsTaskSettings (Write)
- glue:CreateDataQualityRuleset (Write)
- glue:CreateDatabase (Write)
- glue:CreateIntegrationTableProperties (Write)
- glue:CreateJob (Write)
- glue:CreatePartition (Write)
- glue:CreatePartitionIndex (Write)
- glue:CreateSession (Write)
- glue:CreateTable (Write)
- glue:CreateTableOptimizer (Write)
- glue:CreateWorkflow (Write)
- glue:DeleteBlueprint (Write)
- glue:DeleteColumnStatisticsForPartition (Write)
- glue:DeleteColumnStatisticsForTable (Write)
- glue:DeleteColumnStatisticsTaskSettings (Write)
- glue:DeleteDataQualityRuleset (Write)
- glue:DeleteDatabase (Write)
- glue:DeleteIntegrationTableProperties (Write)
- glue:DeleteJob (Write)
- glue:DeletePartition (Write)
- glue:DeletePartitionIndex (Write)
- glue:DeleteResourcePolicy (Permissions management)
- glue:DeleteSession (Write)
- glue:DeleteTable (Write)
- glue:DeleteTableOptimizer (Write)
- glue:DeleteTableVersion (Write)
- glue:DeleteWorkflow (Write)
- glue:DescribeConnectionType (Permissions management)
- glue:DescribeEntity (Permissions management)
- glue:GetCatalog (Read)
- glue:GetCatalogImportStatus (Read)
- glue:GetCatalogs (Read)
- glue:GetClassifier (Read)
- glue:GetClassifiers (Read)
- glue:GetColumnStatisticsForPartition (Read)
- glue:GetColumnStatisticsForTable (Read)
- glue:GetColumnStatisticsTaskRun (Read)
- glue:GetColumnStatisticsTaskRuns (Read)
- glue:GetColumnStatisticsTaskSettings (Read)
- glue:GetCompletion (Read)
- glue:GetConnection (Read)
- glue:GetConnections (Read)
- glue:GetDashboardUrl (Read)
- glue:GetDataPreviewStatement (Permissions management)
- glue:GetDataQualityModel (Read)
- glue:GetDataQualityModelResult (Read)
- glue:GetDataQualityResult (Read)
- glue:GetDataQualityRuleRecommendationRun (Read)
- glue:GetDataQualityRuleset (Read)
- glue:GetDataQualityRulesetEvaluationRun (Read)
- glue:GetDatabase (Read)
- glue:GetDatabases (Read)
- glue:GetEntityRecords (Read)
- glue:GetGeneratedCode (Read)
- glue:GetIntegrationTableProperties (Read)
- glue:GetJob (Read)
- glue:GetJobRun (Read)
- glue:GetJobRuns (Read)
- glue:GetPartition (Read)
- glue:GetPartitionIndexes (Read)
- glue:GetPartitions (Read)
- glue:GetSession (Read)
- glue:GetSessionEndpoint (Read)
- glue:GetStatement (Read)
- glue:GetSystemLogsForSession (Read)
- glue:GetTable (Read)
- glue:GetTableOptimizer (Read)
- glue:GetTableVersion (Read)
- glue:GetTableVersions (Read)
- glue:GetTables (Read)
- glue:GetTags (Read)
- glue:GetUserDefinedFunction (Read)
- glue:GetUserDefinedFunctions (Read)
- glue:ListColumnStatisticsTaskRuns (Read)
- glue:ListConnectionTypes (Permissions management)
- glue:ListCrawls (List)
- glue:ListDataQualityResults (List)
- glue:ListDataQualityRuleRecommendationRuns (List)
- glue:ListDataQualityRulesetEvaluationRuns (List)
- glue:ListDataQualityRulesets (List)
- glue:ListEntities (Permissions management)
- glue:ListJobs (List)
- glue:ListSessions (List)
- glue:ListStatements (List)
- glue:ListTableOptimizerRuns (List)
- glue:ManagedConnector (Permissions management)
- glue:NotifyEvent (Write)
- glue:PassConnection (Write)
- glue:PublishDataQuality (Write)
- glue:PutDataQualityProfileAnnotation (Write)
- glue:PutDataQualityStatisticAnnotation (Write)
- glue:PutResourcePolicy (Permissions management)
- glue:PutWorkflowRunProperties (Write)
- glue:RefreshOAuth2Tokens (Permissions management)
- glue:RenameTable (Write)
- glue:ResumeWorkflowRun (Write)
- glue:RunDataPreviewStatement (Permissions management)
- glue:RunStatement (Write)
- glue:SearchTables (Read)
- glue:StartBlueprintRun (Write)
- glue:StartColumnStatisticsTaskRun (Write)
- glue:StartColumnStatisticsTaskRunSchedule (Write)
- glue:StartCompletion (Write)
- glue:StartDataQualityRuleRecommendationRun (Write)
- glue:StartDataQualityRulesetEvaluationRun (Write)
- glue:StartJobRun (Write)
- glue:StartWorkflowRun (Write)
- glue:StopColumnStatisticsTaskRun (Write)
- glue:StopColumnStatisticsTaskRunSchedule (Write)
- glue:StopSession (Write)
- glue:StopWorkflowRun (Write)
- glue:TagResource (Tagging)
- glue:TestConnection (Permissions management)
- glue:UntagResource (Tagging)
- glue:UpdateBlueprint (Write)
- glue:UpdateCatalog (Write)
- glue:UpdateColumnStatisticsForPartition (Write)
- glue:UpdateColumnStatisticsForTable (Write)
- glue:UpdateColumnStatisticsTaskSettings (Write)
- glue:UpdateDataQualityRuleset (Write)
- glue:UpdateDatabase (Write)
- glue:UpdateIntegrationTableProperties (Write)
- glue:UpdateJob (Write)
- glue:UpdatePartition (Write)
- glue:UpdateTable (Write)
- glue:UpdateTableOptimizer (Write)
- glue:UpdateWorkflow (Write)
- glue:UseGlueStudio (Permissions management)
IAM: 3 actions
- iam:GetRole (Read)
- iam:ListRoles (List)
- iam:PassRole (Write)
KMS: 12 actions
- kms:CreateGrant (Permissions management)
- kms:Decrypt (Write)
- kms:DescribeKey (Read)
- kms:Encrypt (Write)
- kms:GenerateDataKey (Write)
- kms:GenerateDataKeyWithoutPlaintext (Write)
- kms:GetPublicKey (Read)
- kms:ListAliases (List)
- kms:ListGrants (List)
- kms:ReEncryptFrom (Write)
- kms:ReEncryptTo (Write)
- kms:RevokeGrant (Permissions management)
Lake Formation: 11 actions
- lakeformation:BatchGrantPermissions (Permissions management)
- lakeformation:BatchRevokePermissions (Permissions management)
- lakeformation:CreateDataCellsFilter (Write)
- lakeformation:DeleteDataCellsFilter (Write)
- lakeformation:DescribeResource (Read)
- lakeformation:GetDataAccess (Write)
- lakeformation:GetDataCellsFilter (Read)
- lakeformation:GetResourceLFTags (Read)
- lakeformation:ListDataCellsFilter (List)
- lakeformation:ListPermissions (List)
- lakeformation:UpdateDataCellsFilter (Write)
CloudWatch Logs: 12 actions
- logs:CreateLogGroup (Write)
- logs:CreateLogStream (Write)
- logs:DescribeLogGroups (List)
- logs:DescribeLogStreams (List)
- logs:FilterLogEvents (Read)
- logs:GetLogEvents (Read)
- logs:GetLogGroupFields (Read)
- logs:GetLogRecord (Read)
- logs:GetQueryResults (Read)
- logs:PutLogEvents (Write)
- logs:StartQuery (Read)
- logs:StopQuery (Read)
Price List: 1 actions
- pricing:GetProducts (Read)
Q: 2 actions
- q:SendMessage (Write)
- q:StartConversation (Write)
QuickSight: 12 actions
- quicksight:CreateDataSet (Write)
- quicksight:CreateFolderMembership (Write)
- quicksight:DescribeAccountSubscription (Read)
- quicksight:DescribeDataSet (Read)
- quicksight:DescribeDataSource (Read)
- quicksight:DescribeFolder (Read)
- quicksight:DescribeFolderPermissions (Read)
- quicksight:DescribeGroup (Read)
- quicksight:DescribeUser (Read)
- quicksight:ListFolderMembers (Read)
- quicksight:PassDataSource (Read)
- quicksight:TagResource (Tagging)
Resource Access Manager: 11 actions
- ram:AcceptResourceShareInvitation (Write)
- ram:AssociateResourceShare (Write)
- ram:AssociateResourceSharePermission (Write)
- ram:CreateResourceShare (Write)
- ram:DeleteResourceShare (Write)
- ram:DisassociateResourceShare (Write)
- ram:GetResourceShareInvitations (Read)
- ram:GetResourceShares (Read)
- ram:ListResourceSharePermissions (List)
- ram:ListResources (List)
- ram:UpdateResourceShare (Write)
Redshift: 3 actions
- redshift:DescribeClusters (List)
- redshift:DescribeTags (Read)
- redshift:GetClusterCredentialsWithIAM (Write)
Redshift Data API: 11 actions
- redshift-data:BatchExecuteStatement (Write)
- redshift-data:CancelStatement (Write)
- redshift-data:DescribeStatement (Read)
- redshift-data:DescribeTable (Read)
- redshift-data:ExecuteStatement (Write)
- redshift-data:GetStagingBucketLocation (Read)
- redshift-data:GetStatementResult (Read)
- redshift-data:ListDatabases (Read)
- redshift-data:ListSchemas (Read)
- redshift-data:ListStatements (List)
- redshift-data:ListTables (List)
Redshift Serverless: 7 actions
- redshift-serverless:GetCredentials (Write)
- redshift-serverless:GetManagedWorkgroup (Read)
- redshift-serverless:GetNamespace (Read)
- redshift-serverless:GetWorkgroup (Read)
- redshift-serverless:ListNamespaces (List)
- redshift-serverless:ListTagsForResource (List)
- redshift-serverless:ListWorkgroups (List)
S3: 14 actions
- s3:GetAccountPublicAccessBlock (Read)
- s3:GetBucketAcl (Read)
- s3:GetBucketLocation (Read)
- s3:GetBucketPublicAccessBlock (Read)
- s3:GetEncryptionConfiguration (Read)
- s3:GetObjectAnnotation (Read)
- s3:GetObjectAttributes (Read)
- s3:GetObjectTorrent (Read)
- s3:GetObjectVersionAnnotation (Read)
- s3:GetObjectVersionAnnotationForReplication (Read)
- s3:GetObjectVersionAttributes (Read)
- s3:GetObjectVersionForReplication (Read)
- s3:GetObjectVersionTorrent (Read)
- s3:ReplicateObject (Write)
EventBridge Scheduler: 5 actions
- scheduler:CreateSchedule (Write)
- scheduler:DeleteSchedule (Write)
- scheduler:GetSchedule (Read)
- scheduler:GetScheduleGroup (Read)
- scheduler:UpdateSchedule (Write)
Secrets Manager: 4 actions
- secretsmanager:DescribeSecret (Read)
- secretsmanager:GetSecretValue (Read)
- secretsmanager:ListSecrets (List)
- secretsmanager:PutSecretValue (Write)
SQL Workbench: 32 actions
- sqlworkbench:AssociateNotebookWithTab (Write)
- sqlworkbench:BatchGetNotebookCell (Read)
- sqlworkbench:CreateConnection (Write)
- sqlworkbench:CreateNotebook (Write)
- sqlworkbench:CreateNotebookCell (Write)
- sqlworkbench:CreateNotebookFromVersion (Write)
- sqlworkbench:CreateNotebookVersion (Write)
- sqlworkbench:DeleteNotebook (Write)
- sqlworkbench:DeleteNotebookCell (Write)
- sqlworkbench:DeleteNotebookVersion (Write)
- sqlworkbench:DeleteQCustomContext (Write)
- sqlworkbench:DeleteTab (Write)
- sqlworkbench:DriverExecute (Write)
- sqlworkbench:ExportNotebook (Read)
- sqlworkbench:GetAutocompletionMetadata (Read)
- sqlworkbench:GetAutocompletionResource (Read)
- sqlworkbench:GetNotebook (Read)
- sqlworkbench:GetQCustomContext (Read)
- sqlworkbench:GetQSqlPromptQuotas (Read)
- sqlworkbench:GetQSqlRecommendations (Read)
- sqlworkbench:GetQueryExecutionHistory (Read)
- sqlworkbench:GetSchemaInference (Read)
- sqlworkbench:GetUserInfo (Read)
- sqlworkbench:ListQueryExecutionHistory (List)
- sqlworkbench:ListTabs (List)
- sqlworkbench:PassAccountSettings (Write)
- sqlworkbench:PutQCustomContext (Write)
- sqlworkbench:PutTab (Write)
- sqlworkbench:TagResource (Tagging)
- sqlworkbench:UpdateNotebook (Write)
- sqlworkbench:UpdateNotebookCellContent (Write)
- sqlworkbench:UpdateNotebookCellLayout (Write)
SQS: 6 actions
- sqs:ChangeMessageVisibility (Write)
- sqs:DeleteMessage (Write)
- sqs:GetQueueAttributes (Read)
- sqs:GetQueueUrl (Read)
- sqs:ReceiveMessage (Read)
- sqs:SendMessage (Write)
IAM Identity Center: 1 actions
- sso:DescribeApplication (Read)
STS: 4 actions
- sts:AssumeRole (Write)
- sts:SetContext (Write)
- sts:SetSourceIdentity (Write)
- sts:TagSession (Tagging)
Resource Group Tagging: 1 actions
- tag:GetResources (Read)
Data-plane actions (32)
By access level: 3 List, 17 Read, 1 Tagging, 11 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| MWAA | All 1 actions (see the MWAA page) | 1 Write; 1 restricted, 0 conditional | airflow:InvokeRestApi |
| Bedrock | 9 of 37 | 7 Read, 2 Write; 9 restricted, 9 conditional | bedrock:ApplyGuardrail, bedrock:GetDataAutomationStatus, bedrock:InvokeAgent, bedrock:InvokeDataAutomationAsync, bedrock:InvokeFlow, bedrock:InvokeInlineAgent, bedrock:InvokeModel, bedrock:Retrieve, bedrock:RetrieveAndGenerate |
| CloudWatch | 3 of 5 | 2 Read, 1 Write; 1 restricted, 1 conditional | cloudwatch:GetMetricData, cloudwatch:GetMetricStatistics, cloudwatch:PutMetricData |
| Lambda | 1 of 14 | 1 Write; 1 restricted, 1 conditional | lambda:InvokeFunction |
| S3 | 18 of 25 | 3 List, 8 Read, 1 Tagging, 6 Write; 18 restricted, 18 conditional | s3:AbortMultipartUpload, s3:DeleteObject, s3:DeleteObjectVersion, s3:GetObject*, s3:ListBucket, s3:ListBucketVersions, s3:ListMultipartUploadParts, s3:PutObject, s3:PutObjectRetention, s3:PutObjectTagging, s3:RestoreObject |
Bedrock: 9 actions
- bedrock:ApplyGuardrail (Read)
- bedrock:GetDataAutomationStatus (Read)
- bedrock:InvokeAgent (Read)
- bedrock:InvokeDataAutomationAsync (Write)
- bedrock:InvokeFlow (Read)
- bedrock:InvokeInlineAgent (Read)
- bedrock:InvokeModel (Read)
- bedrock:Retrieve (Read)
- bedrock:RetrieveAndGenerate (Write)
CloudWatch: 3 actions
- cloudwatch:GetMetricData (Read)
- cloudwatch:GetMetricStatistics (Read)
- cloudwatch:PutMetricData (Write)
Lambda: 1 actions
- lambda:InvokeFunction (Write)
S3: 18 actions
- s3:AbortMultipartUpload (Write)
- s3:DeleteObject (Write)
- s3:DeleteObjectVersion (Write)
- s3:GetObject (Read)
- s3:GetObjectAcl (Read)
- s3:GetObjectLegalHold (Read)
- s3:GetObjectRetention (Read)
- s3:GetObjectTagging (Read)
- s3:GetObjectVersion (Read)
- s3:GetObjectVersionAcl (Read)
- s3:GetObjectVersionTagging (Read)
- s3:ListBucket (List)
- s3:ListBucketVersions (List)
- s3:ListMultipartUploadParts (List)
- s3:PutObject (Write)
- s3:PutObjectRetention (Write)
- s3:PutObjectTagging (Tagging)
- s3:RestoreObject (Write)
Excluded and conditional actions
No patterns are excluded by NotAction or Deny statements.
Resource scope and attachment
Resource scope across granted actions: mixed.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants 272 write, tagging or permissions-management actions, short of full control of any service.
- Grants data-plane write actions on a data store, but only for scoped resources or under conditions.
- Grants iam:PassRole, but only for scoped roles or under conditions (for example iam:PassedToService).
Guidance
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
- AmazonCodeGuruReviewerServiceRolePolicy
- AmazonDataZoneEnvironmentRolePermissionsBoundary
- AmazonDataZoneGlueManageAccessRolePolicy
- AmazonDataZonePreviewConsoleFullAccess
- AmazonDataZoneProjectRolePermissionsBoundary
- AmazonDataZoneSageMakerEnvironmentRolePermissionsBoundary
- AmazonDataZoneSageMakerProvisioningRolePolicy
Same domain
- AmazonChimeSDKMediaPipelinesServiceLinkedRolePolicy
- AmazonChimeSDKMessagingServiceRolePolicy
- AmazonDataZoneDomainExecutionRolePolicy
- AmazonDataZoneFullAccess
- AmazonDataZoneFullUserAccess
- AmazonDataZoneRedshiftGlueProvisioningPolicy
- AmazonDataZoneRedshiftManageAccessRolePolicy
- AmazonElasticMapReduceforAutoScalingRole
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": "CodeCommit",
"Effect": "Allow",
"Action": [
"codecommit:BatchGetCommits",
"codecommit:BatchGetPullRequests",
"codecommit:BatchGetRepositories",
"codecommit:BatchDescribeMergeConflicts",
"codecommit:CreateBranch",
"codecommit:CreateCommit",
"codecommit:CreatePullRequest",
"codecommit:DeleteBranch",
"codecommit:DeleteFile",
"codecommit:DescribeMergeConflicts",
"codecommit:DescribePullRequestEvents",
"codecommit:GetBlob",
"codecommit:GetBranch",
"codecommit:GetComment",
"codecommit:GetCommentReactions",
"codecommit:GetCommentsForComparedCommit",
"codecommit:GetCommentsForPullRequest",
"codecommit:GetCommit",
"codecommit:GetCommitHistory",
"codecommit:GetCommitsFromMergeBase",
"codecommit:GetDifferences",
"codecommit:GetFile",
"codecommit:GetFolder",
"codecommit:GetMergeCommit",
"codecommit:GetMergeConflicts",
"codecommit:GetMergeOptions",
"codecommit:GetObjectIdentifier",
"codecommit:GetPullRequest",
"codecommit:GetPullRequestApprovalStates",
"codecommit:GetPullRequestOverrideState",
"codecommit:GetReferences",
"codecommit:GetRepository",
"codecommit:GetRepositoryTriggers",
"codecommit:GetTree",
"codecommit:GetUploadArchiveStatus",
"codecommit:GitPull",
"codecommit:GitPush",
"codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
"codecommit:ListBranches",
"codecommit:ListFileCommitHistory",
"codecommit:ListPullRequests",
"codecommit:ListTagsForResource",
"codecommit:MergeBranchesByFastForward",
"codecommit:MergeBranchesBySquash",
"codecommit:MergeBranchesByThreeWay",
"codecommit:MergePullRequestByFastForward",
"codecommit:MergePullRequestBySquash",
"codecommit:MergePullRequestByThreeWay",
"codecommit:UpdateComment",
"codecommit:UpdateDefaultBranch",
"codecommit:UpdatePullRequestApprovalRuleContent",
"codecommit:UpdatePullRequestApprovalState",
"codecommit:UpdatePullRequestDescription",
"codecommit:UpdatePullRequestStatus",
"codecommit:UpdatePullRequestTitle",
"codecommit:UpdateRepositoryDescription",
"codecommit:PostCommentForComparedCommit",
"codecommit:PostCommentForPullRequest",
"codecommit:PostCommentReply",
"codecommit:PutCommentReaction",
"codecommit:PutFile"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "CodeCommitKms",
"Effect": "Allow",
"Action": [
"kms:ReEncryptFrom",
"kms:ReEncryptTo",
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"Null": {
"kms:EncryptionContext:aws:codecommit:id": "false"
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": [
"codecommit.*.amazonaws.com"
]
}
}
},
{
"Sid": "CodeWhisperer",
"Effect": "Allow",
"Action": [
"codewhisperer:GenerateRecommendations"
],
"Resource": "*"
},
{
"Sid": "AllowGlueCreateEni",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource": "arn:aws:ec2:*:*:network-interface/*",
"Condition": {
"Null": {
"aws:TagKeys": "true"
},
"StringEquals": {
"glue:RoleAssumedBy": "glue.amazonaws.com"
}
}
},
{
"Sid": "GlueENIonSG",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}",
"glue:RoleAssumedBy": "glue.amazonaws.com"
}
}
},
{
"Sid": "GlueENIonSubnet",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource": "arn:aws:ec2:*:*:subnet/*",
"Condition": {
"StringEquals": {
"glue:RoleAssumedBy": "glue.amazonaws.com"
}
}
},
{
"Sid": "GlueNetwork",
"Effect": "Allow",
"Action": [
"ec2:DeleteNetworkInterface",
"ec2:AttachNetworkInterface"
],
"Resource": "arn:aws:ec2:*:*:network-interface/*",
"Condition": {
"Null": {
"aws:ResourceTag/aws-glue-service-resource": "false"
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"glue:RoleAssumedBy": "glue.amazonaws.com"
}
}
},
{
"Sid": "GlueEniOnInstance",
"Effect": "Allow",
"Action": [
"ec2:AttachNetworkInterface"
],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringEquals": {
"glue:RoleAssumedBy": "glue.amazonaws.com"
},
"StringNotEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "AllowDescribeGlueEni",
"Effect": "Allow",
"Action": [
"ec2:DescribeNetworkInterfaces"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"glue:RoleAssumedBy": "glue.amazonaws.com"
}
}
},
{
"Sid": "GlueSecret",
"Effect": "Allow",
"Action": [
"secretsmanager:DescribeSecret",
"secretsmanager:GetSecretValue"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}",
"glue:RoleAssumedBy": "glue.amazonaws.com"
}
}
},
{
"Sid": "GlueKernelPermissions",
"Effect": "Allow",
"Action": [
"ec2:DescribeVpcEndpoints",
"ec2:DescribeSubnets",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"glue:ListSessions",
"ec2:DescribeVpcs"
],
"Resource": "*"
},
{
"Sid": "GlueCreateAndTagPermissions",
"Effect": "Allow",
"Action": [
"glue:CreateSession",
"glue:CreateBlueprint",
"glue:CreateJob",
"glue:CreateDataQualityRuleset",
"glue:CreateWorkflow",
"glue:TagResource"
],
"Resource": [
"arn:aws:glue:*:*:session/*",
"arn:aws:glue:*:*:blueprint/*",
"arn:aws:glue:*:*:job/*",
"arn:aws:glue:*:*:dataQualityRuleset/*",
"arn:aws:glue:*:*:workflow/*"
],
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"AmazonDataZone*",
"ProjectUserTag*"
]
},
"Null": {
"aws:TagKeys": "false"
},
"StringEquals": {
"aws:PrincipalTag/EnableGlueWorkloadsPermissions": "true",
"aws:RequestTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "GlueTagSessionPermissions",
"Effect": "Allow",
"Action": [
"glue:TagResource",
"glue:UntagResource"
],
"Resource": [
"arn:aws:glue:*:*:session/*",
"arn:aws:glue:*:*:blueprint/*",
"arn:aws:glue:*:*:job/*",
"arn:aws:glue:*:*:dataQualityRuleset/*",
"arn:aws:glue:*:*:workflow/*"
],
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"ProjectUserTag*"
]
},
"ForAllValues:StringNotLike": {
"aws:TagKeys": [
"AmazonDataZone*"
]
},
"StringEquals": {
"aws:PrincipalTag/EnableGlueWorkloadsPermissions": "true",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "GluePermissions",
"Effect": "Allow",
"Action": [
"glue:*Session*",
"glue:*Statement*",
"glue:GetDashboardUrl",
"glue:NotifyEvent",
"glue:StartBlueprintRun",
"glue:PutWorkflowRunProperties",
"glue:DeleteJob",
"glue:DeleteWorkflow",
"glue:DeleteBlueprint",
"glue:UpdateWorkflow",
"glue:UpdateJob",
"glue:StartWorkflowRun",
"glue:ResumeWorkflowRun",
"glue:UpdateBlueprint",
"glue:BatchStopJobRun",
"glue:StopWorkflowRun",
"glue:StartJobRun",
"glue:*DataQuality*",
"glue:GetJobRun",
"glue:GetJobRuns",
"glue:BatchGetJobs",
"glue:GetJob"
],
"Resource": [
"arn:aws:glue:*:*:session/*",
"arn:aws:glue:*:*:blueprint/*",
"arn:aws:glue:*:*:job/*",
"arn:aws:glue:*:*:dataQualityRuleset/*",
"arn:aws:glue:*:*:workflow/*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableGlueWorkloadsPermissions": "true",
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "GlueDQ",
"Effect": "Allow",
"Action": "glue:ListDataQuality*",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableGlueWorkloadsPermissions": "true"
}
}
},
{
"Sid": "GlueDQVetl",
"Effect": "Allow",
"Action": [
"glue:*DataQuality*"
],
"Resource": [
"arn:aws:glue:*:*:dataQualityRuleset/dq_etl_ruleset_${aws:PrincipalTag/AmazonDataZoneProject}_*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableGlueWorkloadsPermissions": "true"
}
}
},
{
"Sid": "GlueListJobs",
"Effect": "Allow",
"Action": [
"glue:ListJobs"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableGlueWorkloadsPermissions": "true",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "GlueVisualETL",
"Effect": "Allow",
"Action": [
"glue:GetGeneratedCode"
],
"Resource": "*"
},
{
"Sid": "GlueCompletions",
"Effect": "Allow",
"Action": [
"glue:StartCompletion",
"glue:GetCompletion"
],
"Resource": [
"arn:aws:glue:*:*:completion/*",
"arn:aws:glue:*:*:job/*"
]
},
{
"Sid": "GlueJobRunnerSessionLog",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:log-group:/aws-glue/*"
},
{
"Sid": "EC2TagsForGlue",
"Effect": "Allow",
"Action": [
"ec2:DeleteTags",
"ec2:CreateTags"
],
"Resource": [
"arn:aws:ec2:*:*:network-interface/*"
],
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"aws-glue-*"
]
},
"Null": {
"aws:TagKeys": "false"
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"glue:RoleAssumedBy": "glue.amazonaws.com"
}
}
},
{
"Sid": "GlueKmsPermissions",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey"
],
"Resource": [
"arn:aws:kms:*:*:key/${aws:PrincipalTag/DefaultGlueCatalogKmsKeyId}",
"arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}"
],
"Condition": {
"StringEquals": {
"kms:EncryptionContext:glue_catalog_id": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": [
"glue.*.amazonaws.com"
]
}
}
},
{
"Sid": "EMRS",
"Effect": "Allow",
"Action": [
"emr-serverless:AccessInteractiveEndpoints",
"emr-serverless:AccessLivyEndpoints",
"emr-serverless:GetApplication",
"emr-serverless:StartApplication",
"emr-serverless:StopApplication",
"emr-serverless:GetDashboardForJobRun",
"emr-serverless:GetJobRun",
"emr-serverless:*Session*",
"emr-serverless:GetResourceDashboard",
"emr-serverless:TagResource",
"emr-serverless:StartJobRun"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "AirflowActionsForTaggedEnvironments",
"Effect": "Allow",
"Action": [
"airflow:GetEnvironment",
"airflow:UpdateEnvironment"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "AirflowListEnvironments",
"Effect": "Allow",
"Action": [
"airflow:ListEnvironments"
],
"Resource": "*"
},
{
"Sid": "AirflowUiApiAccess",
"Effect": "Allow",
"Action": [
"airflow:CreateWebLoginToken",
"airflow:InvokeRestApi"
],
"Resource": [
"arn:aws:airflow:*:*:role/DataZoneMWAAEnv-${aws:PrincipalTag/AmazonDataZoneDomain}-${aws:PrincipalTag/AmazonDataZoneProject}-${aws:PrincipalTag/AmazonDataZoneScopeName}/User"
]
},
{
"Sid": "AirflowCloudwatchLogsActions",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:CreateLogGroup",
"logs:DescribeLogStreams",
"logs:PutLogEvents",
"logs:GetLogEvents",
"logs:GetLogRecord",
"logs:GetLogGroupFields",
"logs:GetQueryResults"
],
"Resource": [
"arn:aws:logs:*:*:log-group:airflow-DataZoneMWAAEnv-${aws:PrincipalTag/AmazonDataZoneDomain}-${aws:PrincipalTag/AmazonDataZoneProject}-${aws:PrincipalTag/AmazonDataZoneScopeName}-*",
"arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/agent-builder/${aws:PrincipalTag/AmazonDataZoneProject}/evaluations*"
]
},
{
"Sid": "AirflowCloudwatchActions",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData"
],
"Resource": "*",
"Condition": {
"StringLike": {
"cloudwatch:namespace": "AmazonMWAA"
}
}
},
{
"Sid": "CWPutMetrics",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData"
],
"Resource": "*",
"Condition": {
"StringLike": {
"cloudwatch:namespace": [
"Glue",
"AWS/Glue",
"Glue Data Quality",
"bedrock-agentcore"
]
}
}
},
{
"Sid": "AirflowS3GetAccountPublicAccessBlock",
"Effect": "Allow",
"Action": "s3:GetAccountPublicAccessBlock",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "AirflowSqsActions",
"Effect": "Allow",
"Action": [
"sqs:ChangeMessageVisibility",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes",
"sqs:GetQueueUrl",
"sqs:ReceiveMessage",
"sqs:SendMessage"
],
"Resource": [
"arn:aws:sqs:*:*:airflow-celery-*"
],
"Condition": {
"StringNotEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "AirflowS3BucketActions",
"Effect": "Allow",
"Action": [
"s3:GetEncryptionConfiguration",
"s3:GetBucketPublicAccessBlock"
],
"Resource": "arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "DataLakeS3BucketActions",
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "DataLakeCrossAccountS3Permissions",
"Effect": "Allow",
"Action": [
"s3:GetObject*",
"s3:ListMultipartUploadParts",
"s3:ListBucket"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "DataLakeCrossAccountKMSPermissions",
"Effect": "Allow",
"Action": [
"kms:ListGrants",
"kms:GetPublicKey",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:ViaService": "s3.*.amazonaws.com"
},
"StringNotEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "XAcctKmsDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"kms:EncryptionContextKeys": "aws:s3:arn"
},
"StringLike": {
"kms:ViaService": "s3.*.amazonaws.com"
},
"StringNotEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "ListDomainS3BucketPermissions",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions"
],
"Resource": "arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"s3:prefix": [
"${aws:PrincipalTag/AmazonDataZoneDomain}/${aws:PrincipalTag/AmazonDataZoneProject}",
"${aws:PrincipalTag/AmazonDataZoneDomain}/${aws:PrincipalTag/AmazonDataZoneProject}/*"
]
},
"StringNotEquals": {
"aws:PrincipalTag/AmazonDataZoneDomain": "",
"aws:PrincipalTag/AmazonDataZoneProject": "",
"aws:PrincipalTag/DomainBucketName": ""
}
}
},
{
"Sid": "AirflowListDomainS3Permissions",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringNotEquals": {
"aws:PrincipalTag/DomainBucketName": ""
}
}
},
{
"Sid": "ListDomainBucketFromAthenaCatalog",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}"
],
"Condition": {
"ArnEquals": {
"lambda:SourceFunctionArn": "arn:aws:lambda:*:*:function:athenafederatedcatalog_*"
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "DomainS3BucketPermissions",
"Effect": "Allow",
"Action": [
"s3:GetObject*",
"s3:PutObject",
"s3:PutObjectRetention",
"s3:RestoreObject",
"s3:ReplicateObject",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}/${aws:PrincipalTag/AmazonDataZoneDomain}/${aws:PrincipalTag/AmazonDataZoneProject}/*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringNotEquals": {
"aws:PrincipalTag/AmazonDataZoneDomain": "",
"aws:PrincipalTag/AmazonDataZoneProject": "",
"aws:PrincipalTag/DomainBucketName": ""
}
}
},
{
"Sid": "S3BucketAcl",
"Effect": "Allow",
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "BREvalS3Tag",
"Effect": "Allow",
"Action": "s3:PutObjectTagging",
"Resource": "arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}/${aws:PrincipalTag/AmazonDataZoneDomain}/${aws:PrincipalTag/AmazonDataZoneProject}/genAI/assets/evaluations/*",
"Condition": {
"ForAllValues:StringEquals": {
"s3:RequestObjectTagKeys": [
"BasicValidationStatus",
"ContainsReferenceResponseForAllPrompts"
]
},
"StringEquals": {
"s3:RequestObjectTag/BasicValidationStatus": [
"valid",
"invalid"
],
"s3:RequestObjectTag/ContainsReferenceResponseForAllPrompts": [
"true",
"false"
]
},
"StringNotEquals": {
"aws:PrincipalTag/AmazonDataZoneDomain": "",
"aws:PrincipalTag/AmazonDataZoneProject": "",
"aws:PrincipalTag/DomainBucketName": ""
}
}
},
{
"Sid": "DomainS3BucketKmsPermissions",
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"ArnLike": {
"kms:EncryptionContext:aws:s3:arn": [
"arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}",
"arn:aws:s3:::${aws:PrincipalTag/DomainBucketName}/*"
]
},
"StringLike": {
"kms:ViaService": "s3.*.amazonaws.com"
}
}
},
{
"Sid": "DZDomainKMSKeyXAcctPerm",
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/DomainKmsKeyId}",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:aws:datazone:domainId": "${aws:PrincipalTag/AmazonDataZoneDomain}"
},
"StringLike": {
"kms:ViaService": "datazone.*.amazonaws.com"
}
}
},
{
"Sid": "ListLogGroupsPermissions",
"Effect": "Allow",
"Action": [
"logs:DescribeLogGroups"
],
"Resource": "*"
},
{
"Sid": "GlueJobLogGroup",
"Effect": "Allow",
"Action": [
"logs:DescribeLogStreams",
"logs:StartQuery",
"logs:GetLogEvents",
"logs:GetLogRecord",
"logs:GetLogGroupFields",
"logs:GetQueryResults",
"logs:PutLogEvents",
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:FilterLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:log-group:${aws:PrincipalTag/LogGroupName}/*"
]
},
{
"Sid": "ProjectLogGroup",
"Effect": "Allow",
"Action": [
"logs:DescribeLogStreams",
"logs:StartQuery",
"logs:GetLogEvents",
"logs:GetLogRecord",
"logs:GetLogGroupFields",
"logs:GetQueryResults",
"logs:PutLogEvents",
"logs:CreateLogStream",
"logs:FilterLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:log-group:${aws:PrincipalTag/LogGroupName}",
"arn:aws:logs:*:*:log-group:${aws:PrincipalTag/LogGroupName}:log-stream:*",
"arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/agent-builder/${aws:PrincipalTag/AmazonDataZoneProject}/evaluations"
]
},
{
"Sid": "CloudWatchStopQuery",
"Effect": "Allow",
"Action": [
"logs:StopQuery"
],
"Resource": "*"
},
{
"Sid": "DataLakeAthenaPermissions",
"Effect": "Allow",
"Action": [
"athena:TerminateSession",
"athena:CreatePreparedStatement",
"athena:StopCalculationExecution",
"athena:StartQueryExecution",
"athena:UpdatePreparedStatement",
"athena:BatchGetNamedQuery",
"athena:BatchGetPreparedStatement",
"athena:BatchGetQueryExecution",
"athena:UpdateNotebook",
"athena:DeleteNotebook",
"athena:DeletePreparedStatement",
"athena:UpdateNotebookMetadata",
"athena:DeleteNamedQuery",
"athena:GetCalculationExecution",
"athena:GetCalculationExecutionCode",
"athena:GetCalculationExecutionStatus",
"athena:GetNamedQuery",
"athena:GetNotebookMetadata",
"athena:GetPreparedStatement",
"athena:GetQueryExecution",
"athena:GetQueryResults",
"athena:GetQueryResultsStream",
"athena:GetQueryRuntimeStatistics",
"athena:GetSession",
"athena:GetSessionStatus",
"athena:GetWorkGroup",
"athena:UpdateNamedQuery",
"athena:CreateNamedQuery",
"athena:ExportNotebook",
"athena:StopQueryExecution",
"athena:StartCalculationExecution",
"athena:StartSession",
"athena:CreatePresignedNotebookUrl",
"athena:CreateNotebook",
"athena:ImportNotebook",
"athena:ListQueryExecutions",
"athena:ListTagsForResource",
"athena:ListNamedQueries",
"athena:ListPreparedStatements"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "AthenaDataCatalogPermissions",
"Effect": "Allow",
"Action": [
"athena:GetDatabase",
"athena:GetDataCatalog",
"athena:GetTableMetadata",
"athena:ListDatabases",
"athena:ListTableMetadata"
],
"Resource": [
"arn:aws:athena:*:*:datacatalog/AwsDataCatalog",
"arn:aws:athena:*:*:datacatalog/awsdatacatalog"
]
},
{
"Sid": "AthenaListPermissions",
"Effect": "Allow",
"Action": [
"athena:ListDataCatalogs",
"athena:ListEngineVersions",
"athena:ListWorkGroups"
],
"Resource": "*"
},
{
"Sid": "DataZoneUserPermissions",
"Effect": "Allow",
"Action": [
"datazone:CreateConnection",
"datazone:DeleteConnection",
"datazone:GetConnection",
"datazone:GetDomain",
"datazone:GetDomainExecutionRoleCredentials",
"datazone:GetEnvironment",
"datazone:GetEnvironmentBlueprintConfiguration",
"datazone:GetProject",
"datazone:GetUserProfile",
"datazone:ListConnections",
"datazone:ListEnvironments",
"datazone:ListEnvironmentBlueprints",
"datazone:ListProjects",
"datazone:UpdateConnection",
"datazone:PostLineageEvent",
"datazone:*Compute*"
],
"Resource": "arn:aws:datazone:*:*:domain/${aws:PrincipalTag/AmazonDataZoneDomain}"
},
{
"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": "GlueGetDefaultDatabase",
"Effect": "Allow",
"Action": [
"glue:GetDatabase"
],
"Resource": [
"arn:aws:glue:*:*:catalog",
"arn:aws:glue:*:*:database/default"
]
},
{
"Sid": "AllowGlueGetDatabasesExceptDefault",
"Effect": "Allow",
"Action": "glue:GetDatabases",
"NotResource": "arn:aws:glue:*:*:database/default",
"Condition": {
"StringEquals": {
"glue:LakeFormationPermissions": "Enabled"
}
}
},
{
"Sid": "GlueListDatabasesOnNoDatabases",
"Effect": "Allow",
"Action": [
"glue:GetDatabases"
],
"Resource": "arn:aws:glue:*:*:catalog"
},
{
"Sid": "GlueFileUploadPermissions",
"Effect": "Allow",
"Action": [
"glue:GetClassifier",
"glue:GetClassifiers",
"glue:UseGlueStudio"
],
"Resource": "*"
},
{
"Sid": "GlueProjectConnectionPermissions",
"Effect": "Allow",
"Action": [
"glue:PassConnection",
"glue:GetConnection",
"glue:GetConnections",
"glue:RefreshOAuth2Tokens"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "GlueGetConnectionOnlyOnCatalog",
"Effect": "Allow",
"Action": [
"glue:GetConnection",
"glue:GetConnections",
"glue:RefreshOAuth2Tokens"
],
"Resource": "arn:aws:glue:*:*:catalog"
},
{
"Sid": "GlueDatalakePermissions",
"Effect": "Allow",
"Action": [
"glue:CreateTable",
"glue:DeleteTable",
"glue:BatchDeleteTable",
"glue:UpdateTable",
"glue:BatchCreatePartition",
"glue:CreatePartition",
"glue:DeletePartition",
"glue:BatchDeletePartition",
"glue:UpdatePartition",
"glue:BatchGetPartition",
"glue:BatchGetTableOptimizer",
"glue:GetCatalogImportStatus",
"glue:GetColumnStatisticsForPartition",
"glue:GetColumnStatisticsForTable",
"glue:GetColumnStatisticsTaskRun",
"glue:GetColumnStatisticsTaskRuns",
"glue:GetDatabase",
"glue:DeleteDatabase",
"glue:GetPartition",
"glue:GetPartitionIndexes",
"glue:GetPartitions",
"glue:GetTable",
"glue:GetTableOptimizer",
"glue:GetTableVersion",
"glue:GetTableVersions",
"glue:GetTables",
"glue:SearchTables",
"glue:ListTableOptimizerRuns",
"glue:CreatePartitionIndex",
"glue:BatchUpdatePartition",
"glue:DeleteTableVersion",
"glue:DeleteColumnStatisticsForPartition",
"glue:DeleteColumnStatisticsForTable",
"glue:DeletePartitionIndex",
"glue:UpdateColumnStatisticsForPartition",
"glue:UpdateColumnStatisticsForTable",
"glue:BatchDeleteTableVersion",
"glue:GetCatalogs",
"glue:GetCatalog"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"glue:LakeFormationPermissions": "Enabled"
}
}
},
{
"Sid": "S3TCatalogPermissions",
"Effect": "Allow",
"Action": [
"glue:*ColumnStatistics*",
"glue:*Database*",
"glue:*Partition*",
"glue:*Table*",
"glue:GetCatalog*",
"glue:GetUserDefinedFunction*"
],
"Resource": "arn:*:glue:*:*:catalog/s3tablescatalog"
},
{
"Sid": "GlueCrawler",
"Effect": "Allow",
"Action": "glue:ListCrawls",
"Resource": "arn:aws:glue:*:*:crawler/*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "GlueGlobalTempDb",
"Effect": "Allow",
"Action": [
"glue:CreateDatabase",
"glue:DeleteDatabase",
"glue:GetDatabase"
],
"Resource": [
"arn:aws:glue:*:*:database/global_temp",
"arn:aws:glue:*:*:catalog"
]
},
{
"Sid": "GlueDefaultCatalogs",
"Effect": "Allow",
"Action": [
"glue:GetCatalog",
"glue:UpdateCatalog"
],
"Resource": [
"arn:aws:glue:*:*:catalog"
],
"Condition": {
"StringEquals": {
"glue:LakeFormationPermissions": "Enabled"
}
}
},
{
"Sid": "GlueNonDefaultCatalogs",
"Effect": "Allow",
"Action": [
"glue:GetCatalog",
"glue:UpdateCatalog"
],
"Resource": [
"arn:aws:glue:*:*:catalog/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}",
"glue:LakeFormationPermissions": "Enabled"
}
}
},
{
"Sid": "GlueCatalogDb",
"Effect": "Allow",
"Action": [
"glue:CreateDatabase",
"glue:DeleteDatabase",
"glue:GetDatabase"
],
"Resource": [
"arn:aws:glue:*:*:database/*",
"arn:aws:glue:*:*:catalog/*"
]
},
{
"Sid": "LFforDL",
"Effect": "Allow",
"Action": [
"lakeformation:GetDataAccess",
"lakeformation:GetResourceLFTags"
],
"Resource": "*"
},
{
"Sid": "IAMListRoles",
"Effect": "Allow",
"Action": [
"iam:ListRoles"
],
"Resource": "*"
},
{
"Sid": "IAMGetRole",
"Effect": "Allow",
"Action": [
"iam:GetRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "AllowAssumeAccessRole",
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:PrincipalTag/AmazonDataZoneProject": ""
}
}
},
{
"Sid": "SetSourceIdentityForAssumeAccessRole",
"Effect": "Allow",
"Action": "sts:SetSourceIdentity",
"Resource": "*",
"Condition": {
"StringLike": {
"sts:SourceIdentity": "${aws:PrincipalTag/datazone:userId}"
}
}
},
{
"Sid": "TagSessionForAssumeAccessRole",
"Effect": "Allow",
"Action": "sts:TagSession",
"Resource": "*",
"Condition": {
"ForAllValues:StringEquals": {
"aws:TagKeys": [
"AmazonDataZoneProject",
"AmazonDataZoneDomain"
]
},
"StringEquals": {
"aws:RequestTag/AmazonDataZoneDomain": "${aws:PrincipalTag/AmazonDataZoneDomain}",
"aws:RequestTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "SetContextForTIP",
"Effect": "Allow",
"Action": [
"sts:SetContext"
],
"Resource": [
"arn:aws:sts::*:self"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"sqlworkbench.amazonaws.com"
]
}
}
},
{
"Sid": "StsContext",
"Effect": "Allow",
"Action": "sts:SetContext",
"Resource": "*",
"Condition": {
"ForAllValues:ArnEquals": {
"sts:RequestContextProviders": [
"arn:aws:iam::aws:contextProvider/IdentityCenter"
]
},
"Null": {
"sts:RequestContextProviders": "false"
}
}
},
{
"Sid": "GlueConnectionPermissions",
"Effect": "Allow",
"Action": [
"glue:GetConnection",
"glue:GetConnections",
"glue:GetTags"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "UnrestrictedAccessGlueEntities",
"Effect": "Allow",
"Action": [
"glue:ListConnectionTypes",
"glue:DescribeConnectionType"
],
"Resource": "*"
},
{
"Sid": "GlueEntities",
"Effect": "Allow",
"Action": [
"glue:ListEntities",
"glue:DescribeEntity",
"glue:GetEntityRecords"
],
"Resource": "*"
},
{
"Sid": "AllowPassRoleOnProjectRoles",
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": "arn:aws:iam::*:role/${aws:PrincipalTag/RoleName}",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"iam:PassedToService": [
"airflow-serverless.amazonaws.com",
"sagemaker.amazonaws.com",
"glue.amazonaws.com",
"airflow.amazonaws.com",
"emr-serverless.amazonaws.com",
"elasticmapreduce.amazonaws.com",
"scheduler.amazonaws.com",
"access-grants.s3.amazonaws.com",
"pods.eks.amazonaws.com",
"bedrock-agentcore.amazonaws.com",
"agent-registry.amazonaws.com"
]
}
}
},
{
"Sid": "SQLWorkBench",
"Effect": "Allow",
"Action": [
"sqlworkbench:PutTab",
"sqlworkbench:DeleteTab",
"sqlworkbench:DriverExecute",
"sqlworkbench:GetUserInfo",
"sqlworkbench:ListTabs",
"sqlworkbench:GetAutocompletion*",
"sqlworkbench:PassAccountSettings",
"sqlworkbench:ListQueryExecutionHistory",
"sqlworkbench:GetQueryExecutionHistory",
"sqlworkbench:CreateConnection",
"sqlworkbench:*QCustomContext",
"sqlworkbench:GetQSql*",
"sqlworkbench:GetSchemaInference"
],
"Resource": "*"
},
{
"Sid": "SQLWorkBenchActions",
"Effect": "Allow",
"Action": "sqlworkbench:AssociateNotebookWithTab",
"Resource": "arn:*:sqlworkbench:*:*:notebook/*"
},
{
"Sid": "SQLWorkBenchNotebookActions",
"Effect": "Allow",
"Action": [
"sqlworkbench:CreateNotebook*",
"sqlworkbench:GetNotebook",
"sqlworkbench:UpdateNotebook*",
"sqlworkbench:DeleteNotebook*",
"sqlworkbench:ExportNotebook",
"sqlworkbench:BatchGetNotebookCell",
"sqlworkbench:TagResource"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}",
"aws:ResourceTag/sqlworkbench-resource-owner": "${aws:userid}"
}
}
},
{
"Sid": "RSDataIAMSession",
"Effect": "Allow",
"Action": [
"redshift-data:DescribeStatement",
"redshift-data:GetStatementResult",
"redshift-data:CancelStatement",
"redshift-data:ListStatements"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"redshift-data:statement-owner-iam-userid": "${aws:userid}"
}
}
},
{
"Sid": "RedshiftDataActions",
"Effect": "Allow",
"Action": [
"redshift-data:BatchExecuteStatement",
"redshift-data:ExecuteStatement",
"redshift-data:DescribeTable",
"redshift-data:ListDatabases",
"redshift-data:ListSchemas",
"redshift-data:ListTables"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "ExistingRedshiftCompute",
"Effect": "Allow",
"Action": [
"redshift-serverless:GetWorkgroup",
"redshift-serverless:GetNamespace",
"redshift-serverless:ListTagsForResource",
"redshift-serverless:GetCredentials",
"redshift:DescribeTags",
"redshift:GetClusterCredentialsWithIAM",
"redshift-data:BatchExecuteStatement",
"redshift-data:ExecuteStatement",
"redshift-data:DescribeTable",
"redshift-data:ListDatabases",
"redshift-data:ListSchemas",
"redshift-data:ListTables"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:ResourceTag/AmazonDataZoneEnvironment": "true"
},
"StringEquals": {
"aws:ResourceTag/for-use-with-all-datazone-projects": "true"
}
}
},
{
"Sid": "RedshiftWithoutResourceType",
"Effect": "Allow",
"Action": [
"redshift-serverless:ListNamespaces",
"redshift-serverless:ListWorkgroups",
"redshift:DescribeClusters"
],
"Resource": "*"
},
{
"Sid": "RSWgTagged",
"Effect": "Allow",
"Action": [
"redshift-serverless:GetWorkgroup",
"redshift-serverless:ListTagsForResource",
"redshift-serverless:GetNamespace",
"redshift:DescribeTags"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "RSExistCatalog",
"Effect": "Allow",
"Action": [
"redshift:GetClusterCredentialsWithIAM"
],
"Resource": "arn:aws:redshift:*:*:dbname:*/*",
"Condition": {
"Bool": {
"aws:ViaAWSService": "true"
}
}
},
{
"Sid": "AllowListSecrets",
"Effect": "Allow",
"Action": "secretsmanager:ListSecrets",
"Resource": "*"
},
{
"Sid": "ComputeCredentials",
"Effect": "Allow",
"Action": [
"emr-containers:*ManagedEndpoint*",
"emr-containers:TagResource",
"emr-containers:DescribeSecurityConfiguration",
"emr-containers:DescribeVirtualCluster",
"redshift-serverless:GetCredentials",
"redshift:GetClusterCredentialsWithIAM"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "RSDataMWg",
"Effect": "Allow",
"Action": [
"redshift-data:BatchExecuteStatement",
"redshift-data:ExecuteStatement",
"redshift-data:DescribeStatement",
"redshift-data:GetStatementResult",
"redshift-data:CancelStatement",
"redshift-data:GetStagingBucketLocation",
"redshift-serverless:GetManagedWorkgroup"
],
"Resource": "*",
"Condition": {
"StringLike": {
"redshift-data:glue-catalog-arn": "arn:aws:glue:*:*:catalog/*"
}
}
},
{
"Sid": "RssCreds",
"Effect": "Allow",
"Action": [
"redshift-serverless:GetCredentials"
],
"Resource": "arn:aws:redshift-serverless:*:*:workgroup/*",
"Condition": {
"Bool": {
"aws:ViaAWSService": "true"
},
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"redshift-data.amazonaws.com",
"sqlworkbench.amazonaws.com"
]
}
}
},
{
"Sid": "AllowTagGetResources",
"Effect": "Allow",
"Action": "tag:GetResources",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:CalledViaLast": "sqlworkbench.amazonaws.com"
}
}
},
{
"Sid": "AllowGetSecretForRedShift",
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue",
"secretsmanager:PutSecretValue"
],
"Resource": "arn:aws:secretsmanager:*:*:secret:*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "CloudWatchMetricsPermissions",
"Effect": "Allow",
"Action": [
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics"
],
"Resource": "*"
},
{
"Sid": "AmazonQChatPermissions",
"Effect": "Allow",
"Action": [
"q:StartConversation",
"q:SendMessage"
],
"Resource": "*"
},
{
"Sid": "EMRClusterWithDataZoneTags",
"Effect": "Allow",
"Action": [
"elasticmapreduce:DescribeCluster",
"elasticmapreduce:ListInstances",
"elasticmapreduce:ListInstanceFleets",
"elasticmapreduce:ListInstanceGroups",
"elasticmapreduce:ListBootstrapActions",
"elasticmapreduce:GetManagedScalingPolicy",
"elasticmapreduce:GetOnClusterAppUIPresignedURL",
"elasticmapreduce:*Session*",
"elasticmapreduce:AddTags"
],
"Resource": [
"arn:aws:elasticmapreduce:*:*:cluster/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "EMRClusterInfoPermissions",
"Effect": "Allow",
"Action": [
"elasticmapreduce:ListReleaseLabels",
"elasticmapreduce:ListSupportedInstanceTypes",
"elasticmapreduce:ListClusters",
"elasticmapreduce:CreatePersistentAppUI",
"elasticmapreduce:DescribePersistentAppUI",
"pricing:GetProducts"
],
"Resource": "*"
},
{
"Sid": "EMRGetClusterSessionCreds",
"Effect": "Allow",
"Action": [
"elasticmapreduce:GetClusterSessionCredentials"
],
"Resource": [
"arn:aws:elasticmapreduce:*:*:cluster/*"
],
"Condition": {
"ArnLike": {
"elasticmapreduce:ExecutionRoleArn": "arn:aws:iam::*:role/${aws:PrincipalTag/RoleName}"
},
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "EmrContainersSSO",
"Effect": "Allow",
"Action": [
"sso:DescribeApplication"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringLike": {
"aws:CalledVia": [
"emr-containers.amazonaws.com"
]
}
}
},
{
"Sid": "EMRPersistentAppUI",
"Effect": "Allow",
"Action": [
"elasticmapreduce:GetPersistentAppUIPresignedURL"
],
"Resource": "*",
"Condition": {
"ArnLike": {
"elasticmapreduce:ExecutionRoleArn": "arn:aws:iam::*:role/${aws:PrincipalTag/RoleName}"
}
}
},
{
"Sid": "KmsWithEncrypt",
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:ReEncryptFrom",
"kms:ReEncryptTo",
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"Null": {
"kms:EncryptionContextKeys": "false"
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": [
"datazone.*.amazonaws.com",
"sqs.*.amazonaws.com",
"sagemaker.*.amazonaws.com",
"bedrock.*.amazonaws.com",
"s3.*.amazonaws.com",
"scheduler.*.amazonaws.com",
"glue.*.amazonaws.com",
"secretsmanager.*.amazonaws.com"
]
}
}
},
{
"Sid": "EBDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"Null": {
"kms:EncryptionContext:aws:scheduler:schedule:arn": "false"
}
}
},
{
"Sid": "KmsPermissions",
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:ReEncryptFrom",
"kms:ReEncryptTo",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"Null": {
"kms:EncryptionContextKeys": "false"
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": [
"emr-serverless.*.amazonaws.com",
"redshift.*.amazonaws.com"
]
}
}
},
{
"Sid": "KmsManagement",
"Effect": "Allow",
"Action": [
"kms:ListGrants",
"kms:RevokeGrant",
"kms:DescribeKey"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": [
"sqs.*.amazonaws.com",
"sagemaker.*.amazonaws.com",
"emr-serverless.*.amazonaws.com",
"s3.*.amazonaws.com",
"redshift.*.amazonaws.com",
"codecommit.*.amazonaws.com",
"scheduler.*.amazonaws.com"
]
}
}
},
{
"Sid": "AwsOwnedKmsKeyPermissions",
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext"
],
"Resource": [
"arn:aws:kms:*:*:key/*"
],
"Condition": {
"Null": {
"kms:EncryptionContextKeys": "false"
},
"StringLike": {
"kms:ViaService": [
"s3.*.amazonaws.com",
"sqs.*.amazonaws.com",
"sagemaker.*.amazonaws.com"
]
},
"StringNotEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "AwsOwnedKmsManagement",
"Effect": "Allow",
"Action": [
"kms:DescribeKey"
],
"Resource": [
"arn:aws:kms:*:*:key/*"
],
"Condition": {
"StringLike": {
"kms:ViaService": [
"sqs.*.amazonaws.com",
"sagemaker.*.amazonaws.com"
]
},
"StringNotEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "ListKMS",
"Effect": "Allow",
"Action": [
"kms:ListAliases"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "EC2PermissionsForNotebookExecution",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstanceTypes"
],
"Resource": "*"
},
{
"Sid": "InvokeBRModel",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:*::foundation-model/*",
"arn:aws:bedrock:*:*:custom-model/*",
"arn:aws:bedrock:*:*:provisioned-model/*"
],
"Condition": {
"Null": {
"bedrock:InferenceProfileArn": "false"
},
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true"
}
}
},
{
"Sid": "BedrockInvokeModelPermissions",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:*::foundation-model/*",
"arn:aws:bedrock:*:*:custom-model/*",
"arn:aws:bedrock:*:*:provisioned-model/*"
],
"Condition": {
"ArnLike": {
"bedrock:InferenceProfileArn": "arn:aws:bedrock:*:*:application-inference-profile/*"
},
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true"
}
}
},
{
"Sid": "ACInvoke",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:*:*:inference-profile/*",
"arn:aws:bedrock:*::foundation-model/*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true"
}
}
},
{
"Sid": "InvokeBedrockModel",
"Effect": "Allow",
"Action": [
"bedrock:GetInferenceProfile",
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "arn:aws:bedrock:*:*:application-inference-profile/*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "BRInvokeAppProfile",
"Effect": "Allow",
"Action": [
"bedrock:GetInferenceProfile",
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "arn:aws:bedrock:*:*:application-inference-profile/*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "AccessBedrockResourcePermissions",
"Effect": "Allow",
"Action": [
"bedrock:InvokeAgent",
"bedrock:Retrieve",
"bedrock:ListIngestionJobs",
"bedrock:StartIngestionJob",
"bedrock:GetIngestionJob",
"bedrock:ApplyGuardrail",
"bedrock:ListPrompts",
"bedrock:GetPrompt",
"bedrock:CreatePrompt",
"bedrock:DeletePrompt",
"bedrock:CreatePromptVersion",
"bedrock:InvokeFlow",
"bedrock:GetEvaluationJob",
"bedrock:CreateEvaluationJob",
"bedrock:StopEvaluationJob",
"bedrock:BatchDeleteEvaluationJob",
"bedrock:ListTagsForResource",
"bedrock:CreateAgentAlias",
"bedrock:ListAgentAliases",
"bedrock:GetAgentVersion",
"bedrock:ListAgentVersions",
"bedrock:DeleteAgentVersion",
"bedrock:DeleteAgentAlias",
"bedrock:GetAgentAlias",
"bedrock:UpdateAgentAlias"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "BedrockResourceAccessPermissions",
"Effect": "Allow",
"Action": [
"bedrock:ApplyGuardrail",
"bedrock:BatchDeleteEvaluationJob",
"bedrock:CreateAgentAlias",
"bedrock:CreateBlueprint",
"bedrock:CreateBlueprintVersion",
"bedrock:CreateDataAutomationProject",
"bedrock:CreateEvaluationJob",
"bedrock:CreatePrompt",
"bedrock:CreatePromptVersion",
"bedrock:DeleteAgentAlias",
"bedrock:DeleteAgentVersion",
"bedrock:DeleteBlueprint",
"bedrock:DeleteDataAutomationProject",
"bedrock:DeletePrompt",
"bedrock:GetAgentAlias",
"bedrock:GetAgentVersion",
"bedrock:GetBlueprint",
"bedrock:GetDataAutomationProject",
"bedrock:GetDataAutomationStatus",
"bedrock:GetEvaluationJob",
"bedrock:GetKnowledgeBase",
"bedrock:GetIngestionJob",
"bedrock:GetPrompt",
"bedrock:InvokeAgent",
"bedrock:InvokeDataAutomationAsync",
"bedrock:InvokeFlow",
"bedrock:ListAgentAliases",
"bedrock:ListAgentVersions",
"bedrock:ListIngestionJobs",
"bedrock:ListPrompts",
"bedrock:ListTagsForResource",
"bedrock:Retrieve",
"bedrock:StartIngestionJob",
"bedrock:StopEvaluationJob",
"bedrock:UpdateAgentAlias",
"bedrock:UpdateBlueprint",
"bedrock:UpdateDataAutomationProject",
"bedrock:ListAgentActionGroups",
"bedrock:ListAgentKnowledgeBases"
],
"Resource": "arn:aws:bedrock:*:*:*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "BREvalFM",
"Effect": "Allow",
"Action": "bedrock:CreateEvaluationJob",
"Resource": [
"arn:aws:bedrock:*::foundation-model/*",
"arn:aws:bedrock:*:*:custom-model/*"
]
},
{
"Sid": "BRCreateEval",
"Effect": "Allow",
"Action": "bedrock:CreateEvaluationJob",
"Resource": [
"arn:aws:bedrock:*:*:custom-model/*",
"arn:aws:bedrock:*::foundation-model/*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true"
}
}
},
{
"Sid": "InvokeDataAutomationAsyncPermissions",
"Effect": "Allow",
"Action": [
"bedrock:InvokeDataAutomationAsync"
],
"Resource": [
"arn:aws:bedrock:*:*:data-automation-profile/*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true"
}
}
},
{
"Sid": "InvokeBedrockInlineAgentPermissions",
"Effect": "Allow",
"Action": "bedrock:InvokeInlineAgent",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"bedrock:InlineAgentName": "${datazone:userId}"
},
"StringNotEquals": {
"bedrock:InlineAgentName": ""
}
}
},
{
"Sid": "BedrockInvokeInlineAgentPermissions",
"Effect": "Allow",
"Action": "bedrock:InvokeInlineAgent",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"bedrock:InlineAgentName": "${datazone:userId}"
},
"StringNotEquals": {
"bedrock:InlineAgentName": ""
}
}
},
{
"Sid": "BRRAG",
"Effect": "Allow",
"Action": "bedrock:RetrieveAndGenerate",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true"
}
}
},
{
"Sid": "ListBedrockEvaluationJobPermissions",
"Effect": "Allow",
"Action": "bedrock:ListEvaluationJobs",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true"
}
}
},
{
"Sid": "BedrockNoResourcePermissions",
"Effect": "Allow",
"Action": [
"bedrock:ListEvaluationJobs",
"bedrock:RetrieveAndGenerate",
"bedrock:ListFoundationModels",
"bedrock:ListInferenceProfiles",
"bedrock:ListKnowledgeBases"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true"
}
}
},
{
"Sid": "PassRoleToBedrockEvaluation",
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"arn:aws:iam::*:role/AmazonBedrockEvaluationRole-${aws:PrincipalTag/AmazonDataZoneProject}-*",
"arn:aws:iam::*:role/AmazonBedrockServiceRole-${aws:PrincipalTag/AmazonDataZoneProject}-*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"iam:PassedToService": [
"bedrock.amazonaws.com"
]
}
}
},
{
"Sid": "IamPassRoleToBedrock",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"arn:aws:iam::*:role/AmazonBedrockEvaluationRole-${aws:PrincipalTag/AmazonDataZoneProject}-*",
"arn:aws:iam::*:role/AmazonBedrockServiceRole-${aws:PrincipalTag/AmazonDataZoneProject}-*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"iam:PassedToService": "bedrock.amazonaws.com"
}
}
},
{
"Sid": "TagBedrockResourcePermissions",
"Effect": "Allow",
"Action": "bedrock:TagResource",
"Resource": "*",
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"AmazonDataZone*",
"AmazonBedrockManaged",
"ProjectUserTag*"
]
},
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"aws:RequestTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "BedrockTagResourcePermissions",
"Effect": "Allow",
"Action": "bedrock:TagResource",
"Resource": "arn:aws:bedrock:*:*:*",
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"AmazonBedrockManaged",
"AmazonDataZone*",
"ProjectUserTag*"
]
},
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
},
"StringEqualsIfExists": {
"aws:RequestTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "BedrockKmsPermissions",
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"Null": {
"kms:EncryptionContext:aws:bedrock:arn": "false"
},
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": "bedrock.*.amazonaws.com"
}
}
},
{
"Sid": "KmsViaBedrockPermissions",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"ForAllValues:StringLike": {
"kms:EncryptionContextKeys": [
"aws:bedrock*:arn",
"aws:bedrock:guardrail-id"
]
},
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": "bedrock.*.amazonaws.com"
}
}
},
{
"Sid": "SecretPermissionsForBedrockIDE",
"Effect": "Allow",
"Action": [
"secretsmanager:DescribeSecret",
"secretsmanager:PutSecretValue"
],
"Resource": "arn:aws:secretsmanager:*:*:secret:amazon-bedrock-ide/*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "SecretsManagerPermissionsForBedrock",
"Effect": "Allow",
"Action": [
"secretsmanager:DescribeSecret",
"secretsmanager:PutSecretValue"
],
"Resource": "arn:aws:secretsmanager:*:*:secret:amazon-bedrock*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "SecretKmsPermissionsForBedrockIDE",
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"ArnLike": {
"kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:*:*:secret:amazon-bedrock-ide/*"
},
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": "secretsmanager.*.amazonaws.com"
}
}
},
{
"Sid": "BRKmsSM",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "arn:aws:kms:*:*:key/${aws:PrincipalTag/KmsKeyId}",
"Condition": {
"ArnLike": {
"kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:*:*:secret:amazon-bedrock*"
},
"StringEquals": {
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"StringLike": {
"kms:ViaService": "secretsmanager.*.amazonaws.com"
}
}
},
{
"Sid": "InvokeFunctionForAmazonBedrockIDE",
"Effect": "Allow",
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:*:*:function:amazon-bedrock-ide-*",
"Condition": {
"StringEquals": {
"aws:CalledViaFirst": "bedrock.amazonaws.com",
"aws:PrincipalTag/EnableAmazonBedrockIDEPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "LambdaInvokeFunctionViaBedrock",
"Effect": "Allow",
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:*:*:function:amazon-bedrock*",
"Condition": {
"StringEquals": {
"aws:CalledViaFirst": "bedrock.amazonaws.com",
"aws:PrincipalTag/EnableAmazonBedrockPermissions": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "DZEnvCfn",
"Effect": "Allow",
"Action": [
"cloudformation:GetTemplate",
"cloudformation:DescribeStacks",
"cloudformation:ListStackResources"
],
"Resource": "arn:aws:cloudformation:*:*:stack/DataZone-Env-*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "GetGlueUserDefinedFuncLF",
"Effect": "Allow",
"Action": [
"glue:GetUserDefinedFunction",
"glue:GetUserDefinedFunctions"
],
"Resource": [
"arn:aws:glue:*:*:catalog",
"arn:aws:glue:*:*:catalog/*",
"arn:aws:glue:*:*:database/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}",
"glue:LakeFormationPermissions": "Enabled"
}
}
},
{
"Sid": "GlueGetUserDefinedFunc",
"Effect": "Allow",
"Action": [
"glue:GetUserDefinedFunction",
"glue:GetUserDefinedFunctions"
],
"Resource": [
"arn:aws:glue:*:*:userDefinedFunction/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
},
{
"Sid": "DataConnectionAllProjectResources",
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue",
"secretsmanager:PutSecretValue",
"glue:GetConnections"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/for-use-with-all-datazone-projects": "true"
}
}
},
{
"Sid": "DataConnectionLambdaLogs",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": [
"arn:aws:logs:*:*:log-group:/aws/lambda/athenafederatedcatalog*",
"arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/runtimes/*"
]
},
{
"Sid": "DataConnOpen",
"Effect": "Allow",
"Action": [
"dynamodb:ListTables",
"glue:ManagedConnector",
"glue:TestConnection",
"codeconnections:GetHost",
"codeconnections:ListConnections",
"codeconnections:ListTagsForResource",
"codestar-connections:GetHost",
"codestar-connections:ListConnections",
"codestar-connections:ListTagsForResource"
],
"Resource": "*"
},
{
"Sid": "DataConnectionEC2",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface",
"ec2:DescribeSubnets",
"ec2:DetachNetworkInterface"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Vpc": "${aws:PrincipalTag/vpcArn}"
}
}
},
{
"Sid": "DataConnectionDeleteENI",
"Effect": "Allow",
"Action": "ec2:DeleteNetworkInterface",
"Resource": "arn:aws:ec2:*:*:*/*",
"Condition": {
"StringEqualsIfExists": {
"ec2:Vpc": "${aws:PrincipalTag/vpcArn}"
}
}
},
{
"Sid": "DataConnectionDescribeENI",
"Effect": "Allow",
"Action": [
"ec2:DescribeNetworkInterfaces"
],
"Resource": "*"
},
{
"Sid": "PrivateECRPermissions",
"Effect": "Allow",
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:CompleteLayerUpload",
"ecr:DeleteRepository",
"ecr:InitiateLayerUpload",
"ecr:PutImage",
"ecr:BatchDeleteImage",
"ecr:ListTagsForResource",
"ecr:DescribeRepositories",
"ecr:ListImages",
"ecr:UploadLayerPart"
],
"Resource": "arn:aws:ecr:*:*:repository/*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "CreateECRRepositoryPermission",
"Effect": "Allow",
"Action": "ecr:CreateRepository",
"Resource": "arn:aws:ecr:*:*:repository/*",
"Condition": {
"StringEquals": {
"aws:RequestTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "ECRTagResourcePermission",
"Effect": "Allow",
"Action": "ecr:TagResource",
"Resource": "arn:aws:ecr:*:*:repository/*",
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"AmazonDataZoneProject",
"ProjectUserTag*"
]
},
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
},
"StringEqualsIfExists": {
"aws:RequestTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "ECRUntagResourcePermission",
"Effect": "Allow",
"Action": [
"ecr:UntagResource"
],
"Resource": "arn:aws:ecr:*:*:repository/*",
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"ProjectUserTag*"
]
},
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "LFResourceSharingPermissions",
"Effect": "Allow",
"Action": [
"lakeformation:BatchGrantPermissions",
"lakeformation:BatchRevokePermissions",
"lakeformation:ListPermissions",
"lakeformation:DescribeResource",
"ram:GetResourceShareInvitations",
"lakeformation:CreateDataCellsFilter",
"lakeformation:ListDataCellsFilter",
"lakeformation:DeleteDataCellsFilter",
"lakeformation:GetDataCellsFilter",
"lakeformation:UpdateDataCellsFilter",
"ram:ListResources"
],
"Resource": "*"
},
{
"Sid": "XAcctLFCreate",
"Effect": "Allow",
"Action": [
"ram:CreateResourceShare"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"lakeformation.amazonaws.com"
]
},
"StringEqualsIfExists": {
"ram:RequestedResourceType": [
"glue:Table",
"glue:Database",
"glue:Catalog"
]
}
}
},
{
"Sid": "XAcctRAMGlue",
"Effect": "Allow",
"Action": [
"glue:DeleteResourcePolicy",
"glue:PutResourcePolicy"
],
"Resource": [
"arn:aws:glue:*:*:catalog",
"arn:aws:glue:*:*:catalog/*",
"arn:aws:glue:*:*:database/*",
"arn:aws:glue:*:*:table/*"
],
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"ram.amazonaws.com"
]
}
}
},
{
"Sid": "XAcctRAMLF",
"Effect": "Allow",
"Action": [
"ram:AssociateResourceShare",
"ram:DisassociateResourceShare",
"ram:DeleteResourceShare",
"ram:ListResourceSharePermissions",
"ram:UpdateResourceShare"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"lakeformation.amazonaws.com"
]
},
"StringLike": {
"ram:ResourceShareName": [
"LakeFormation*"
]
}
}
},
{
"Sid": "RAMGetResourceSharesViaLakeFormation",
"Effect": "Allow",
"Action": [
"ram:GetResourceShares"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"lakeformation.amazonaws.com"
]
}
}
},
{
"Sid": "XAcctRAMInvite",
"Effect": "Allow",
"Action": [
"ram:AcceptResourceShareInvitation"
],
"Resource": "arn:aws:ram:*:*:resource-share-invitation/*",
"Condition": {
"StringLike": {
"ram:ResourceShareName": [
"LakeFormation*",
"DataZoneS3AG*"
]
}
}
},
{
"Sid": "XAcctRAMLFHybrid",
"Effect": "Allow",
"Action": "ram:AssociateResourceSharePermission",
"Resource": "*",
"Condition": {
"ArnLike": {
"ram:PermissionArn": "arn:aws:ram::aws:permission/AWSRAMLFEnabled*"
},
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"lakeformation.amazonaws.com"
]
}
}
},
{
"Sid": "EventBridgeScheduleActions",
"Effect": "Allow",
"Action": [
"scheduler:CreateSchedule",
"scheduler:GetSchedule",
"scheduler:UpdateSchedule",
"scheduler:DeleteSchedule"
],
"Resource": [
"arn:aws:scheduler:*:*:schedule/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "EventBridgeScheduleGroupActions",
"Effect": "Allow",
"Action": [
"scheduler:GetScheduleGroup"
],
"Resource": [
"arn:aws:scheduler:*:*:schedule-group/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "QSFolderDS",
"Effect": "Allow",
"Action": [
"quicksight:DescribeDataSource",
"quicksight:DescribeFolder",
"quicksight:DescribeFolderPermissions",
"quicksight:ListFolderMembers"
],
"Resource": [
"arn:aws:quicksight:*:*:folder/*",
"arn:aws:quicksight:*:*:datasource/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "ManageQuickSightOtherResources",
"Effect": "Allow",
"Action": [
"quicksight:DescribeDataSet",
"quicksight:DescribeAccountSubscription",
"quicksight:DescribeUser",
"quicksight:DescribeGroup"
],
"Resource": [
"arn:aws:quicksight:*:*:*"
]
},
{
"Sid": "ManagePassDataSourcePermissions",
"Effect": "Allow",
"Action": [
"quicksight:PassDataSource"
],
"Resource": "arn:aws:quicksight:*:*:datasource/*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "ManageCreateDataSetPermissions",
"Effect": "Allow",
"Action": [
"quicksight:CreateDataSet",
"quicksight:TagResource"
],
"Resource": "arn:aws:quicksight:*:*:dataset/*",
"Condition": {
"ForAllValues:StringLike": {
"aws:TagKeys": [
"AmazonDataZone*"
]
},
"Null": {
"aws:TagKeys": "false"
},
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
},
"StringEqualsIfExists": {
"aws:RequestTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
},
{
"Sid": "CreateFolderMembership",
"Effect": "Allow",
"Action": [
"quicksight:CreateFolderMembership"
],
"Resource": "arn:aws:quicksight:*:*:folder/sagemaker-*-assets",
"Condition": {
"StringEquals": {
"aws:ResourceTag/AmazonDataZoneAssetsFolder": "true",
"aws:ResourceTag/AmazonDataZoneProject": "${aws:PrincipalTag/AmazonDataZoneProject}"
}
}
}
]
}
Version history
Current version v76, 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/SageMakerStudioProjectUserRolePolicy
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/SageMakerStudioProjectUserRolePolicy
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/SageMakerStudioProjectUserRolePolicyCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/SageMakerStudioProjectUserRolePolicyTerraform
resource "aws_iam_role_policy_attachment" "sagemakerstudioprojectuserrolepolicy" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/SageMakerStudioProjectUserRolePolicy"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("SageMakerStudioProjectUserRolePolicy"),
);Sources
Pending editorial review. No editorial sources are listed yet.