如何让组织外部的人可以使用 AWS SageMaker?

How does one make AWS SageMaker available to people outside their organization?

我正在为组织外部的一个组设置 SageMaker,想知道如何为这些用户提供对 SageMaker Studio(以及 SageMaker 将使用的任何依赖 AWS 资源)的访问权限。 这个想法是然后使用 SageMaker studio 来训练和测试模型。

理想情况下,如果我只是向他们发送一个 link 他们登录的地方,然后被授予对从我的 AWS 账户托管的 SageMaker 的访问权限,那就太好了。

我认为要授予临时访问权限,我需要将 角色 附加到一组 用户 ,并附加 policy 到这个组,他们最终将这个角色与 SageMaker 联系起来。但是我如何为 SageMaker 创建 link 以便这些用户可以登录?

另一种选择是使用跨账户访问进行设置,因为我想授予访问权限的人也有自己的 AWS 账户。但同样,如何生成 link 以将这些用户定向到我的 AWS 账户上的 SageMaker?

似乎有 2 个选项,根据 SageMaker Onboarding:

  1. AWS SSO 身份验证
  1. IAM 认证

我不明白第二种方法,因为这是否意味着用户无论如何都必须以 root 用户身份登录到控制台,然后才能获得完全访问权限。我可以编辑附加到 IAM 用户的策略,但这引出了另一个问题:

...SageMaker 是否预置了包含其依赖 AWS 服务的策略?例如,SageMaker 将使用 S3 进行存储,使用 EC2 进行处理;我是否需要在策略中单独设置这些,或者我可以简单地使用 SageMaker 策略,默认情况下将包括所有这些依赖项?

首先,您可以生成“一次性”(称为预签名)URLs,无需任何 AWS 凭证即可用于访问 SageMaker Studio 用户配置文件。这些 URl 的有效期最长为 5 分钟,并且可以通过单个 AWS API 调用生成。

向您的用户提供 Studio 访问权限的一种方法是设置一项服务,该服务可以对您的 Studio 用户进行身份验证,然后调用 CreatePresignedDomainUrl SageMaker API 方法将生成的预签名 URL 发送回用户。

或者,您也可以使用 AWS SSO,它可以为您完成大部分繁重的工作,尤其是当您想要与单点登录服务集成时。 AWS SSO 与 SageMaker Studio 集成,您可以将 Studio 用户配置文件分配给您的入职用户。然后,您的用户可以使用您的单点登录服务,无需登录 AWS 控制台即可启动 Studio。

另一种方法是使用 IAM Federation,您基本上可以向您的用户提供对控制台的 AWS API and/or 访问权限,并由(外部)身份提供商进行身份验证。联合用户可以担任特定角色以使用 AWS API 或管理控制台进行操作。要访问 SageMaker Studio,用户只需拥有 CreatePresignedDomainUrl 访问策略,该策略允许他们自己创建预签名 URL。如果您想隔离 SageMaker 用户配置文件并确保每个联合用户只能访问分配给他们的那些用户配置文件,请参阅以下内容 blog post 了解更多信息。

最后,请注意,一旦用户登录到 Studio,为特定用户配置文件配置的执行角色将决定 Studio 用户可以访问和执行的操作(例如启动 SageMaker 训练作业、部署模型、访问 S3 等)。因此,您无需为联合用户使用的 IAM 用户或角色设置这些策略。