托管层检查点的安全注意事项
此部分介绍使用托管层检查点时的重要安全注意事项。它包括 Python pickle 的使用、Amazon S3 加密和网络端点安全。
Python pickle 的使用
托管层检查点使用 Python 的 pickle 模块对存储在 Amazon S3 中的检查点数据进行反序列化。此实现会产生重大安全影响:
-
扩展的信任边界:在 Amazon S3 中使用托管层检查点时,Amazon S3 存储桶将成为集群的信任边界的一部分。
-
代码执行风险:Python 的 pickle 模块可以在反序列化期间执行任意代码。如果未经授权的用户获得对检查点 Amazon S3 存储桶的写访问权限,他们可能会制作恶意的 pickle 数据,这些数据在通过托管层检查点加载时执行。
Amazon S3 存储的最佳实践
在 Amazon S3 存储中使用托管层检查点时:
-
限制 Amazon S3 存储桶访问权限:确保仅与训练集群关联的授权用户和角色有权访问用于检查点的 Amazon S3 存储桶。
-
实施存储桶策略:配置适当的存储桶策略以防止未经授权的访问或修改。
-
监控访问模式:为对检查点 Amazon S3 存储桶的访问实施日志记录和监控。
-
验证存储桶名称:选择存储桶名称时需保持谨慎,以避免潜在的存储桶劫持风险。
网络端点
托管层检查点会在以下端口上启用您每个计算节点上的网络端点:9200/TCP、9209/UDP、9210/UDP、9219/UDP、9220/UDP、9229/UDP、9230/UDP、9239/UDP、9240/UDP。这些端口是检查点服务正常运行并保持数据同步所必需的。
默认情况下,出于安全目的,SageMaker 的网络配置会限制对这些端点的访问。建议您保留这些默认限制。
在为节点和 VPC 配置网络设置时,请遵循 VPC、安全组和 ACL 的 AWS 最佳实践。有关更多信息,请参阅下列内容: