在 aws-auth config-map 中使用角色
Using role in aws-auth config-map
我正在使用这个 terraform 模块创建 eks 集群:https://github.com/terraform-aws-modules/terraform-aws-eks
然后我创建一个额外的角色并添加到 map_roles
输入类似于 example in the repo
(我的角色是使用 CloudWatch)
{
rolearn = "arn:aws:iam::66666666666:role/role1"
username = "role1"
groups = ["system:masters"]
}
我可以验证该角色已与模块创建的角色一起添加到 aws-auth 配置映射中。
当应用程序尝试使用 CloudWatch 时出现此错误:
User: arn:aws:sts::xxx:assumed-role/yyy/zzz is not authorized to perform: logs:DescribeLogGroups on resource: arn:aws:logs:xxx:yyy:log-group::log-stream
错误消息中的用户 arn 的 yyy 部分与模块创建的角色 arn 匹配。所以我以为我使用了错误的角色?如果是这样,我该如何选择正确的凭证? (我正在使用 .NETcore,创建 AmazonCloudWatchLogsClient
而不指定任何凭据)
当我手动编辑该角色并添加日志权限时,该应用程序可以正常工作。不确定这是否是正确的方法,如果是这样我如何在地形改造中添加权限?
我最终将 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 = ["*"]
}
}
我正在使用这个 terraform 模块创建 eks 集群:https://github.com/terraform-aws-modules/terraform-aws-eks
然后我创建一个额外的角色并添加到 map_roles
输入类似于 example in the repo
(我的角色是使用 CloudWatch)
{
rolearn = "arn:aws:iam::66666666666:role/role1"
username = "role1"
groups = ["system:masters"]
}
我可以验证该角色已与模块创建的角色一起添加到 aws-auth 配置映射中。
当应用程序尝试使用 CloudWatch 时出现此错误:
User: arn:aws:sts::xxx:assumed-role/yyy/zzz is not authorized to perform: logs:DescribeLogGroups on resource: arn:aws:logs:xxx:yyy:log-group::log-stream
错误消息中的用户 arn 的 yyy 部分与模块创建的角色 arn 匹配。所以我以为我使用了错误的角色?如果是这样,我该如何选择正确的凭证? (我正在使用 .NETcore,创建 AmazonCloudWatchLogsClient
而不指定任何凭据)
当我手动编辑该角色并添加日志权限时,该应用程序可以正常工作。不确定这是否是正确的方法,如果是这样我如何在地形改造中添加权限?
我最终将 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 = ["*"]
}
}