访问控制和 SageMaker Studio 笔记本 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

访问控制和 SageMaker Studio 笔记本

Amazon SageMaker Studio 使用文件系统和容器权限对 Studio 用户和笔记本进行访问控制和隔离。这是 Studio 笔记本与 SageMaker 笔记本实例的主要区别之一。本主题介绍如何设置权限以避免安全威胁、SageMaker 的默认操作以及客户如何自定义权限。有关 Studio 笔记本及其运行时环境的更多信息,请参阅使用 Amazon SageMaker Studio 笔记本

SageMaker 应用程序权限

run-as 用户 是一个 POSIX 用户/组,用于在容器内运行 JupyterServer 应用程序和 KernelGateway 应用程序。

默认情况下,JupyterServer 应用程序的 run-as 用户为 sagemaker-user (1000)。该用户拥有 sudo 权限,可以安装 yum 软件包等依赖项。

默认情况下,KernelGateway 应用程序的 run-as 用户为 root (0)。该用户可以使用 pip/apt-get/conda 安装依赖项。

由于用户重新映射,这两个用户均无法访问资源或更改主机实例。

用户重新映射

SageMaker 执行 user-remapping,将容器内的用户映射到容器外主机实例上的用户。容器中的用户 ID 范围 (0 - 65535) 映射到实例上大于 65535 的非特权用户 ID。例如,容器内的 sagemaker-user (1000) 可能会映射到实例上的用户 (200001),其中括号中的数字是用户 ID。如果客户在容器内创建了新的用户/组,则无论用户/组 ID 如何,该用户/组都不会在主机实例上获得特权。容器的根用户也映射到实例上的非特权用户。有关更多信息,请参阅使用用户命名空间隔离容器

注意

由用户 sagemaker-user 创建的文件可能看起来像是由 sagemaker-studio (uid 65534) 所有。这是快速应用程序创建模式的副作用,在该模式下会预拉取 SageMaker 容器映像,使应用程序能在一分钟内启动。如果您的应用程序要求文件所有者 uid 和流程所有者 uid 相匹配,请要求客户服务部门将您的账号从映像预拉取特征中删除。

自定义映像权限

客户可以自带自定义 SageMaker 映像。这些映像可以指定不同的 run-as 用户/组来启动 KernelGateway 应用程序。客户可以在映像内部实施精细的权限控制,例如,禁用根访问权限或执行其他操作。用户重新映射在这里也适用。有关更多信息,请参阅 自带 SageMaker 映像

容器隔离

Docker 会保留容器可以使用的默认功能列表。SageMaker 不会添加其他功能。SageMaker 添加了特定路由规则,以阻止从容器向 Amazon EFS 和实例元数据服务 (IMDS) 发出请求。客户无法在容器中更改这些路由规则。有关更多信息,请参阅运行时权限和 Linux 功能

应用程序元数据访问权限

正在运行的应用程序所使用的元数据以只读权限挂载到容器上。客户无法在容器中修改此元数据。有关可用的元数据,请参阅获取 Studio 笔记本和应用程序元数据

EFS 上的用户隔离

当您登录到 Studio 时,SageMaker 会为您的域创建一个 Amazon Elastic File System (EFS) 卷,该卷由域中的所有 Studio 用户共享。每个用户在 EFS 卷上都有自己的私有主目录。此主目录用于存储用户的笔记本、Git 存储库和其他数据。为了防止域中其他用户访问用户的数据,SageMaker 为该用户的配置文件创建了一个全局唯一的用户 ID,并将其用作该用户主目录的 POSIX 用户/组 ID。

EBS 访问权限

Amazon Elastic Block Store (Amazon EBS) 卷附加到主机实例,并在所有映像之间共享。它用于笔记本的根卷,并存储容器内生成的临时数据。删除运行笔记本的实例后,存储不会持久化。容器内的根用户无法访问 EBS 卷。

IMDS 访问权限

出于安全考虑,无法在 SageMaker Studio 中访问 Amazon Elastic Compute Cloud (Amazon EC2) 实例元数据服务 (IMDS)。有关 IMDS 的更多信息,请参阅实例元数据和用户数据