使用CloudFormation创建EKS集群时遇KubernetesApiAccess不允许错误
解决方案:CloudFormation EKS集群创建失败(额外键KubernetesApiAccess不允许)
问题原因
AWS CloudFormation的AWS::EKS::Cluster资源类型不支持KubernetesApiAccess这个自定义属性,CloudFormation会严格校验资源的属性字段,任何不在官方定义范围内的键都会触发属性验证失败。
修复步骤
- 移除非法属性:直接删除CloudFormation模板中
testCluster资源下的KubernetesApiAccess键值对。 - 替换为合法属性(如果有对应需求):
- 若要控制Kubernetes API服务器的访问范围,使用
AccessConfig属性配置(比如授权IP段、认证模式) - 若要管理集群的IAM权限,通过
RoleArn指定具备EKS集群管理权限的IAM角色 - 若要细化Kubernetes内部API访问控制,通过Kubernetes RBAC或IAM策略实现
- 若要控制Kubernetes API服务器的访问范围,使用
修正后的模板示例
Resources: testCluster: Type: AWS::EKS::Cluster Properties: Name: test-cluster # 指定具备EKS集群权限的IAM角色ARN RoleArn: arn:aws:iam::123456789012:role/your-eks-cluster-role ResourcesVpcConfig: SecurityGroupIds: - sg-xxxxxx SubnetIds: - subnet-xxxxxx - subnet-yyyyyy # 配置API访问控制(可选) AccessConfig: AuthenticationMode: API_AND_CONFIG_MAP BootstrapClusterCreatorAdminPermissions: true
验证方法
修改模板后重新提交CloudFormation堆栈,若没有其他非法属性,集群资源将正常进入创建流程。
内容的提问来源于stack exchange,提问作者PaulJ
相关产品推荐
相关产品推荐

