You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EKS集群节点组创建失败:无默认安全组访问权限问题排查

解决EKS节点组创建时的"无默认安全组访问权限"问题

问题分析

虽然你已经在配置中指定了安全组,但EKS仍提示无法访问默认安全组,通常是因为配置细节遗漏、权限不足或资源关联错误导致的。以下是针对性的解决方案:

具体解决步骤

1. 校验安全组的配置与关联

  • 确保aws_eks_node_group的remote_access块中显式指定了安全组ID,即使不需要SSH远程访问,也不能留空该字段。
  • 验证指定的安全组属于报错中的目标VPC(vpc-xxx),可通过AWS控制台查看安全组的VPC关联信息。
  • 检查Terraform代码中安全组的引用是否正确,比如是否用了aws_security_group.your_sg.id这类正确的资源ID引用,而非错误的变量或未创建的资源。

2. 补全节点组IAM角色的权限

  • EKS节点组使用的IAM角色需要具备访问安全组的权限,确保角色关联的策略包含ec2:DescribeSecurityGroups权限。如果是自定义策略,添加以下内容:
{
    "Effect": "Allow",
    "Action": "ec2:DescribeSecurityGroups",
    "Resource": "*"
}
  • 常用的托管策略(如AmazonEKSWorkerNodePolicy)已包含该权限,若使用自定义策略需手动补充。

3. 避免依赖默认安全组

  • 若使用启动模板配置节点组,要在启动模板中明确指定自定义安全组,禁止EKS自动使用VPC默认安全组。
  • 示例Terraform配置片段:
resource "aws_eks_node_group" "main" {
  cluster_name    = aws_eks_cluster.main.name
  node_group_name = "managed0"
  node_role_arn   = aws_iam_role.node_group.arn
  subnet_ids      = aws_subnet.private.*.id

  remote_access {
    ec2_ssh_key        = "your-key-pair-name"
    security_group_ids = [aws_security_group.node_group_sg.id] # 必须显式配置
  }

  # 若使用启动模板
  launch_template {
    id      = aws_launch_template.node_group.id
    version = "$Latest"
  }
}

4. 刷新Terraform状态并重新部署

  • 执行terraform refresh刷新资源状态,确保Terraform获取到最新的安全组配置信息。
  • 若之前的节点组创建已失败,先销毁该资源:terraform destroy -target=aws_eks_node_group.main,再重新执行terraform apply。

内容的提问来源于stack exchange,提问作者cloudbud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 22:55:20