如何将 CloudWatchLogsFullAccess 附加到 EKS EC2 实例的 IAM 角色

时间:2021-04-30 23:40:31

标签: amazon-web-services terraform amazon-iam amazon-eks

我使用模块 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

1 个答案:

答案 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"
}
相关问题