Как убрать эту ошибку роли IAM в aws sagemaker? - PullRequest
0 голосов
/ 22 ноября 2018

Я подозреваю, что это больше связано с ролями IAM, чем с Sagemaker.

Я следую примеру здесь

В частности, когда он делает этот вызов

tf_estimator.fit('s3://bucket/path/to/training/data')

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

ClientError: An error occurred (AccessDenied) when calling the GetRole operation: User: arn:aws:sts::013772784144:assumed-role/AmazonSageMaker-ExecutionRole-20181022T195630/SageMaker is not authorized to perform: iam:GetRole on resource: role SageMakerRole

Моему экземпляру записной книжки прикреплена роль IAM.Эта роль имеет политику AmazonSageMakerFullAccess.Он также имеет собственную политику, которая выглядит следующим образом:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:DeleteObject",
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::*"
        ]
    }
]

}

Мои входные файлы и скрипт .py находятся в корзине s3 с фразой sagemaker.

Что еще мне не хватает?

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Если вы запускаете пример кода на экземпляре записной книжки SageMaker, вы можете использовать execute_role, к которому прикреплен AmazonSageMakerFullAccess.

from sagemaker import get_execution_role
sagemaker_session = sagemaker.Session()
role = get_execution_role()

И эту роль вы можете передать при инициализации tf_estimator.Вы можете проверить пример здесь [1] для использования execution_role с S3 на экземпляре ноутбука.

[1] https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-role.html

0 голосов
/ 22 ноября 2018

Это не проблема политики S3 Bucket, но для IAM. К выбранной вами роли пользователя прикреплена политика, которая не дает ей разрешения на управление другими ролями IAM .Вам нужно убедиться, что используемая вами роль может управлять (создавать, читать, обновлять) ролями IAM.

Надеюсь, это поможет!

...