SageMaker Studio 笔记本电脑的访问控制和权限设置 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SageMaker Studio 笔记本电脑的访问控制和权限设置

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

SageMaker 应用程序权限

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

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

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

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

用户重新映射

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

注意

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

自定义映像权限

客户可以自带自定义 SageMaker 图片。这些图像可以指定不同的运行身份用户/群组来启动应用程序。 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 (AmazonEBS) 卷已连接到主机实例,并在所有映像之间共享。它用于笔记本的根卷,并存储容器内生成的临时数据。删除运行笔记本的实例后,存储不会持久化。容器内的 root 用户无法访问该EBS卷。

IMDS访问

出于安全考虑, SageMaker Studio 中无法访问亚马逊弹性计算云 (Amazon EC2IMDS) 实例元数据服务 ()。有关更多信息IMDS,请参阅实例元数据和用户数据