在aws-auth配置映射中使用角色

我正在使用这个terraform模块创建eks集群:https://github.com/terraform-aws-modules/terraform-aws-eks

然后,我创建一个其他角色,并将其添加到与example in the repo类似的map_roles输入中 (我的角色是使用CloudWatch)

{
    rolearn  = "arn:aws:iam::66666666666:role/role1"
    username = "role1"
    groups   = ["system:masters"]
}

我可以验证该角色是否与模块创建的角色一起添加到aws-auth配置映射中。

当应用尝试使用CloudWatch时出现此错误:

  

用户:arn:aws:sts :: xxx:assumed-role / yyy / zzz无权执行:logs:DescribeLogGroups on resource:arn:aws:logs:xxx:yyy:log-group :: log-流

错误消息中的用户arn的yyy部分与模块创建的角色arn匹配。所以我以为我使用了错误的角色?如果可以,我该如何选择正确的凭证? (我使用的是.NETcore,创建AmazonCloudWatchLogsClient时未指定任何凭据)

当我手动编辑该角色并添加日志的权限时,该应用程序将运行。不知道这是否是正确的方法,如果可以,如何在terraforming中添加权限?

okam6hz 回答:在aws-auth配置映射中使用角色

我最终将eks module拉到了本地,并为现有角色添加了更多策略:

resource "aws_iam_policy" "my_new_policy" {
  name_prefix = "eks-worker-my_new_policy-${aws_eks_cluster.this.name}"
  description = "EKS worker node my_new_policy policy for cluster ${aws_eks_cluster.this.name}"
  policy      = data.aws_iam_policy_document.my_new_policy.json
  path        = var.iam_path
}

data "aws_iam_policy_document" "my_new_policy" {
  statement {
    sid    = "my_new_policy"
    effect = "Allow"

    actions = [
      "logs:DescribeLogGroups"
    ]

    resources = ["*"]
  }
}
本文链接:https://www.f2er.com/2986102.html

大家都在问