我使用模块 terraform-aws-modules/eks/aws 提供 EKS。默认情况下,该模块为 EKS EC2 IAM 角色提供了三个策略:AmazonEKSWorkerNodePolicy、AmazonEC2ContainerRegistryReadOnly 和 AmazonEKS_CNI_Policy。我想将附加策略 CloudWatchLogsFullAccess 附加到 IAM 角色。我阅读了文档。我没有找到附加它的方法。我必须登录 AWS 控制台,手动将 CloudWatchLogsFullAccess 附加到 IAM 角色。当我使用这个 EKS 模块配置 EKS 时,有没有办法使用 terraform 代码来附加它?
我在下面添加了代码。
resource "aws_iam_role_policy_attachment" "cloudWatch" {
role = module.eks.cluster_iam_role_arn
policy_arn = "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess"
}
但是,它抱怨“roleName 的指定值无效”。 错误:错误附加策略 arn:aws:iam::aws:policy/CloudWatchLogsFullAccess 到 IAM 角色 arn:aws:iam::678515134618:role/my-eks20210303061731134400000005: ValidationError: 指定的值无效。它必须仅包含字母数字字符和/或以下内容:+=,.@_- 状态码:400,请求id:aee57a35-ae72-499e-8653-e61e795818e4
答案 0 :(得分:1)
创建 eks 集群后,您可以从其输出中获取 cluster_iam_role_arn_。拥有 ARN,您可以使用 aws_iam_role_policy_attachment:
为其附加额外的策略resource "aws_iam_role_policy_attachment" "test-attach" {
role = module.myeks.cluster_iam_role_arn
policy_arn = "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess"
}