使用Terraform创建AWS EKS集群时遭遇access_config块不支持错误
问题:Terraform创建EKS集群时
access_config块报错 我参考Terraform AWS provider官方文档中的“EKS Cluster with Access Config”章节,用Terraform创建AWS EKS集群,在aws_eks_cluster资源里添加access_config块后,执行terraform plan时出现如下错误:
在eks.tf第144行,resource "aws_eks_cluster" "aws_eks"中:144: access_config {
此处不期望出现类型为"access_config"的块。
相关代码片段:
resource "aws_eks_cluster" "aws_eks" { name = var.eks_cluster_name role_arn = aws_iam_role.eks_cluster.arn enabled_cluster_log_types = ["api", "audit", "authenticator"] vpc_config { endpoint_private_access = true endpoint_public_access = false subnet_ids = [ aws_subnet.eks_public_subnet[0].id, aws_subnet.eks_public_subnet[1].id, aws_subnet.eks_private_subnet[0].id, aws_subnet.eks_private_subnet[1].id ] } access_config { authentication_mode = "API" bootstrap_cluster_creator_admin_permissions = true } depends_on = [ aws_iam_role_policy_attachment.AmazonEKSClusterPolicy, aws_cloudwatch_log_group.eks_logs ] }
解决方案
这个报错的核心原因是你当前使用的AWS Terraform provider版本不支持access_config块——该特性是在AWS provider v4.22.0版本才引入的,用于配置EKS集群的访问认证规则。
按以下步骤解决:
- 检查当前provider版本:执行命令
terraform providers查看本地AWS provider的版本号 - 升级provider版本:在你的Terraform配置文件(通常是
versions.tf)中更新AWS provider的版本约束,确保版本不低于v4.22.0,示例配置:
terraform { required_providers { aws = { source = "hashicorp/aws" version = ">= 4.22.0" # 也可以指定最新稳定版,比如~> 5.30.0 } } }
- 执行升级:运行
terraform init -upgrade命令,让Terraform下载并启用指定版本的AWS provider - 重新执行计划:再次运行
terraform plan,此时access_config块就能被正常识别
注意:升级provider前,建议确认你的Terraform核心版本与新provider版本兼容,避免引发其他资源的兼容性问题。
内容的提问来源于stack exchange,提问作者user6329667
相关产品推荐
相关产品推荐

