我正在为组织外的一个小组设置SageMaker,并想知道如何为这些用户提供对SageMaker Studio(以及SageMaker将使用的任何依赖AWS资源(的访问。这个想法是使用SageMaker工作室来训练和测试模型。
理想情况下,如果我只需向他们发送一个登录链接,然后允许他们访问我的AWS帐户托管的SageMaker,那就太好了。
我认为,要授予临时访问权限,我需要将角色附加到用户组,并将policy添加到此组,他们最终将此角色与SageMaker关联。但是,我如何创建一个到SageMaker的链接,以便这些用户可以登录?
另一种选择是使用跨帐户访问进行设置,因为我想授予访问权限的人也有自己的AWS帐户。但是,如何在我的AWS帐户上生成链接,将这些用户引导到SageMaker?
根据SageMaker登录,似乎有2个选项:
- AWS SSO身份验证
- 通过直接打开Studio的唯一登录URL访问Studio
- 使用其SSO凭据登录
- 组织在AWS SSO而不是Studio中管理成员
- 可以同时为多个成员分配对Studio的访问权限
- IAM身份验证
- 通过SageMaker控制台登录
- 必须使用Studio控制面板手动添加和管理成员,每次一个
我不理解第二种方法,因为这不是意味着用户无论如何都必须以root身份登录控制台,然后才能完全访问。我可以编辑附加到IAM用户的策略,但这引出了另一个问题:
SageMaker是否预先制定了包括其相关AWS服务的政策?例如,SageMaker将使用S3进行存储,使用EC2进行处理;我需要在策略中单独设置这些吗?还是可以简单地使用SageMaker策略,默认情况下该策略将包括所有这些依赖项?
首先,您可以生成"一次性";(称为预签名(URL,可用于访问SageMaker Studio用户配置文件,无需任何AWS凭据。这些URL的有效期最长可达5分钟,并且可以通过单个AWS API调用生成。
向用户提供Studio访问权限的一种方法是设置一个服务,该服务可以对Studio用户进行身份验证,然后调用CreatePresignedDomainUrl SageMaker API方法将生成的预签名URL发送回用户。
或者,您也可以使用AWS SSO,它可以为您完成大部分繁重的工作,尤其是如果您想与单一登录服务集成的话。AWS SSO与SageMaker Studio集成,您可以将Studio用户配置文件分配给入职用户。然后,您的用户可以通过您的单一登录服务,并且可以在不登录AWS控制台的情况下启动Studio。
另一种方法是使用IAM Federation,您基本上向通过(外部(身份提供商验证的用户提供对AWS API和/或控制台的访问。联合用户可以承担特定的角色来使用AWS API或管理控制台进行操作。为了访问SageMaker Studio,用户只需要拥有CreatePresignedDomainUrl访问策略,该策略允许他们自己创建预签名的URL。如果你想隔离你的SageMaker用户档案,并确保每个联合用户只能访问分配给他们的用户档案,请参阅以下博客文章了解更多信息。
最后,请注意,一旦用户登录到Studio,为特定用户配置文件配置的执行角色将决定Studio用户可以访问和能够做什么(例如,启动SageMaker培训作业、部署模型、访问S3等(。因此,您不需要为IAM用户或联邦用户使用的角色设置这些策略。