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

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

访问控制和 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 用户是根 (0)。该用户可以使用 pip/apt-get/conda 安装依赖项。

由于前面提到的用户重新映射,两个用户都无法访问资源或更改主机实例。

用户重新映射

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

自定义映像权限

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

容器隔离

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

应用程序元数据访问

运行的应用程序所使用的元数据将装载到具有只读权限的容器。客户无法从容器修改此元数据。有关可用元数据,请参阅获取笔记本和应用程序元数据

EFS 上的用户隔离

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

EBS 访问

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

IMDS 访问

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