Amazon Sagemaker. AccessDeniedException при вызове операции InvokeEndpoint - PullRequest
0 голосов
/ 13 января 2019

Я развернул конечную точку в Amazon SageMaker. Теперь я пытаюсь вызвать его.

Если я запускаю этот код в Sagemaker's Jupyter Notebook:

client = boto3.client('sagemaker-runtime')
endpoint_name = 'DEMO-XGBoostEndpoint'
body = ','.join(['1.0'] * 6)
response = client.invoke_endpoint(EndpointName=endpoint_name,
                               ContentType='text/csv',
                               Body=body)
response['Body'].read()

работает нормально.

Но если я запускаю тот же код с добавленными учетными данными для клиента boto3 с моей машины:

client = boto3.client('sagemaker-runtime', 
                       aws_access_key_id=ACCESS_ID,
                       aws_secret_access_key= ACCESS_KEY)
endpoint_name = 'DEMO-XGBoostEndpoint'
body = ','.join(['1.0'] * 6)
response = client.invoke_endpoint(EndpointName=endpoint_name,
                               ContentType='text/csv',
                               Body=body)
response['Body'].read()

Я получаю эту ошибку:

ClientError: Произошла ошибка (AccessDeniedException) при вызове операции InvokeEndpoint: пользователь: arn: aws: iam :: 249707424405: пользователь / yury.logachev не авторизован для выполнения: sagemaker: InvokeEndpoint на ресурсе: arn: aws: sagemaker : us-east-1: 249707424405: конечная точка / demo-xgboostendpoint-2018-12-12-22-07-28 с явным отказом

Если я запускаю последний фрагмент кода (с добавленными учетными данными в качестве параметров клиента) в Sagemaker's Jupyter Notebook, я также получаю ту же ошибку.

Я понимаю, что решение должно быть связано с ролями, политиками и т. Д., Но не смог его найти.

1 Ответ

0 голосов
/ 16 января 2019

Проблема была с авторизацией MFA. Когда я вызывал модель изнутри модели, MFA был пройден. Но когда я попытался вызвать модель с моей машины, MFA не был передан, поэтому в доступе было отказано.

Я создал специального пользователя без MFA для отладки модели, и это решило мою проблему.

...