SageMaker example access denied

时间:2018-03-25 21:06:58

标签: python amazon-sagemaker

I am running the k-means example in SageMaker:

from sagemaker import KMeans

data_location = 's3://{}/kmeans_highlevel_example/data'.format(bucket)
output_location = 's3://{}/kmeans_example/output'.format(bucket)

kmeans = KMeans(role=role, train_instance_count=2,
                train_instance_type='ml.c4.8xlarge',
                output_path=output_location,
                k=10, data_location=data_location)

. When I run this line, it appears access denied error.

%%time

kmeans.fit(kmeans.record_set(train_set[0]))

The error returns: ClientError: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

I also read other questions, but their answers do not solve my problem. Would you please look at my case?

3 个答案:

答案 0 :(得分:3)

为了能够在SageMaker中培训工作,您需要传入 AWS IAM角色,允许SageMaker访问您的S3存储桶。

该错误表示SageMaker无权在您指定的存储桶中写入文件。

您可以在此处找到您需要添加到角色的权限https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms

答案 1 :(得分:1)

要考虑的另一件事,如果您使用的加密存储桶需要kms解密,请确保还包括kms相关权限 我注意到有时显示的错误为PutObject operation: Access Denied,而故障实际上与KMS有关。

答案 2 :(得分:1)

我遇到了同样的问题。我的 Sagemaker Notebook 实例 无法读取或写入文件到我的 S3 存储桶。故障排除的第一步是为您的 **Sagemaker Instance ** 定位角色。您可以通过查看此部分 This is the information about your sagemaker instance

然后从 IAM 转到此特定角色并将另一个策略附加到该角色 This is under roles in IAM

我附加了 S3 完全访问权限,但您可以创建自定义策略。 我很困惑,因为我是使用管理员用户登录的。但是,当您使用 Sagemaker 实例时,您的用户策略/角色将不会用于执行操作。