sagemaker 上的 AccessDeniedException:AWS SageMaker Studio 中的 CreateDomain,尽管具有 SageMakerFullAccess

问题描述 投票:0回答:3

我尝试以附加了

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这似乎也有没有效果。

我在这里做错了什么?

amazon-web-services amazon-iam amazon-sagemaker aws-permissions
3个回答
0
投票

AmazonSageMakerFullAccess 策略为用户提供执行操作的权限,例如启动训练作业、部署端点,以及对其他服务(例如 ECR、Glue 等)的有限访问权限。这通常附加到 SageMaker 笔记本实例或 Studio。

创建 SageMaker 域的用户需要

sagemaker:CreateDomain
权限,即向您的 IAM 用户添加:

        {
            "Sid": "AllowCreateDomain",
            "Effect": "Allow",
            "Action": "sagemaker:CreateDomain",
            "Resource": "*"
        }

我在 AWS 工作,我的观点是我自己的。


0
投票

对我来说,你没有做任何错事。如果您查看“完全访问”策略中与域相关的操作部分:

    {
        "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 的人来说意味着什么,但根据我的经验,这对我来说没有任何意义 - 特别是当事先找到所需的所有权限并不容易时)


0
投票

我发现这是因为某些操作仅适用于特定资源。对于某些操作(例如 CreateDomain),您必须在资源字段中使用通配符 *。

© www.soinside.com 2019 - 2024. All rights reserved.