Skip to main content
IAM Policy Map

AmazonSageMakerAdmin-ServiceCatalogProductsServiceRolePolicy

OperatorAWS managedActivePermissions reviewedShow on mapCompare

Summary

Service role policy used by the AWS service Catalog service to provision products from Amazon SageMaker portfolio of products. Grants permissions to a set of related services including CodePipeline, CodeBuild, CodeCommit, Glue, CloudFormation, etc,.

Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.

Identity

ARN
arn:aws:iam::aws:policy/AmazonSageMakerAdmin-ServiceCatalogProductsServiceRolePolicy
Default version
v12
Created
Last edited
Services
apigateway, cloudformation, codebuild, codecommit, codeconnections, codepipeline, codestar-connections, cognito-idp, ecr, events, firehose, glue, iam, lambda, logs, s3, sagemaker, states

Control-plane actions (128)

By access level: 5 List, 6 Permissions management, 24 Read, 9 Tagging, 84 Write.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
API Gateway5 of 441 Read, 4 Write; 5 restricted, 4 conditionalapigateway:DELETE, apigateway:GET, apigateway:PATCH, apigateway:POST, apigateway:PUT
CloudFormation9 of 1041 List, 3 Read, 2 Tagging, 3 Write; 7 restricted, 5 conditionalcloudformation:CreateStack, cloudformation:DeleteStack, cloudformation:DescribeStackEvents, cloudformation:DescribeStacks, cloudformation:GetTemplateSummary, cloudformation:TagResource, cloudformation:UntagResource, cloudformation:UpdateStack, cloudformation:ValidateTemplate
CodeBuild3 of 673 Write; 3 restricted, 0 conditionalcodebuild:CreateProject, codebuild:DeleteProject, codebuild:UpdateProject
CodeCommit6 of 911 List, 1 Read, 1 Tagging, 3 Write; 5 restricted, 0 conditionalcodecommit:CreateCommit, codecommit:CreateRepository, codecommit:DeleteRepository, codecommit:GetRepository, codecommit:ListRepositories, codecommit:TagResource
CodeConnections1 of 381 Read; 1 restricted, 1 conditionalcodeconnections:PassConnection
CodePipeline7 of 442 Read, 1 Tagging, 4 Write; 7 restricted, 0 conditionalcodepipeline:CreatePipeline, codepipeline:DeletePipeline, codepipeline:GetPipeline, codepipeline:GetPipelineState, codepipeline:StartPipelineExecution, codepipeline:TagResource, codepipeline:UpdatePipeline
CodeStar Connections1 of 381 Read; 1 restricted, 1 conditionalcodestar-connections:PassConnection
Cognito User Pools13 of 1392 Read, 1 Tagging, 10 Write; 13 restricted, 13 conditionalcognito-idp:CreateGroup, cognito-idp:CreateUserPool, cognito-idp:CreateUserPoolClient, cognito-idp:CreateUserPoolDomain, cognito-idp:DeleteGroup, cognito-idp:DeleteUserPool, cognito-idp:DeleteUserPoolClient, cognito-idp:DeleteUserPoolDomain, cognito-idp:DescribeUserPool, cognito-idp:DescribeUserPoolClient, cognito-idp:TagResource, cognito-idp:UpdateUserPool and 1 more
Elastic Container Registry3 of 651 Tagging, 2 Write; 3 restricted, 0 conditionalecr:CreateRepository, ecr:DeleteRepository, ecr:TagResource
EventBridge7 of 711 Read, 6 Write; 7 restricted, 0 conditionalevents:DeleteRule, events:DescribeRule, events:DisableRule, events:EnableRule, events:PutRule, events:PutTargets, events:RemoveTargets
Firehose6 of 101 Read, 5 Write; 6 restricted, 0 conditionalfirehose:CreateDeliveryStream, firehose:DeleteDeliveryStream, firehose:DescribeDeliveryStream, firehose:StartDeliveryStreamEncryption, firehose:StopDeliveryStreamEncryption, firehose:UpdateDestination
Glue15 of 3062 Read, 13 Write; 8 restricted, 0 conditionalglue:CreateClassifier, glue:CreateCrawler, glue:CreateDatabase, glue:CreateJob, glue:CreateTrigger, glue:CreateWorkflow, glue:DeleteClassifier, glue:DeleteCrawler, glue:DeleteDatabase, glue:DeleteJob, glue:DeleteTrigger, glue:DeleteWorkflow and 3 more
IAM1 of 1901 Write; 1 restricted, 0 conditionaliam:PassRole
Lambda7 of 1212 Permissions management, 2 Read, 1 Tagging, 2 Write; 7 restricted, 1 conditionallambda:AddPermission, lambda:CreateFunction, lambda:DeleteFunction, lambda:GetFunction, lambda:GetFunctionConfiguration, lambda:RemovePermission, lambda:TagResource
CloudWatch Logs7 of 1332 List, 5 Write; 7 restricted, 0 conditionallogs:CreateLogGroup, logs:CreateLogStream, logs:DeleteLogGroup, logs:DeleteLogStream, logs:DescribeLogGroups, logs:DescribeLogStreams, logs:PutRetentionPolicy
S312 of 1554 Permissions management, 1 Read, 1 Tagging, 6 Write; 12 restricted, 0 conditionals3:CreateBucket, s3:DeleteBucket, s3:DeleteBucketPolicy, s3:GetBucketPolicy, s3:PutBucketAcl, s3:PutBucketCORS, s3:PutBucketLogging, s3:PutBucketNotification, s3:PutBucketPolicy, s3:PutBucketPublicAccessBlock, s3:PutBucketTagging, s3:PutEncryptionConfiguration
SageMaker22 of 4411 List, 6 Read, 1 Tagging, 14 Write; 22 restricted, 1 conditionalsagemaker:AddTags, sagemaker:CreateCodeRepository, sagemaker:CreateEndpoint, sagemaker:CreateEndpointConfig, sagemaker:CreateImage, sagemaker:CreateModel, sagemaker:CreateWorkteam, sagemaker:DeleteCodeRepository, sagemaker:DeleteEndpoint, sagemaker:DeleteEndpointConfig, sagemaker:DeleteImage, sagemaker:DeleteModel and 10 more
Step Functions3 of 373 Write; 3 restricted, 0 conditionalstates:CreateStateMachine, states:DeleteStateMachine, states:UpdateStateMachine
API Gateway: 5 actions
  • apigateway:DELETE (Write)
  • apigateway:GET (Read)
  • apigateway:PATCH (Write)
  • apigateway:POST (Write)
  • apigateway:PUT (Write)
CloudFormation: 9 actions
  • cloudformation:CreateStack (Write)
  • cloudformation:DeleteStack (Write)
  • cloudformation:DescribeStackEvents (Read)
  • cloudformation:DescribeStacks (List)
  • cloudformation:GetTemplateSummary (Read)
  • cloudformation:TagResource (Tagging)
  • cloudformation:UntagResource (Tagging)
  • cloudformation:UpdateStack (Write)
  • cloudformation:ValidateTemplate (Read)
CodeBuild: 3 actions
  • codebuild:CreateProject (Write)
  • codebuild:DeleteProject (Write)
  • codebuild:UpdateProject (Write)
CodeCommit: 6 actions
  • codecommit:CreateCommit (Write)
  • codecommit:CreateRepository (Write)
  • codecommit:DeleteRepository (Write)
  • codecommit:GetRepository (Read)
  • codecommit:ListRepositories (List)
  • codecommit:TagResource (Tagging)
CodeConnections: 1 actions
  • codeconnections:PassConnection (Read)
CodePipeline: 7 actions
  • codepipeline:CreatePipeline (Write)
  • codepipeline:DeletePipeline (Write)
  • codepipeline:GetPipeline (Read)
  • codepipeline:GetPipelineState (Read)
  • codepipeline:StartPipelineExecution (Write)
  • codepipeline:TagResource (Tagging)
  • codepipeline:UpdatePipeline (Write)
CodeStar Connections: 1 actions
  • codestar-connections:PassConnection (Read)
Cognito User Pools: 13 actions
  • cognito-idp:CreateGroup (Write)
  • cognito-idp:CreateUserPool (Write)
  • cognito-idp:CreateUserPoolClient (Write)
  • cognito-idp:CreateUserPoolDomain (Write)
  • cognito-idp:DeleteGroup (Write)
  • cognito-idp:DeleteUserPool (Write)
  • cognito-idp:DeleteUserPoolClient (Write)
  • cognito-idp:DeleteUserPoolDomain (Write)
  • cognito-idp:DescribeUserPool (Read)
  • cognito-idp:DescribeUserPoolClient (Read)
  • cognito-idp:TagResource (Tagging)
  • cognito-idp:UpdateUserPool (Write)
  • cognito-idp:UpdateUserPoolClient (Write)
Elastic Container Registry: 3 actions
  • ecr:CreateRepository (Write)
  • ecr:DeleteRepository (Write)
  • ecr:TagResource (Tagging)
EventBridge: 7 actions
  • events:DeleteRule (Write)
  • events:DescribeRule (Read)
  • events:DisableRule (Write)
  • events:EnableRule (Write)
  • events:PutRule (Write)
  • events:PutTargets (Write)
  • events:RemoveTargets (Write)
Firehose: 6 actions
  • firehose:CreateDeliveryStream (Write)
  • firehose:DeleteDeliveryStream (Write)
  • firehose:DescribeDeliveryStream (Read)
  • firehose:StartDeliveryStreamEncryption (Write)
  • firehose:StopDeliveryStreamEncryption (Write)
  • firehose:UpdateDestination (Write)
Glue: 15 actions
  • glue:CreateClassifier (Write)
  • glue:CreateCrawler (Write)
  • glue:CreateDatabase (Write)
  • glue:CreateJob (Write)
  • glue:CreateTrigger (Write)
  • glue:CreateWorkflow (Write)
  • glue:DeleteClassifier (Write)
  • glue:DeleteCrawler (Write)
  • glue:DeleteDatabase (Write)
  • glue:DeleteJob (Write)
  • glue:DeleteTrigger (Write)
  • glue:DeleteWorkflow (Write)
  • glue:GetCrawler (Read)
  • glue:GetTrigger (Read)
  • glue:StopCrawler (Write)
IAM: 1 actions
  • iam:PassRole (Write)
Lambda: 7 actions
  • lambda:AddPermission (Permissions management)
  • lambda:CreateFunction (Write)
  • lambda:DeleteFunction (Write)
  • lambda:GetFunction (Read)
  • lambda:GetFunctionConfiguration (Read)
  • lambda:RemovePermission (Permissions management)
  • lambda:TagResource (Tagging)
CloudWatch Logs: 7 actions
  • logs:CreateLogGroup (Write)
  • logs:CreateLogStream (Write)
  • logs:DeleteLogGroup (Write)
  • logs:DeleteLogStream (Write)
  • logs:DescribeLogGroups (List)
  • logs:DescribeLogStreams (List)
  • logs:PutRetentionPolicy (Write)
S3: 12 actions
  • s3:CreateBucket (Write)
  • s3:DeleteBucket (Write)
  • s3:DeleteBucketPolicy (Permissions management)
  • s3:GetBucketPolicy (Read)
  • s3:PutBucketAcl (Permissions management)
  • s3:PutBucketCORS (Write)
  • s3:PutBucketLogging (Write)
  • s3:PutBucketNotification (Write)
  • s3:PutBucketPolicy (Permissions management)
  • s3:PutBucketPublicAccessBlock (Permissions management)
  • s3:PutBucketTagging (Tagging)
  • s3:PutEncryptionConfiguration (Write)
SageMaker: 22 actions
  • sagemaker:AddTags (Tagging)
  • sagemaker:CreateCodeRepository (Write)
  • sagemaker:CreateEndpoint (Write)
  • sagemaker:CreateEndpointConfig (Write)
  • sagemaker:CreateImage (Write)
  • sagemaker:CreateModel (Write)
  • sagemaker:CreateWorkteam (Write)
  • sagemaker:DeleteCodeRepository (Write)
  • sagemaker:DeleteEndpoint (Write)
  • sagemaker:DeleteEndpointConfig (Write)
  • sagemaker:DeleteImage (Write)
  • sagemaker:DeleteModel (Write)
  • sagemaker:DeleteWorkteam (Write)
  • sagemaker:DescribeCodeRepository (Read)
  • sagemaker:DescribeEndpoint (Read)
  • sagemaker:DescribeEndpointConfig (Read)
  • sagemaker:DescribeImage (Read)
  • sagemaker:DescribeModel (Read)
  • sagemaker:DescribeWorkteam (Read)
  • sagemaker:ListTags (List)
  • sagemaker:UpdateCodeRepository (Write)
  • sagemaker:UpdateImage (Write)
Step Functions: 3 actions
  • states:CreateStateMachine (Write)
  • states:DeleteStateMachine (Write)
  • states:UpdateStateMachine (Write)

Data-plane actions (3)

By access level: 1 Read, 1 Tagging, 1 Write.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
Lambda1 of 141 Write; 1 restricted, 0 conditionallambda:InvokeFunction
S32 of 251 Read, 1 Tagging; 2 restricted, 0 conditionals3:GetObject, s3:PutObjectTagging
Lambda: 1 actions
  • lambda:InvokeFunction (Write)
S3: 2 actions
  • s3:GetObject (Read)
  • s3:PutObjectTagging (Tagging)

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 101 write, tagging or permissions-management actions, short of full control of any service.
  • 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.

Same service

Same domain

Frequently asked questions

Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.

Policy JSON

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AmazonSageMakerServiceCatalogAPIGatewayPermission",
      "Effect": "Allow",
      "Action": [
        "apigateway:GET",
        "apigateway:POST",
        "apigateway:PUT",
        "apigateway:PATCH",
        "apigateway:DELETE"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:ResourceTag/sagemaker:launch-source": "*"
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogAPIGatewayPostPermission",
      "Effect": "Allow",
      "Action": [
        "apigateway:POST"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:TagKeys": [
            "sagemaker:launch-source"
          ]
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogAPIGatewayPatchPermission",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:*::/account"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCFnMutatePermission",
      "Effect": "Allow",
      "Action": [
        "cloudformation:CreateStack",
        "cloudformation:UpdateStack",
        "cloudformation:DeleteStack"
      ],
      "Resource": "arn:aws:cloudformation:*:*:stack/SC-*",
      "Condition": {
        "ArnLikeIfExists": {
          "cloudformation:RoleArn": [
            "arn:aws:sts::*:assumed-role/AmazonSageMakerServiceCatalog*"
          ]
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCFnTagPermission",
      "Effect": "Allow",
      "Action": [
        "cloudformation:TagResource",
        "cloudformation:UntagResource"
      ],
      "Resource": "arn:aws:cloudformation:*:*:stack/SC-*",
      "Condition": {
        "Null": {
          "aws:ResourceTag/sagemaker:project-name": "false"
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCFnReadPermission",
      "Effect": "Allow",
      "Action": [
        "cloudformation:DescribeStackEvents",
        "cloudformation:DescribeStacks"
      ],
      "Resource": "arn:aws:cloudformation:*:*:stack/SC-*"
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCFnTemplatePermission",
      "Effect": "Allow",
      "Action": [
        "cloudformation:GetTemplateSummary",
        "cloudformation:ValidateTemplate"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCodeBuildPermission",
      "Effect": "Allow",
      "Action": [
        "codebuild:CreateProject",
        "codebuild:DeleteProject",
        "codebuild:UpdateProject"
      ],
      "Resource": [
        "arn:aws:codebuild:*:*:project/sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCodeCommitPermission",
      "Effect": "Allow",
      "Action": [
        "codecommit:CreateCommit",
        "codecommit:CreateRepository",
        "codecommit:DeleteRepository",
        "codecommit:GetRepository",
        "codecommit:TagResource"
      ],
      "Resource": [
        "arn:aws:codecommit:*:*:sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCodeCommitListPermission",
      "Effect": "Allow",
      "Action": [
        "codecommit:ListRepositories"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCodePipelinePermission",
      "Effect": "Allow",
      "Action": [
        "codepipeline:CreatePipeline",
        "codepipeline:DeletePipeline",
        "codepipeline:GetPipeline",
        "codepipeline:GetPipelineState",
        "codepipeline:StartPipelineExecution",
        "codepipeline:TagResource",
        "codepipeline:UpdatePipeline"
      ],
      "Resource": [
        "arn:aws:codepipeline:*:*:sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCIAMUserPermission",
      "Effect": "Allow",
      "Action": [
        "cognito-idp:CreateUserPool",
        "cognito-idp:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:TagKeys": [
            "sagemaker:launch-source"
          ]
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCIAMPermission",
      "Effect": "Allow",
      "Action": [
        "cognito-idp:CreateGroup",
        "cognito-idp:CreateUserPoolDomain",
        "cognito-idp:CreateUserPoolClient",
        "cognito-idp:DeleteGroup",
        "cognito-idp:DeleteUserPool",
        "cognito-idp:DeleteUserPoolClient",
        "cognito-idp:DeleteUserPoolDomain",
        "cognito-idp:DescribeUserPool",
        "cognito-idp:DescribeUserPoolClient",
        "cognito-idp:UpdateUserPool",
        "cognito-idp:UpdateUserPoolClient"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:ResourceTag/sagemaker:launch-source": "*"
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogECRPermission",
      "Effect": "Allow",
      "Action": [
        "ecr:CreateRepository",
        "ecr:DeleteRepository",
        "ecr:TagResource"
      ],
      "Resource": [
        "arn:aws:ecr:*:*:repository/sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogEventBridgePermission",
      "Effect": "Allow",
      "Action": [
        "events:DescribeRule",
        "events:DeleteRule",
        "events:DisableRule",
        "events:EnableRule",
        "events:PutRule",
        "events:PutTargets",
        "events:RemoveTargets"
      ],
      "Resource": [
        "arn:aws:events:*:*:rule/sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogFirehosePermission",
      "Effect": "Allow",
      "Action": [
        "firehose:CreateDeliveryStream",
        "firehose:DeleteDeliveryStream",
        "firehose:DescribeDeliveryStream",
        "firehose:StartDeliveryStreamEncryption",
        "firehose:StopDeliveryStreamEncryption",
        "firehose:UpdateDestination"
      ],
      "Resource": "arn:aws:firehose:*:*:deliverystream/sagemaker-*"
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogGluePermission",
      "Effect": "Allow",
      "Action": [
        "glue:CreateDatabase",
        "glue:DeleteDatabase"
      ],
      "Resource": [
        "arn:aws:glue:*:*:catalog",
        "arn:aws:glue:*:*:database/sagemaker-*",
        "arn:aws:glue:*:*:table/sagemaker-*",
        "arn:aws:glue:*:*:userDefinedFunction/sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogGlueClassiferPermission",
      "Effect": "Allow",
      "Action": [
        "glue:CreateClassifier",
        "glue:DeleteClassifier",
        "glue:DeleteCrawler",
        "glue:DeleteJob",
        "glue:DeleteTrigger",
        "glue:DeleteWorkflow",
        "glue:StopCrawler"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogGlueWorkflowPermission",
      "Effect": "Allow",
      "Action": [
        "glue:CreateWorkflow"
      ],
      "Resource": [
        "arn:aws:glue:*:*:workflow/sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogGlueJobPermission",
      "Effect": "Allow",
      "Action": [
        "glue:CreateJob"
      ],
      "Resource": [
        "arn:aws:glue:*:*:job/sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogGlueCrawlerPermission",
      "Effect": "Allow",
      "Action": [
        "glue:CreateCrawler",
        "glue:GetCrawler"
      ],
      "Resource": [
        "arn:aws:glue:*:*:crawler/sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogGlueTriggerPermission",
      "Effect": "Allow",
      "Action": [
        "glue:CreateTrigger",
        "glue:GetTrigger"
      ],
      "Resource": [
        "arn:aws:glue:*:*:trigger/sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogPassRolePermission",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/service-role/AmazonSageMakerServiceCatalog*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogLambdaPermission",
      "Effect": "Allow",
      "Action": [
        "lambda:AddPermission",
        "lambda:CreateFunction",
        "lambda:DeleteFunction",
        "lambda:GetFunction",
        "lambda:GetFunctionConfiguration",
        "lambda:InvokeFunction",
        "lambda:RemovePermission"
      ],
      "Resource": [
        "arn:aws:lambda:*:*:function:sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogLambdaTagPermission",
      "Effect": "Allow",
      "Action": "lambda:TagResource",
      "Resource": [
        "arn:aws:lambda:*:*:function:sagemaker-*"
      ],
      "Condition": {
        "ForAllValues:StringLike": {
          "aws:TagKeys": [
            "sagemaker:*"
          ]
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogLogGroupPermission",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:DeleteLogGroup",
        "logs:DeleteLogStream",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:PutRetentionPolicy"
      ],
      "Resource": [
        "arn:aws:logs:*:*:log-group:/aws/apigateway/AccessLogs/*",
        "arn:aws:logs:*:*:log-group::log-stream:*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogS3ReadPermission",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "s3:ExistingObjectTag/servicecatalog:provisioning": "true"
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogS3ReadSagemakerResourcePermission",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": [
        "arn:aws:s3:::sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogS3MutatePermission",
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:DeleteBucket",
        "s3:DeleteBucketPolicy",
        "s3:GetBucketPolicy",
        "s3:PutBucketAcl",
        "s3:PutBucketNotification",
        "s3:PutBucketPolicy",
        "s3:PutBucketPublicAccessBlock",
        "s3:PutBucketLogging",
        "s3:PutEncryptionConfiguration",
        "s3:PutBucketCORS",
        "s3:PutBucketTagging",
        "s3:PutObjectTagging"
      ],
      "Resource": "arn:aws:s3:::sagemaker-*"
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogSageMakerPermission",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateEndpoint",
        "sagemaker:CreateEndpointConfig",
        "sagemaker:CreateModel",
        "sagemaker:CreateWorkteam",
        "sagemaker:DeleteEndpoint",
        "sagemaker:DeleteEndpointConfig",
        "sagemaker:DeleteModel",
        "sagemaker:DeleteWorkteam",
        "sagemaker:DescribeModel",
        "sagemaker:DescribeEndpointConfig",
        "sagemaker:DescribeEndpoint",
        "sagemaker:DescribeWorkteam",
        "sagemaker:CreateCodeRepository",
        "sagemaker:DescribeCodeRepository",
        "sagemaker:UpdateCodeRepository",
        "sagemaker:DeleteCodeRepository"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogSageMakerTagPermission",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:endpoint/*",
        "arn:aws:sagemaker:*:*:endpoint-config/*",
        "arn:aws:sagemaker:*:*:model/*",
        "arn:aws:sagemaker:*:*:pipeline/*",
        "arn:aws:sagemaker:*:*:project/*",
        "arn:aws:sagemaker:*:*:model-package/*"
      ],
      "Condition": {
        "ForAllValues:StringLike": {
          "aws:TagKeys": [
            "sagemaker:*"
          ]
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogSageMakerImagePermission",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateImage",
        "sagemaker:DeleteImage",
        "sagemaker:DescribeImage",
        "sagemaker:UpdateImage",
        "sagemaker:ListTags"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:image/*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogStepFunctionPermission",
      "Effect": "Allow",
      "Action": [
        "states:CreateStateMachine",
        "states:DeleteStateMachine",
        "states:UpdateStateMachine"
      ],
      "Resource": [
        "arn:aws:states:*:*:stateMachine:sagemaker-*"
      ]
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCodeStarPermission",
      "Effect": "Allow",
      "Action": "codestar-connections:PassConnection",
      "Resource": [
        "arn:aws:codestar-connections:*:*:connection/*",
        "arn:aws:codeconnections:*:*:connection/*"
      ],
      "Condition": {
        "StringEquals": {
          "codestar-connections:PassedToService": "codepipeline.amazonaws.com"
        }
      }
    },
    {
      "Sid": "AmazonSageMakerServiceCatalogCodeConnectionPermission",
      "Effect": "Allow",
      "Action": "codeconnections:PassConnection",
      "Resource": [
        "arn:aws:codeconnections:*:*:connection/*",
        "arn:aws:codestar-connections:*:*:connection/*"
      ],
      "Condition": {
        "StringEquals": {
          "codeconnections:PassedToService": "codepipeline.amazonaws.com"
        }
      }
    }
  ]
}

Version history

Current version v12, edited by AWS on 2026-02-12. 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/AmazonSageMakerAdmin-ServiceCatalogProductsServiceRolePolicy
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerAdmin-ServiceCatalogProductsServiceRolePolicy
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerAdmin-ServiceCatalogProductsServiceRolePolicy

CloudFormation

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

Terraform

resource "aws_iam_role_policy_attachment" "amazonsagemakeradmin_servicecatalogproductsservicerolepolicy" {
  role       = aws_iam_role.example.name
  policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerAdmin-ServiceCatalogProductsServiceRolePolicy"
}

CDK (TypeScript)

role.addManagedPolicy(
  iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonSageMakerAdmin-ServiceCatalogProductsServiceRolePolicy"),
);

Sources

Pending editorial review. No editorial sources are listed yet.