如何通过Terraform EKS模块添加IAM访问条目
使用Terraform EKS模块添加额外IAM访问条目
要给EKS集群添加更多关联不同策略的IAM访问条目,你可以通过模块的iam_access_entries参数配置,这是官方模块专门用来批量定义IAM访问条目的字段,具体配置方式如下:
基础配置示例
在你的module "eks"块中添加iam_access_entries参数,每个条目对应一个IAM角色/用户和关联的权限策略:
module "eks" { source = "terraform-aws-modules/eks/aws" version = "~> 20.0" # 请使用匹配你环境的版本 # 集群基础配置(根据你的实际情况调整) cluster_name = "my-eks-cluster" cluster_version = "1.29" # 保留已开启的创建者管理员权限 enable_cluster_creator_admin_permissions = true # 添加额外的IAM访问条目 iam_access_entries = { # 示例1:DevOps团队角色关联管理员权限 devops_admin = { principal_arn = "arn:aws:iam::123456789012:role/devops-team-role" policy_associations = { admin_policy = { policy_arn = "arn:aws:iam::aws:policy/AmazonEKSClusterAdminPolicy" } } } # 示例2:数据分析师角色关联只读权限 data_analyst = { principal_arn = "arn:aws:iam::123456789012:role/data-analyst-role" policy_associations = { read_only_policy = { policy_arn = "arn:aws:iam::aws:policy/AmazonEKSViewPolicy" } } } # 示例3:应用部署角色关联自定义权限策略 app_deployer = { principal_arn = "arn:aws:iam::123456789012:role/app-deployer-role" policy_associations = { custom_deploy_policy = { policy_arn = "arn:aws:iam::123456789012:policy/EKSAppDeployPolicy" } } } } }
关键参数说明
principal_arn:需要添加权限的IAM角色或用户的ARNpolicy_associations:关联的权限策略集合,同一个主体可绑定多个策略,只需在该块下添加更多键值对即可- 每个条目自定义唯一键名(如
devops_admin),用于Terraform追踪资源状态
注意事项
- 确保使用的EKS模块版本支持
iam_access_entries参数(v19.0及以上版本已支持,建议使用最新稳定版) - 若需给同一主体绑定多策略,可按如下格式配置:
policy_associations = { admin_policy = { policy_arn = "arn:aws:iam::aws:policy/AmazonEKSClusterAdminPolicy" } service_policy = { policy_arn = "arn:aws:iam::aws:policy/AmazonEKSServicePolicy" } }
- 执行
terraform plan和terraform apply后,这些条目会自动同步到EKS集群的IAM访问条目列表,效果与手动添加一致
内容的提问来源于stack exchange,提问作者kev
相关产品推荐
相关产品推荐

