{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "SageMakerTrainingSessionControlPlanePermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateTrainingSession",
        "sagemaker:DescribeTrainingSession",
        "sagemaker:StopTrainingSession",
        "sagemaker:DeleteTrainingSession",
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:*:*:training-session/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "SageMakerTrainingSessionRuntimePermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ExecuteTrainingOperation",
        "sagemaker:GetTrainingOperationResult",
        "sagemaker:ExecuteSamplingOperation",
        "sagemaker:GetSamplingOperationResult",
        "sagemaker:SampleTrainingSession",
        "sagemaker:SampleTrainingSessionWithResponseStream"
      ],
      "Resource": "arn:aws:sagemaker:*:*:training-session/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "SageMakerTrainingSessionRuntimeKmsPermissions",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "arn:aws:kms:*:*:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        },
        "StringLike": {
          "kms:ViaService": "sagemaker.*.amazonaws.com"
        }
      }
    },
    {
      "Sid": "SageMakerTrainingSessionListPermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListTrainingSessions"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "BearerTokenPermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CallWithBearerToken"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "PassExecutionRolePermissions",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/service-role/*SageMaker*",
        "arn:aws:iam::*:role/service-role/*Sagemaker*",
        "arn:aws:iam::*:role/service-role/*sagemaker*"
      ],
      "Condition": {
        "ArnLike": {
          "iam:AssociatedResourceArn": "arn:aws:sagemaker:*:*:*"
        },
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}",
          "iam:PassedToService": [
            "training-session.sagemaker.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "SageMakerTrainingSessionModelPackagePermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateModelPackageGroup",
        "sagemaker:DeleteModelPackage",
        "sagemaker:DescribeModelPackageGroup",
        "sagemaker:DescribeModelPackage",
        "sagemaker:ListModelPackages"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:model-package/*",
        "arn:aws:sagemaker:*:*:model-package-group/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "SageMakerTrainingSessionPublicHubPermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:DescribeHubContent",
        "sagemaker:ListHubContents"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:aws:hub/SageMakerPublicHub",
        "arn:aws:sagemaker:*:aws:hub-content/SageMakerPublicHub/*"
      ]
    },
    {
      "Sid": "SageMakerTrainingSessionS3Permissions",
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:DeleteObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::sagemaker-*",
        "arn:aws:s3:::sagemaker-*/*"
      ],
      "Condition": {
        "StringEquals": {
          "s3:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    }
  ]
}
