验证 BYOC 部署¶
本主题介绍如何使用 BYOC 预检验证来验证 Openflow 部署的 AWS 网络配置。
关于 BYOC 预检验证¶
BYOC 预检验证是一个脚本,用于验证 AWS 网络环境是否已准备好进行 Openflow 部署。它会检查所需的网络、连接和访问设置是否到位。
使用此工具可在部署前识别和解决网络或访问配置错误。这有助于防止故障,并通过为发现的任何问题提供具体的反馈和可操作的指导来确保更顺利的推出。
此脚本有两个版本:
byoc-validator.sh:选择使用 时默认使用的角色和仓库。验证您的 AWS 环境是否已准备好进行新的 Openflow 部署。
byo-vpc-validator.sh:选择使用 时默认使用的角色和仓库。验证您现有的 VPC 是否已为 Openflow 正确配置。
什么是 BYOC 预检验证审查?¶
BYOC 预检验证会执行部署前审查,以验证您现有的 AWS 设置、识别问题并解释需要更正的内容。
BYOC 预检验证会检查以下内容:
先决条件(仅适用于现有 VPCs)
子网、网关和路由等 VPC 组件
跨可用区的网络规模调整和布局
必需的资源标签
网络连接
访问 Openflow 服务和端点
所需容器的镜像注册表访问权限
与核心 AWS 服务的连接
权限
安全组规则
所需的 IAM 权限
需要时访问加密密钥
何时使用 BYOC 预检验证?¶
使用 BYOC 预检验证:
在初始 Openflow 部署之前
在 AWS 网络发生可能影响连接的变更后
在故障排除期间确认设置
将 Openflow 迁移到新的 VPC 或 AWS 账户时
下载 CloudFormation 模板进行 BYOC 预检验证¶
按照以下步骤在 AWS 环境中设置 BYOC 预检验证:
在 Openflow 控制平面中创建新的 BYOC 部署。
下载 CloudFormation 模板进行 BYOC 预检验证。
要下载 CloudFormation 模板进行 BYOC 预检验证,请在创建部署后出现的确认对话框中点击 Download Validator。
在 AWS 中应用 BYOC 预检验证 CloudFormation 模板。
访问 EC2 实例,其中 BYOC 预检验证已安装。
配置 CloudFormation 模板进行 BYOC 预检验证¶
BYOC 验证器的 CloudFormation 模板包括所有参数的默认值,不应更改这些默认值。
BYO-VPC 验证器的 CloudFormation 模板包括大多数参数的默认值,不应更改这些默认值。但是,以下参数没有默认值,必须使用您计划用于实际部署的输入来提供:
InfraVPC选择现有的 VPC。
PrivateSubnet1Openflow 运行时的第一个专用子网。
PrivateSubnet2EKS 控制平面的第二个专用子网。
PrivateSecurityGroup代理实例、EC2 Instance Connect 端点和 EKS 集群的安全组。
EBSKMSKeyArn用于加密 EBS 卷的可选 KMS 密钥 ARN。
运行 BYOC 预检验证和查看结果¶
按照以下步骤运行 BYOC 预检验证:
连接到 EC2 实例,其中 BYOC 预检验证已安装。
从主目录运行 BYOC 预检验证脚本:
/home/ec2-user/byoc-validator.sh
您可以根据需要多次运行 BYOC 预检验证。
查看
home目录中的输出文件:每次运行都会生成一个新的带时间戳的结果文件,例如:
/home/ec2-user/byoc-validation-results-YYYYMMDDHHMMSS.txt打开并检查结果:
使用您喜欢的工具读取输出并查看通过/失败消息。
按照以下步骤对现有 VPC 运行 BYOC 预检验证:
连接到 EC2 实例,其中 BYOC 预检验证已安装。
在主目录中运行 BYOC 预检验证脚本:
/home/ec2-user/byo-vpc-validator.sh
您可以根据需要多次运行 BYOC 预检验证。
查看
home目录中的输出文件:每次运行都会生成一个新的带时间戳的结果文件,例如:
/home/ec2-user/byo-vpc-validation-results-YYYYMMDDHHMMSS.txt打开并检查结果:
使用您喜欢的工具读取输出并查看通过/失败消息。
输出示例¶
以下示例显示了成功的验证输出:
2026-01-15 11:43:37,599 - INFO - Starting BYO-VPC validation suite...
2026-01-15 11:43:37,599 - INFO - ============================================================
...
2026-01-15 11:43:37,599 - INFO - Starting Prerequisites validation...
2026-01-15 11:43:37,704 - INFO - Running validation rule: internet_gateway
2026-01-15 11:43:38,538 - INFO - ✅ internet_gateway: Internet Gateway validation passed
...
2026-01-15 11:43:39,769 - INFO - Prerequisites Summary: 4/4 rules passed
2026-01-15 11:43:39,769 - INFO - --------------------------------------------------
2026-01-15 11:43:39,769 - INFO - Starting Network validation...
2026-01-15 11:43:39,780 - INFO - Running validation rule: snowflake_authentication
2026-01-15 11:43:41,130 - INFO - ✅ snowflake_authentication: Snowflake OAuth authentication successful
...
2026-01-15 11:43:55,920 - INFO - Network Summary: 7/7 rules passed
2026-01-15 11:43:55,920 - INFO - --------------------------------------------------
2026-01-15 11:43:55,920 - INFO - Starting Permissions validation...
2026-01-15 11:43:55,946 - INFO - Running validation rule: private_security_group
2026-01-15 11:43:56,766 - INFO - ✅ private_security_group: Private security group validation passed
...
2026-01-15 11:43:57,560 - INFO - Permissions Summary: 2/2 rules passed
2026-01-15 11:43:57,560 - INFO - ============================================================
2026-01-15 11:43:57,560 - INFO - 🎉 Openflow compatibility checker completed successfully!
输出使用状态图标突出显示每项检查:
✅ – 满足要求。
❌ – 不满足要求,需要采取措施。
所需的 AWS 权限¶
CloudFormation 模板会创建一个 IAM 角色,该角色具有安装了 BYOC 预检验证的 EC2 实例所需的权限。如果您的组织使用自定义 IAM 控制,请确保实例角色包含以下权限:
访问模板创建的 Snowflake OAuth 密钥所需的权限:
secretsmanager:GetSecretValue
检查网络资源所需的权限:
ec2:DescribeInternetGatewaysec2:DescribeSubnetsec2:DescribeRouteTablesec2:DescribeNATGatewaysec2:DescribeSecurityGroups
仅在验证可选的 EBS KMS 密钥时所需的权限:
kms:DescribeKeykms:GetKeyPolicy
Secrets Manager 权限的范围限定为由模板创建的 BYOC 预检验证密钥。EC2 和 KMS 操作的范围可限定为 ``*``(只读元数据)。
清理¶
验证完成后,您可以删除 BYOC 预检验证,以免持续产生 AWS 成本。要删除 BYOC 预检验证,请删除用于创建它的 CloudFormation 堆栈。这会自动移除 EC2 实例、IAM 角色和 Secrets Manager 密钥。