SageMaker ClientError:调用 CreateTrainingJob 操作时发生错误 (ValidationException):无法承担角色

Iva*_*nik 4 amazon-web-services amazon-iam amazon-sagemaker

当我进入 SageMaker 中的笔记本实例并在Linear_learner_mnist示例中创建模型时,即使我的角色附加了AmazonSageMakerFullAccessAssumeRole附加策略,我也会收到错误。当我将 AdministratorAccess策略添加到角色时 - 一切正常。我在这里缺少什么?

角色存在并附加

Resources:
  SageMakerExecutionRole:
    Condition: RoleArnEmpty
    Type: "AWS::IAM::Role"
    Properties:
      AssumeRolePolicyDocument:
        Statement:
          - Effect: "Allow"
            Principal:
              Service:
                - "sagemaker.amazonaws.com"
            Action:
              - sts:AssumeRole
      ManagedPolicyArns:
        - "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess"
      Path: "/service-role/"
      Policies:
        Fn::If:
        - S3BucketNotEmpty
        -
          - PolicyName: SageMakerS3BucketAccess
            PolicyDocument:
              Version: '2012-10-17'
              Statement:
                - Effect: Allow
                  Action:
                    - s3:*
                  Resource:
                    - !Sub 'arn:aws:s3:::${SageMakerS3Bucket}'
                    - !Sub 'arn:aws:s3:::${SageMakerS3Bucket}/*'
        - Ref: AWS::NoValue
Run Code Online (Sandbox Code Playgroud)

ClientError:调用 CreateTrainingJob 操作时发生错误 (ValidationException):无法承担角色 arn:aws:iam::XXX:role/sagemaker-stack-SageMakerExecutionRole-1JT7AT4OPUK9R。请确保该角色存在并允许主体“sagemaker.amazonaws.com”担任该角色。

小智 5

令我惊讶的是,当您添加 AdministratorAccess 策略时,一切都正常。该错误以及如何更正该错误记录在https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html中。

Amazon SageMaker 用户可以使用 IAM 角色(称为执行角色)授予这些权限。用户在进行以下 API 调用时传递角色:CreateNotebookInstance、CreateHyperParameterTuningJob、CreateTrainingJob 和 CreateModel。

您将以下信任策略附加到 IAM 角色,该角色授予 Amazon SageMaker 委托人代入该角色的权限,并且对于所有执行角色都是相同的:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

在身份和访问管理 (IAM) 控制台中,我将上面的语句部分添加到我的角色的信任关系部分下的信任策略中,它为我修复了此错误。