如何在AWS Python CDK中限制Transfer User至指定主目录?
解决AWS CDK配置Transfer Family用户主目录限制的问题
你需要同时配置三个关键参数,才能实现控制台中「Restricted」复选框的目录限制效果:
- 设置
home_directory_type为LOGICAL:这是启用目录映射功能的前提条件 - 配置
home_directory_mappings将SFTP根路径/映射到目标S3存储桶路径 - 开启
restricted属性为True:这是触发主目录限制的核心开关
完整的Python CDK代码示例:
transfer.CfnUser(self, "MySftpUser", server_id="YOUR_SERVER_ID", user_name="sftp-user", role="arn:aws:iam::ACCOUNT_ID:role/YOUR_TRANSFER_ROLE", # 启用逻辑目录映射模式 home_directory_type="LOGICAL", # 映射SFTP根目录到指定S3路径 home_directory_mappings=[ transfer.CfnUser.HomeDirectoryMapEntryProperty( entry="/", target="/<bucket_name>/<folder_name>" ) ], # 开启主目录限制 restricted=True )
之前配置不生效的原因
- 缺少
home_directory_type="LOGICAL":默认模式为PATH,此模式下目录映射规则不生效,用户访问的是S3实际路径,因此能通过cd ..跳出指定目录 - 未设置
restricted=True:该参数直接对应控制台的「Restricted」复选框,只有开启它,Transfer Family才会强制限制用户无法离开主目录
重新部署CDK栈后,用户将无法执行cd ..操作,控制台的「Restricted」复选框也会自动被勾选。
内容的提问来源于stack exchange,提问作者sffortytwo
相关产品推荐
相关产品推荐

