Amazon web services 如何消除aws sagemaker中的IAM角色错误?

Amazon web services 如何消除aws sagemaker中的IAM角色错误?,amazon-web-services,amazon-iam,amazon-sagemaker,Amazon Web Services,Amazon Iam,Amazon Sagemaker,我怀疑这更多地与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/Am

我怀疑这更多地与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


我还缺少什么?

这不是S3 Bucket策略的问题,但对于IAM,您选择的用户角色附加了一个策略,不授予其管理其他IAM角色的权限。您需要确保您使用的角色可以管理(创建、读取、更新)IAM角色


希望这有帮助

如果您正在SageMaker笔记本实例上运行示例代码,则可以使用附加了
AmazonSageMakerFullAccess
的execution_角色

from sagemaker import get_execution_role
sagemaker_session = sagemaker.Session()
role = get_execution_role()
您可以在初始化
tf\u估计器时传递此角色。

您可以查看在笔记本实例上使用S3的
execution\u角色的示例。

就是这样!非常感谢。是的,你发现了什么。我只是不知道该怎么办,直到@Han指出这应该是答案。