@@ -3222,6 +3222,217 @@ Resources:
3222
3222
PolicyName : root
3223
3223
RoleName : " {{.Cluster.LocalID}}-audittrail-adapter"
3224
3224
Type : ' AWS::IAM::Role'
3225
+ # {{- if and (eq .Cluster.Provider "zalando-eks") (eq .Cluster.ConfigItems.eks_ip_family "ipv6") }}
3226
+ AWSLoadBalancerControllerIAMRole :
3227
+ Properties :
3228
+ AssumeRolePolicyDocument : !Sub
3229
+ - |
3230
+ {
3231
+ "Version": "2012-10-17",
3232
+ "Statement": [
3233
+ {
3234
+ "Effect": "Allow",
3235
+ "Principal": {
3236
+ "Federated": [
3237
+ "arn:aws:iam::${AWS::AccountId}:oidc-provider/${OIDC}"
3238
+ ]
3239
+ },
3240
+ "Action": [
3241
+ "sts:AssumeRoleWithWebIdentity"
3242
+ ],
3243
+ "Condition": {
3244
+ "StringEquals": {
3245
+ "${OIDC}:sub": "system:serviceaccount:kube-system:aws-load-balancer-controller"
3246
+ }
3247
+ }
3248
+ }
3249
+ ]
3250
+ }
3251
+ - OIDC : !Select [1, !Split ["//", !GetAtt EKSCluster.OpenIdConnectIssuerUrl]]
3252
+ Path : /
3253
+ Policies :
3254
+ - PolicyDocument :
3255
+ Version : ' 2012-10-17'
3256
+ Statement :
3257
+ - Effect : Allow
3258
+ Action :
3259
+ - iam:CreateServiceLinkedRole
3260
+ Resource : " *"
3261
+ Condition :
3262
+ StringEquals :
3263
+ iam:AWSServiceName : elasticloadbalancing.amazonaws.com
3264
+ - Effect : Allow
3265
+ Action :
3266
+ - ec2:DescribeAccountAttributes
3267
+ - ec2:DescribeAddresses
3268
+ - ec2:DescribeAvailabilityZones
3269
+ - ec2:DescribeInternetGateways
3270
+ - ec2:DescribeVpcs
3271
+ - ec2:DescribeVpcPeeringConnections
3272
+ - ec2:DescribeSubnets
3273
+ - ec2:DescribeSecurityGroups
3274
+ - ec2:DescribeInstances
3275
+ - ec2:DescribeNetworkInterfaces
3276
+ - ec2:DescribeTags
3277
+ - ec2:GetCoipPoolUsage
3278
+ - ec2:DescribeCoipPools
3279
+ - ec2:GetSecurityGroupsForVpc
3280
+ - ec2:DescribeIpamPools
3281
+ - elasticloadbalancing:DescribeLoadBalancers
3282
+ - elasticloadbalancing:DescribeLoadBalancerAttributes
3283
+ - elasticloadbalancing:DescribeListeners
3284
+ - elasticloadbalancing:DescribeListenerCertificates
3285
+ - elasticloadbalancing:DescribeSSLPolicies
3286
+ - elasticloadbalancing:DescribeRules
3287
+ - elasticloadbalancing:DescribeTargetGroups
3288
+ - elasticloadbalancing:DescribeTargetGroupAttributes
3289
+ - elasticloadbalancing:DescribeTargetHealth
3290
+ - elasticloadbalancing:DescribeTags
3291
+ - elasticloadbalancing:DescribeTrustStores
3292
+ - elasticloadbalancing:DescribeListenerAttributes
3293
+ - elasticloadbalancing:DescribeCapacityReservation
3294
+ Resource : " *"
3295
+ - Effect : Allow
3296
+ Action :
3297
+ - cognito-idp:DescribeUserPoolClient
3298
+ - acm:ListCertificates
3299
+ - acm:DescribeCertificate
3300
+ - iam:ListServerCertificates
3301
+ - iam:GetServerCertificate
3302
+ - waf-regional:GetWebACL
3303
+ - waf-regional:GetWebACLForResource
3304
+ - waf-regional:AssociateWebACL
3305
+ - waf-regional:DisassociateWebACL
3306
+ - wafv2:GetWebACL
3307
+ - wafv2:GetWebACLForResource
3308
+ - wafv2:AssociateWebACL
3309
+ - wafv2:DisassociateWebACL
3310
+ - shield:GetSubscriptionState
3311
+ - shield:DescribeProtection
3312
+ - shield:CreateProtection
3313
+ - shield:DeleteProtection
3314
+ Resource : " *"
3315
+ - Effect : Allow
3316
+ Action :
3317
+ - ec2:AuthorizeSecurityGroupIngress
3318
+ - ec2:RevokeSecurityGroupIngress
3319
+ Resource : " *"
3320
+ - Effect : Allow
3321
+ Action :
3322
+ - ec2:CreateSecurityGroup
3323
+ Resource : " *"
3324
+ - Effect : Allow
3325
+ Action :
3326
+ - ec2:CreateTags
3327
+ Resource : arn:aws:ec2:*:*:security-group/*
3328
+ Condition :
3329
+ StringEquals :
3330
+ ec2:CreateAction : CreateSecurityGroup
3331
+ ' Null ' :
3332
+ aws:RequestTag/elbv2.k8s.aws/cluster : ' false'
3333
+ - Effect : Allow
3334
+ Action :
3335
+ - ec2:CreateTags
3336
+ - ec2:DeleteTags
3337
+ Resource : arn:aws:ec2:*:*:security-group/*
3338
+ Condition :
3339
+ ' Null ' :
3340
+ aws:RequestTag/elbv2.k8s.aws/cluster : ' true'
3341
+ aws:ResourceTag/elbv2.k8s.aws/cluster : ' false'
3342
+ - Effect : Allow
3343
+ Action :
3344
+ - ec2:AuthorizeSecurityGroupIngress
3345
+ - ec2:RevokeSecurityGroupIngress
3346
+ - ec2:DeleteSecurityGroup
3347
+ Resource : " *"
3348
+ Condition :
3349
+ ' Null ' :
3350
+ aws:ResourceTag/elbv2.k8s.aws/cluster : ' false'
3351
+ - Effect : Allow
3352
+ Action :
3353
+ - elasticloadbalancing:CreateLoadBalancer
3354
+ - elasticloadbalancing:CreateTargetGroup
3355
+ Resource : " *"
3356
+ Condition :
3357
+ ' Null ' :
3358
+ aws:RequestTag/elbv2.k8s.aws/cluster : ' false'
3359
+ - Effect : Allow
3360
+ Action :
3361
+ - elasticloadbalancing:CreateListener
3362
+ - elasticloadbalancing:DeleteListener
3363
+ - elasticloadbalancing:CreateRule
3364
+ - elasticloadbalancing:DeleteRule
3365
+ Resource : " *"
3366
+ - Effect : Allow
3367
+ Action :
3368
+ - elasticloadbalancing:AddTags
3369
+ - elasticloadbalancing:RemoveTags
3370
+ Resource :
3371
+ - arn:aws:elasticloadbalancing:*:*:targetgroup/*/*
3372
+ - arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*
3373
+ - arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*
3374
+ Condition :
3375
+ ' Null ' :
3376
+ aws:RequestTag/elbv2.k8s.aws/cluster : ' true'
3377
+ aws:ResourceTag/elbv2.k8s.aws/cluster : ' false'
3378
+ - Effect : Allow
3379
+ Action :
3380
+ - elasticloadbalancing:AddTags
3381
+ - elasticloadbalancing:RemoveTags
3382
+ Resource :
3383
+ - arn:aws:elasticloadbalancing:*:*:listener/net/*/*/*
3384
+ - arn:aws:elasticloadbalancing:*:*:listener/app/*/*/*
3385
+ - arn:aws:elasticloadbalancing:*:*:listener-rule/net/*/*/*
3386
+ - arn:aws:elasticloadbalancing:*:*:listener-rule/app/*/*/*
3387
+ - Effect : Allow
3388
+ Action :
3389
+ - elasticloadbalancing:ModifyLoadBalancerAttributes
3390
+ - elasticloadbalancing:SetIpAddressType
3391
+ - elasticloadbalancing:SetSecurityGroups
3392
+ - elasticloadbalancing:SetSubnets
3393
+ - elasticloadbalancing:DeleteLoadBalancer
3394
+ - elasticloadbalancing:ModifyTargetGroup
3395
+ - elasticloadbalancing:ModifyTargetGroupAttributes
3396
+ - elasticloadbalancing:DeleteTargetGroup
3397
+ - elasticloadbalancing:ModifyListenerAttributes
3398
+ - elasticloadbalancing:ModifyCapacityReservation
3399
+ - elasticloadbalancing:ModifyIpPools
3400
+ Resource : " *"
3401
+ Condition :
3402
+ ' Null ' :
3403
+ aws:ResourceTag/elbv2.k8s.aws/cluster : ' false'
3404
+ - Effect : Allow
3405
+ Action :
3406
+ - elasticloadbalancing:AddTags
3407
+ Resource :
3408
+ - arn:aws:elasticloadbalancing:*:*:targetgroup/*/*
3409
+ - arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*
3410
+ - arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*
3411
+ Condition :
3412
+ StringEquals :
3413
+ elasticloadbalancing:CreateAction :
3414
+ - CreateTargetGroup
3415
+ - CreateLoadBalancer
3416
+ ' Null ' :
3417
+ aws:RequestTag/elbv2.k8s.aws/cluster : ' false'
3418
+ - Effect : Allow
3419
+ Action :
3420
+ - elasticloadbalancing:RegisterTargets
3421
+ - elasticloadbalancing:DeregisterTargets
3422
+ Resource : arn:aws:elasticloadbalancing:*:*:targetgroup/*/*
3423
+ - Effect : Allow
3424
+ Action :
3425
+ - elasticloadbalancing:SetWebAcl
3426
+ - elasticloadbalancing:ModifyListener
3427
+ - elasticloadbalancing:AddListenerCertificates
3428
+ - elasticloadbalancing:RemoveListenerCertificates
3429
+ - elasticloadbalancing:ModifyRule
3430
+ - elasticloadbalancing:SetRulePriorities
3431
+ Resource : " *"
3432
+ PolicyName : root
3433
+ RoleName : " aws-load-balancer-controller-{{.Cluster.Name}}"
3434
+ Type : ' AWS::IAM::Role'
3435
+ # {{- end }}
3225
3436
RemoteFilesEncryptionKey :
3226
3437
Type : " AWS::KMS::Key"
3227
3438
Properties :
0 commit comments