能否在AWS Sagemaker Studio中为多个用户创建共享文件夹?
SageMaker Studio 多用户共享文件夹配置方案
最优方案为复用SageMaker Studio原生绑定的EFS创建共享目录,无需额外采购存储,也不会破坏现有SSO、用户私有空间配置:
步骤1:在Studio关联的EFS中创建共享目录
- 进入SageMaker控制台,打开你正在使用的Studio域名详情页,找到对应绑定的EFS ID并记录
- 启动一台和该EFS处于同一VPC、同一安全组的临时EC2实例,安全组需要放行入方向的2049端口(NFS协议)
- 连接到EC2实例,执行命令挂载EFS:
- 创建挂载目录:
mkdir /mnt/sagemaker-efs - 执行挂载(替换为你自己的EFS DNS地址,格式为
efs-id.efs.region.amazonaws.com):sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxx.efs.us-east-1.amazonaws.com:/ /mnt/sagemaker-efs
- 创建挂载目录:
- 在EFS根目录创建共享文件夹并配置权限:
# 创建共享目录 sudo mkdir /mnt/sagemaker-efs/shared # 配置所有用户可读可写权限,如需精细控制可自行调整所属用户组和权限位 sudo chmod 777 /mnt/sagemaker-efs/shared - 卸载EFS
sudo umount /mnt/sagemaker-efs,即可删除临时EC2实例
步骤2:用户端访问共享目录
所有Studio用户只需在自己的Jupyter终端执行一次软链接命令,即可在工作目录直接看到共享文件夹:ln -s /root/shared /home/sagemaker-user/shared
步骤3:批量配置所有用户默认挂载(可选)
如果不需要用户手动执行命令,可通过SageMaker生命周期配置自动创建软链接:
- 进入SageMaker控制台的「生命周期配置」页面,新建JupyterServer类型的配置
- 启动脚本填入以下内容:
#!/bin/bash set -e ln -sf /root/shared /home/sagemaker-user/shared - 将该配置关联到你的Studio域名,设置为所有用户的默认JupyterServer配置即可,后续所有用户新启动的实例都会自动生成共享文件夹入口
可选扩展方案
如果需要独立于Studio原生EFS的共享存储,可自行创建EFS或FSx for Lustre卷,通过生命周期配置在实例启动时自动挂载到所有用户的固定路径,权限可按需自定义。
内容的提问来源于stack exchange,提问作者Marc Inizan
相关产品推荐
相关产品推荐

