SageMaker笔记本EC2无法关联新IAM角色:实例ID不存在报错排查
问题原因与解决办法
核心原因:底层EC2实例不在你的AWS账户中
你遇到的InvalidInstanceID.NotFound错误,本质是因为SageMaker笔记本实例的底层EC2虚拟机由AWS完全托管,并不属于你的AWS账户。你无法通过自己账户的EC2 API操作这个实例,因此会提示实例不存在。
正确的权限调整方式:修改SageMaker实例关联的IAM角色
SageMaker笔记本的权限不是通过修改底层EC2角色控制的,而是要直接调整笔记本实例本身绑定的IAM角色,步骤如下:
- 先在SageMaker控制台停止目标笔记本实例
- 进入实例详情页,点击「编辑」,在「IAM角色」下拉框中选择你创建的
MyNewRole(注意:需确保该角色的信任策略已授权sagemaker.amazonaws.com作为信任实体) - 保存配置后重新启动实例,再通过预签名URL登录笔记本
- 此时执行
aws sts get-caller-identity会返回MyNewRole,aws s3 ls也能正常执行
额外说明
CreatePresignedNotebookInstanceUrl只是生成临时访问链接,用于快速进入笔记本环境,但整个实例的控制权仍在SageMaker服务层面,底层EC2实例对用户完全透明且不可直接操作。所有权限相关调整,都必须通过SageMaker官方配置入口完成。
内容的提问来源于stack exchange,提问作者Zokulko
相关产品推荐
相关产品推荐

