Skip to content

Commit c422e6b

Browse files
authored
docs(mesh): AWS IAM workload validation ECS (#3593)
* docs(mesh): AWS IAM workload label validation ECS Add docs for workload label validation in Kong Mesh 2.13.x when MeshIdentity uses kuma.io/workload in SPIFFE ID path. IAM roles need matching workload tag, dataplanes need workload in metadata labels (not inbound tags). Backward compatible - only enforced when MeshIdentity with workload label exists. Based on Kong/kong-mesh 8757 Signed-off-by: Marcin Skalski <[email protected]> * fix(mesh): use modern admonition syntax Replace legacy {:.note} with {:.info} per Vale linting rules Signed-off-by: Marcin Skalski <[email protected]> * fix(mesh): escape liquid template syntax in ecs.md Wrap label workload example in raw tags to prevent Jekyll parsing error Signed-off-by: Marcin Skalski <[email protected]> * fix(mesh): correct MeshIdentity link paths Update to /mesh/policies/meshidentity/ Signed-off-by: Marcin Skalski <[email protected]> * fix(mesh): rm broken MeshIdentity links doc page does not exist, causes 404s Signed-off-by: Marcin Skalski <[email protected]> --------- Signed-off-by: Marcin Skalski <[email protected]>
1 parent 844cd15 commit c422e6b

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

app/mesh/ecs.md

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ In particular, every role must be tagged at a minimum with `kuma.io/type` set to
8787
either `dataplane`, `ingress`, or `egress`. For `dataplane`, i.e. a normal data
8888
plane proxy, the `kuma.io/mesh` tag is also required to be set.
8989

90-
This means that the setting of these two tags on IAM roles
90+
{% new_in 2.13 %} When using `MeshIdentity` with the `kuma.io/workload` label in its SPIFFE ID path template (e.g., `{% raw %}{{ label "kuma.io/workload" }}{% endraw %}`), the IAM role must also include a matching `kuma.io/workload` tag. This validation is enforced to ensure secure identity binding between IAM roles and dataplanes when workload labels are used.
91+
92+
This means that the setting of these tags on IAM roles
9193
must be restricted accordingly for your AWS account
9294
(which must be explicitly given to the CP, see below).
9395

@@ -233,7 +235,34 @@ It must always have the `kuma.io/type` tag set to either `"dataplane"`,
233235
`"ingress"`, or `"egress"`.
234236

235237
If it's a `"dataplane"` type, then it must also have the `kuma.io/mesh` tag set.
236-
Additionally, you can set the `kuma.io/service` tag to further restrict its identity.
238+
239+
{% new_in 2.13 %} When a `MeshIdentity` resource uses the `kuma.io/workload` label in its SPIFFE ID path template, the IAM role must include a `kuma.io/workload` tag that matches the dataplane's metadata labels. Ensure that:
240+
241+
- **For Kubernetes**: Add `kuma.io/workload` to Pod labels (automatically synced to dataplane metadata)
242+
- **For Universal/ECS**: Add `kuma.io/workload` to dataplane metadata labels:
243+
244+
```yaml
245+
type: Dataplane
246+
mesh: default
247+
name: dp-1
248+
labels:
249+
kuma.io/workload: <workload-name>
250+
networking:
251+
address: 127.0.0.1
252+
inbound:
253+
- port: 8080
254+
tags:
255+
kuma.io/service: backend
256+
```
257+
258+
The IAM role must have a corresponding tag:
259+
260+
```
261+
kuma.io/workload: <workload-name>
262+
```
263+
264+
{:.info}
265+
> This validation only applies when a `MeshIdentity` exists for the mesh and uses `kuma.io/workload` in its SPIFFE ID path template.
237266

238267
### Sidecar
239268

0 commit comments

Comments
 (0)