You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// IAM Role ARN to assume when calling AWS APIs. Needed to assume a role in another account and prevent the confused deputy problem. https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html
The AWS ALB Ingress controller must be uninstalled before installing the AWS Load Balancer Controller.
9
9
Please follow our [migration guide](upgrade/migrate_v1_v2.md) to do a migration.
10
-
10
+
11
11
!!!warning "When using AWS Load Balancer Controller v2.5+"
12
-
The AWS LBC provides a mutating webhook for service resources to set the `spec.loadBalancerClass` field for service of type LoadBalancer on create.
13
-
This makes the AWS LBC the **default controller for service** of type LoadBalancer. You can disable this feature and revert to set Cloud Controller Manager (in-tree controller) as the default by setting the helm chart value **enableServiceMutatorWebhook to false** with `--set enableServiceMutatorWebhook=false` .
12
+
The AWS LBC provides a mutating webhook for service resources to set the `spec.loadBalancerClass` field for service of type LoadBalancer on create.
13
+
This makes the AWS LBC the **default controller for service** of type LoadBalancer. You can disable this feature and revert to set Cloud Controller Manager (in-tree controller) as the default by setting the helm chart value **enableServiceMutatorWebhook to false** with `--set enableServiceMutatorWebhook=false` .
14
14
You will no longer be able to provision new Classic Load Balancer (CLB) from your kubernetes service unless you disable this feature. Existing CLB will continue to work fine.
15
15
16
16
## Supported Kubernetes versions
@@ -30,7 +30,7 @@ The LBC is supported by AWS. Some clusters may be using the legacy "in-tree" fun
30
30
Isolated clusters are clusters without internet access, and instead reply on VPC endpoints for all required connects.
31
31
When installing the AWS LBC in isolated clusters, you need to disable shield, waf and wafv2 via controller flags `--enable-shield=false, --enable-waf=false, --enable-wafv2=false`
32
32
### Using the Amazon EC2 instance metadata server version 2 (IMDSv2)
33
-
We recommend blocking the access to instance metadata by requiring the instance to use [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) only. For more information, please refer to the AWS guidance [here](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node). If you are using the IMDSv2, set the hop limit to 2 or higher in order to allow the LBC to perform the metadata introspection.
33
+
We recommend blocking the access to instance metadata by requiring the instance to use [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) only. For more information, please refer to the AWS guidance [here](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node). If you are using the IMDSv2, set the hop limit to 2 or higher in order to allow the LBC to perform the metadata introspection.
34
34
35
35
You can set the IMDSv2 as follows:
36
36
```
@@ -127,6 +127,10 @@ If you're not setting up IAM roles for service accounts, apply the IAM policies
### You only want the LBC to add and remove IPs to already existing target groups:
133
+
130
134
The following IAM permissions subset is for those using `TargetGroupBinding` only and don't plan to use the LBC to manage security group rules:
131
135
132
136
```
@@ -152,6 +156,57 @@ The following IAM permissions subset is for those using `TargetGroupBinding` onl
152
156
}
153
157
```
154
158
159
+
### You only want the LBC to add and remove IPs to already existing target groups, also in other accounts, assuming roles
160
+
161
+
On the other hand, if you plan to use the LBC to manage also target groups in different accounts, you will need to add `"sts:AssumeRole"` to your list of permissions, in other words:
The assumed roles will need the exactly the same permissions, without `"sts:AssumeRole"`. The assumed role will need a to allow to be assumed by the main role, something like this:
Review the [worker nodes security group](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) docs. Your node security group must permit incoming traffic on TCP port 9443 from the Kubernetes control plane. This is needed for webhook access.
<td><i>(Optional)</i> In case the target group is in a differet AWS account, you put here the role that needs to be assumed in order to manipulate the target group.
<td><i>(Optional)</i> The external ID for the assume role operation. Optional, but recommended. It helps you to prevent the <ahref="https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html"target="_blank">confused deputy problem</a>.
64
+
</td></tr>
65
+
</table>
66
+
67
+
<tr><tdcolspan=2>
68
+
Refer to the Kubernetes API documentation for the other fields of the
Copy file name to clipboardexpand all lines: docs/guide/targetgroupbinding/targetgroupbinding.md
+23
Original file line number
Diff line number
Diff line change
@@ -109,6 +109,29 @@ spec:
109
109
...
110
110
```
111
111
112
+
### AssumeRole
113
+
114
+
Sometimes the AWS LoadBalancer controller needs to manipulate target groups from different AWS accounts.
115
+
The way to do that is assuming a role from such account. There are annotations that can help you with that:
116
+
117
+
* `alb.ingress.kubernetes.io/IamRoleArnToAssume`: the ARN that you need to assume
118
+
* `alb.ingress.kubernetes.io/AssumeRoleExternalId`: the external ID for the assume role operation. Optional, but recommended. It helps you to prevent the confused deputy problem ( https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html )
TargetGroupBinding CRD supports sharing the same target group ARN among multiple clusters. Setting this flag will ensure the controller only operates on targets within the cluster.
0 commit comments