当前的AWS身份不是sagemaker的角色吗?

Kar*_*dar 5 amazon-web-services amazon-sagemaker

当我从python中的sagemaker调用get_execution_role()时,我收到错误.我已经附加了相同的错误. 在此输入图像描述

我已将SagemakerFullAccess策略添加到角色和用户两者.

Mar*_*tos 18

get_execution_role()Amazon SageMaker示例GitHub存储库中使用的函数帮助程序.

这些示例是从Amazon SageMaker提供的完全托管的Jupyter笔记本执行的.

从这些笔记本中,get_execution_role()将返回作为笔记本创建的一部分传入的IAM角色名称.这允许在没有代码更改的情况下执行笔记本示例.

从这些笔记本外部,get_execution_role()将返回异常,因为它不知道SageMaker所需的角色名称是什么.

要解决此问题,请传递IAM角色名称,而不是使用get_execution_role().

代替:

role = get_execution_role()

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

你需要做的:

role = 'role_name_with_sagemaker_permissions'

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

  • 您可以使用 AWS CLI 创建和检索您的执行角色:https://medium.com/ml-bytes/how-to-a-create-a-sagemaker-execution-role-539866910bda?source=linkShare-4bd3124f2454- 1532513189 (3认同)

B-T*_*ots 8

我为此苦苦挣扎了一段时间,有一些不同的部分,但我相信这些是解决的步骤(根据此文档

您必须向 aws 配置文件添加角色。转到终端并输入:

~/.aws/config
Run Code Online (Sandbox Code Playgroud)

添加您自己的个人资料

[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadmin
source_profile = default
Run Code Online (Sandbox Code Playgroud)

然后在 AWS 仪表板中编辑信任关系:

在此处输入图片说明

添加此并更新:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com",
        "AWS": "arn:aws:iam::XXXXXXX:user/YOURUSERNAME"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

最后,我点击了上面写着的链接

将此链接提供给可以在控制台中切换角色的用户

添加我的凭据后 - 它起作用了。

  • 它也适用于我。顺便说一句,我没有找到也没有点击“提供此链接...”链接。 (2认同)

小智 1

感谢您尝试 SageMaker!

您看到的异常已经表明了原因。您使用的凭据不是角色凭据,很可能是用户。“用户”凭据的格式如下所示:

'arn:aws:iam::accid:user/name' 与角色相反:'arn:aws:iam::accid:role/name'

希望这可以帮助!