我尝试以附加了
AmazonSageMakerFullAccess
策略的 IAM 用户身份使用 AWS SageMaker Studio > 入门 > 快速入门,但收到以下错误:
User: arn:aws:iam::<user-id>:user/<username> is not authorized to perform: sagemaker:CreateDomain on resource: arn:aws:sagemaker:us-west-1:<user-id>:domain/d-<domain-id>
我查阅了有关 CreateDomain 命令的一些文档,看起来它涉及 EFS 存储和 VPC 配置,因此我还将这些服务的 FullAccess 策略添加到了我的 IAM 用户,但仍然遇到相同的错误。
我还尝试添加自定义策略,如下所示:https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createdomain-perms这似乎也有没有效果。
我在这里做错了什么?
AmazonSageMakerFullAccess 策略为用户提供执行操作的权限,例如启动训练作业、部署端点,以及对其他服务(例如 ECR、Glue 等)的有限访问权限。这通常附加到 SageMaker 笔记本实例或 Studio。
创建 SageMaker 域的用户需要
sagemaker:CreateDomain
权限,即向您的 IAM 用户添加:
{
"Sid": "AllowCreateDomain",
"Effect": "Allow",
"Action": "sagemaker:CreateDomain",
"Resource": "*"
}
我在 AWS 工作,我的观点是我自己的。
对我来说,你没有做任何错事。如果您查看“完全访问”策略中与域相关的操作部分:
{
"Effect": "Allow",
"Action": [
"sagemaker:CreatePresignedDomainUrl",
"sagemaker:DescribeDomain",
"sagemaker:ListDomains",
"sagemaker:DescribeUserProfile",
"sagemaker:ListUserProfiles",
"sagemaker:DescribeSpace",
"sagemaker:ListSpaces",
"sagemaker:*App",
"sagemaker:ListApps"
],
"Resource": "*"
}
没有
CreateDomain
,需要自己添加动作。还缺少像CreateUserProfile
这样的操作——我在错误消息上浪费了大量时间后意识到。我没有找到任何允许这些操作的预定义策略。您可以创建内联策略来允许这些操作。
(我不知道“完全访问”对于 AWS 的人来说意味着什么,但根据我的经验,这对我来说没有任何意义 - 特别是当事先找到所需的所有权限并不容易时)
我发现这是因为某些操作仅适用于特定资源。对于某些操作(例如 CreateDomain),您必须在资源字段中使用通配符 *。