Sagemaker 的 IAM 角色?

Vik*_*ikR 2 amazon-web-services amazon-iam amazon-sagemaker amazon-comprehend

我正在尝试让 AWS SageMaker 调用 AWS Comprehend。我在 SageMaker 中收到此消息:

ClientError:调用 StartTopicsDetectionJob 操作时发生错误 (AccessDeniedException):用户:arn:aws:sts::545176143103:assumed-role/access-aws-services-from-sagemaker/SageMaker 未被授权执行:iam:PassRole on资源:arn:aws:iam::545176143103:role/access-aws-services-from-sagemaker

在创建 Jupyter notebook 时,我使用了这个角色:

arn:aws:sagemaker:us-east-2:545176143103:notebook-instance/access-comprehend-from-sagemaker

...附有以下政策:

在此处输入图片说明

我在 SageMaker 中使用相同的 IAM 角色:

 data_access_role_arn = "arn:aws:iam::545176143103:role/access-aws-services-from-sagemaker"
Run Code Online (Sandbox Code Playgroud)

看起来我正在为该角色提供所需的所有访问权限。我该如何纠正这个错误?

Nic*_*lsh 5

根据您的错误,SageMaker 笔记本似乎存在权限问题,试图从没有明确权限的笔记本中更改 IAM 设置。


您在此处有几个选项可以解决此问题:

选项 1:授予 SageMaker 笔记本权限以在运行时在笔记本内定义 IAM 角色。

在控制台中,单击Hosted Notebooks左侧导航栏上的 ,然后在 下Permissions单击附加的 IAM 角色。在这里,您可以添加诸如IAMFullAccess或 之类的策略IAMReadOnlyAccess。当您尝试从笔记本中附加 IAM 角色时,这应该可以解决权限错误。

选项 2:在控制台中明确定义您希望 SageMaker 拥有的权限。

在控制台中,单击Hosted Notebooks左侧导航栏上的 ,然后在 下Permissions单击附加的 IAM 角色。在这里,您可以直接添加资源权限的策略(例如 Comprehend)。如果不向此角色附加显式 IAM 访问策略,您将无法在运行时更改权限。

选项 3:两者兼而有之

如果您想为某些资源预定义访问权限,但也可能在实验期间添加其他资源权限,您​​可以执行步骤 1 和 2(在控制台中向托管笔记本添加 IAM + 其他资源权限,并能够在实验期间内联更改您的 SageMaker IAM 角色)。