解决AmazonEKSNodeRole创建ALB相关策略 AccessDenied问题

文章描述了一个关于AmazonEKS部署失败的问题,由于IAM角色权限不足,用户无法对弹性负载均衡器执行添加标签的操作。解决方法是创建一个新的IAM角色,并移除与elbv2.k8s.aws/cluster相关的条件,确保角色具有必要的资源操作权限,如创建、修改和管理ELB相关资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

Failed deploy model due to AccessDenied: User: arn:aws:sts::XXXXXXX:assumed-role/AmazonEKSNodeRole/i-05dde0c62e7539e0a is not authorized to perform: elasticloadbalancing:AddTags on resource: arn:aws:elasticloadbalancing:ap-east-1:369180331248:targetgroup/k8s-default-nginx-c1368b7102/* because no identity-based policy allows the elasticloadbalancing:AddTags action status code: 403, request id: c34c7eb0-8d66-4f91-ac73-697d709b8e0c

解决办法
重新创建IAM角色
v2.7.2_iam_policy

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iam:CreateServiceLinkedRole"
			],
			"Resource": "*",
			"Condition": {
				"StringEquals": {
					"iam:AWSServiceName": "elasticloadbalancing.amazonaws.com"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeAccountAttributes",
				"ec2:DescribeAddresses",
				"ec2:DescribeAvailabilityZones",
				"ec2:DescribeInternetGateways",
				"ec2:DescribeVpcs",
				"ec2:DescribeVpcPeeringConnections",
				"ec2:DescribeSubnets",
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeInstances",
				"ec2:DescribeNetworkInterfaces",
				"ec2:DescribeTags",
				"ec2:GetCoipPoolUsage",
				"ec2:DescribeCoipPools",
				"elasticloadbalancing:DescribeLoadBalancers",
				"elasticloadbalancing:DescribeLoadBalancerAttributes",
				"elasticloadbalancing:DescribeListeners",
				"elasticloadbalancing:DescribeListenerCertificates",
				"elasticloadbalancing:DescribeSSLPolicies",
				"elasticloadbalancing:DescribeRules",
				"elasticloadbalancing:DescribeTargetGroups",
				"elasticloadbalancing:DescribeTargetGroupAttributes",
				"elasticloadbalancing:DescribeTargetHealth",
				"elasticloadbalancing:DescribeTags",
				"elasticloadbalancing:DescribeTrustStores"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"cognito-idp:DescribeUserPoolClient",
				"acm:ListCertificates",
				"acm:DescribeCertificate",
				"iam:ListServerCertificates",
				"iam:GetServerCertificate",
				"waf-regional:GetWebACL",
				"waf-regional:GetWebACLForResource",
				"waf-regional:AssociateWebACL",
				"waf-regional:DisassociateWebACL",
				"wafv2:GetWebACL",
				"wafv2:GetWebACLForResource",
				"wafv2:AssociateWebACL",
				"wafv2:DisassociateWebACL",
				"shield:GetSubscriptionState",
				"shield:DescribeProtection",
				"shield:CreateProtection",
				"shield:DeleteProtection"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:AuthorizeSecurityGroupIngress",
				"ec2:RevokeSecurityGroupIngress"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateSecurityGroup"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateTags"
			],
			"Resource": "arn:aws:ec2:*:*:security-group/*",
			"Condition": {
				"StringEquals": {
					"ec2:CreateAction": "CreateSecurityGroup"
				},
				"Null": {
					"aws:RequestTag/elbv2.k8s.aws/cluster": "false"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateTags",
				"ec2:DeleteTags"
			],
			"Resource": "arn:aws:ec2:*:*:security-group/*",
			"Condition": {
				"Null": {
					"aws:RequestTag/elbv2.k8s.aws/cluster": "true",
					"aws:ResourceTag/elbv2.k8s.aws/cluster": "false"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:AuthorizeSecurityGroupIngress",
				"ec2:RevokeSecurityGroupIngress",
				"ec2:DeleteSecurityGroup"
			],
			"Resource": "*",
			"Condition": {
				"Null": {
					"aws:ResourceTag/elbv2.k8s.aws/cluster": "false"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"elasticloadbalancing:CreateLoadBalancer",
				"elasticloadbalancing:CreateTargetGroup"
			],
			"Resource": "*",
			"Condition": {
				"Null": {
					"aws:RequestTag/elbv2.k8s.aws/cluster": "false"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"elasticloadbalancing:CreateListener",
				"elasticloadbalancing:DeleteListener",
				"elasticloadbalancing:CreateRule",
				"elasticloadbalancing:DeleteRule"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"elasticloadbalancing:AddTags",
				"elasticloadbalancing:RemoveTags"
			],
			"Resource": [
				"arn:aws:elasticloadbalancing:*:*:targetgroup/*/*",
				"arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*",
				"arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*"
			],
			"Condition": {
				"Null": {
					"aws:ResourceTag/elbv2.k8s.aws/cluster": "false"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"elasticloadbalancing:AddTags",
				"elasticloadbalancing:RemoveTags"
			],
			"Resource": [
				"arn:aws:elasticloadbalancing:*:*:listener/net/*/*/*",
				"arn:aws:elasticloadbalancing:*:*:listener/app/*/*/*",
				"arn:aws:elasticloadbalancing:*:*:listener-rule/net/*/*/*",
				"arn:aws:elasticloadbalancing:*:*:listener-rule/app/*/*/*"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"elasticloadbalancing:ModifyLoadBalancerAttributes",
				"elasticloadbalancing:SetIpAddressType",
				"elasticloadbalancing:SetSecurityGroups",
				"elasticloadbalancing:SetSubnets",
				"elasticloadbalancing:DeleteLoadBalancer",
				"elasticloadbalancing:ModifyTargetGroup",
				"elasticloadbalancing:ModifyTargetGroupAttributes",
				"elasticloadbalancing:DeleteTargetGroup"
			],
			"Resource": "*",
			"Condition": {
				"Null": {
					"aws:ResourceTag/elbv2.k8s.aws/cluster": "false"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"elasticloadbalancing:AddTags"
			],
			"Resource": [
				"arn:aws:elasticloadbalancing:*:*:targetgroup/*/*",
				"arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*",
				"arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*"
			],
			"Condition": {
				"StringEquals": {
					"elasticloadbalancing:CreateAction": [
						"CreateTargetGroup",
						"CreateLoadBalancer"
					]
				},
				"Null": {
					"aws:RequestTag/elbv2.k8s.aws/cluster": "false"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"elasticloadbalancing:RegisterTargets",
				"elasticloadbalancing:DeregisterTargets"
			],
			"Resource": "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"elasticloadbalancing:SetWebAcl",
				"elasticloadbalancing:ModifyListener",
				"elasticloadbalancing:AddListenerCertificates",
				"elasticloadbalancing:RemoveListenerCertificates",
				"elasticloadbalancing:ModifyRule"
			],
			"Resource": "*"
		}
	]
}

将文件中的以下部分"aws:RequestTag/elbv2.k8s.aws/cluster": "true",删除即可

            "Condition": {
                "Null": {
                    -"aws:RequestTag/elbv2.k8s.aws/cluster": "true",
                    "aws:ResourceTag/elbv2.k8s.aws/cluster": "false"
                }
            }

重新创建,创建好了后替换原来加入eksnode的角色中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunson_Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值