Skip to content
This repository was archived by the owner on Oct 20, 2023. It is now read-only.

Commit 2340800

Browse files
committed
Make serviceAccount and podLabelSelector mutually exclusive
Also add some clarification around security model Signed-off-by: Keith Mattix II <[email protected]>
1 parent 8953809 commit 2340800

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

apis/traffic-access/v1alpha4/traffic-access.md

+9-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010

1111
This set of resources allows users to define access control policy for their
1212
applications. It is the authorization side of the picture. Authentication should
13-
already be handled by the underlying implementation and surfaced through a subject.
13+
already be handled by the underlying implementation and surfaced through an X.509
14+
certificate subject name.
1415

1516
Access control in this specification is additive, all traffic is denied by default.
1617
See [tradeoffs](#tradeoffs) for a longer discussion about why.
@@ -21,7 +22,7 @@ An `IdentityBinding` declares the set of identities belonging to a particular wo
2122
for the purposes of policy. At present, Kubernetes does not natively provide any
2223
sort of identity resource outside of `ServiceAccount`. As such, many mesh
2324
implementations have turned to alternative identification schemes for more control
24-
over traffic routign and policy (e.g. SPIFFE, pod selectors, etc). Unfortunately,
25+
over traffic routing and policy (e.g. SPIFFE, pod selectors, etc). Unfortunately,
2526
these arbitrary identity mechanisms are rarely stored in a machine-accessible
2627
manner. This is the role of the `IdentityBinding` resource.
2728

@@ -56,8 +57,10 @@ and predictable behavior across runtime environments. `IdentityBinding` currentl
5657
supports 3 schemes:
5758

5859
- Pod Label selector (`podLabelSelectors`)
60+
- Mutually exclusive with `serviceAccount`
5961
- SPIFFE (`spiffeIdentities`)
6062
- Service Account (`serviceAccount`)
63+
- Mutually exclusive with `podLabelSelectors`
6164
- *Note:* The service account specified in this field is implied to exist
6265
in the `IdentityBinding`'s namespace. If one desires to govern access control
6366
for services replicated across different namespaces, they should create an
@@ -329,7 +332,10 @@ both `8301` and `8302` ports, but will block UDP traffic to `8300`.
329332
- Resources vs selectors - it would be possible to reference concrete resources
330333
such as a deployment instead of selecting across pods.
331334

332-
- This access control is on the destination (server) side, implicitly
335+
- This access control is on the destination (server) side, implicitly. It's important
336+
to note that only service owners should create IdentityBinding/TrafficTarget resources.
337+
The client should *not* be allowed to give itself access to server applications.
338+
Users should update their RBAC rules and cluster policies accordingly.
333339

334340
- Currently the specification does not have provision for the definition of
335341
higher level elements such as a service. It is probable that this specification

0 commit comments

Comments
 (0)