新手使用Sagemaker访问S3桶遇角色权限问题:无法获取角色ARN
解决Sagemaker访问S3时的角色权限错误
错误分析
你遇到的错误:
Couldn't call 'get_role' to get Role ARN from role name Sagemaker-DataScientist to get Role path
本质是执行操作的身份(IAM用户/关联角色)没有权限调用iam:GetRole接口,或者指定的Sagemaker-DataScientist角色不存在。
修复步骤
确认角色存在
登录AWS控制台进入IAM服务,在「角色」列表搜索Sagemaker-DataScientist:- 若角色不存在,需创建该角色,同时附加S3访问权限策略(比如
AmazonS3ReadOnlyAccess或自定义精细权限),并确保信任策略允许Sagemaker服务(sagemaker.amazonaws.com)扮演该角色。 - 若角色存在,检查其ARN是否正确,避免拼写错误。
- 若角色不存在,需创建该角色,同时附加S3访问权限策略(比如
添加
iam:GetRole权限
给当前操作的身份(IAM用户或Notebook关联角色)添加权限策略,示例如下:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:GetRole", "Resource": "arn:aws:iam::你的AWS账号ID:role/Sagemaker-DataScientist" } ] }注意替换其中的
你的AWS账号ID为实际账号ID,尽量遵循最小权限原则,避免使用*作为资源。验证信任关系
进入Sagemaker-DataScientist角色的信任策略页面,确保包含以下内容:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }直接使用角色ARN
如果是代码中指定角色,尝试直接使用角色ARN代替名称,避免系统解析角色名称时出现问题。
内容的提问来源于stack exchange,提问作者Jack Gee
相关产品推荐
相关产品推荐

