我们有一个通过 python .ipynb 文件创建的 Sagemaker Notebook。预处理步骤设置
network_config
,如下所示:
并在与外部网络隔离的情况下运行管道:
这些是 VPC“ML”中的私有子网。我们在 VPC“Prod”中有一个 RDS。 CloudWatch 中的管道日志在尝试连接到 RDS(具有公共 DNS 和安全组)时显示超时。管道的安全组可以对任何内容进行出站访问(以及 rds sg 进行良好的衡量),并且 RDS sg 可以对管道 sg 进行入站访问(以及 PeerConnection 的 CIDR)。
我使用管道 SG 在私有 ML VPC 子集上创建了一个 EC2 实例。这可能会到达 RDS。
我使用可达性分析器将该实例跟踪到 RDS 的本地 IP。它起作用了,标记为“可到达”,如下所示:
该实例的安全组和子网与管道network_config中指定的相同。
如何诊断 Sagemaker Pipeline?当我的 EC2 实例连接时,为什么它无法连接到 RDS?任何帮助都会很棒,谢谢。
将 AWS SageMaker Pipelines 连接到 RDS 实例需要确保正确设置网络配置以及适当的权限和安全组设置。
由于您已将
enable_network_isolation
设置为 True
(如“Tenable 云安全策略”中所示),我建议将其设置为 False
,因为它可能会阻止管道访问其环境之外的资源。
network = NetworkConfig(
security_group_ids=[
"sg-04a0..."
],
subnets=[
"subnet-0b56...",
"subnet-069..."
],
enable_network_isolation=False
)
当
enable_network_isolation
设置为 True
时,网络被隔离,除了从 S3 下载数据并将日志发送到 CloudWatch 之外,网络无法与其他 AWS 服务交互。通过将
enable_network_isolation
设置为 False
,您禁用了此严格的隔离策略,从而允许 SageMaker Pipeline 和 RDS 服务之间进行必要的通信。但是,仍然需要做的是检查并可能加强您的安全组和 VPC 设置,以在禁用网络隔离的同时维护安全的环境。