Sagemaker xgb.fit, приводящий к ошибке: «Пользователь XXX не авторизован для выполнения: iam.GetRole на ресурсе: роль YYY» - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь обучить модель XGBoost в SageMaker. Я вручную создал роль с именем sm_execution_role в консоли AWS и присвоил ей доверительные отношения, показанные ниже, где arn: aws: iam :: 123456789016: user / user1 - это пользователь IAM, которого я хочу авторизовать выполнять операции мудреца. Я запустил aws configure в терминале SageMaker и ввел ключ доступа и секретный ключ доступа, соответствующий user1.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com",
        "AWS": "arn:aws:iam::123456789016:user/user1"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

В записной книжке SageMaker я пытаюсь запустить следующий код, чтобы сгенерировать модель XGBoost, но получаю сообщение об ошибке. Как я могу решить это?

role = 'sm_execution_role'
bucket_name = 'my_bucket'
prefix = 'SageMakerXGB'
containers = {'us-west-2': '433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest',
              'us-east-1': '811284229777.dkr.ecr.us-east-1.amazonaws.com/xgboost:latest',
              'us-east-2': '825641698319.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest',
              'eu-west-1': '685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest'} 
my_region = boto3.session.Session().region_name
s3_input_train = sagemaker.s3_input(s3_data='s3://{}/{}/train'.format(bucket_name, prefix), content_type='csv')
sess = sagemaker.Session()
xgb = sagemaker.estimator.Estimator(containers[my_region],role, train_instance_count=1, train_instance_type='ml.m4.xlarge',output_path='s3://{}/{}/output'.format(bucket_name, prefix),sagemaker_session=sess)
xgb.set_hyperparameters(max_depth=5,eta=0.2,gamma=4,min_child_weight=6,subsample=0.8,num_round=100)
xgb.fit({'train': s3_input_train})
ClientError: An error occurred (AccessDenied) when calling the GetRole operation: User: arn:aws:iam::123456789016:user/user1 is not authorized to perform: iam:GetRole on resource: role sm_execution_role
...