Attribute-based access control (ABAC) defines an access control paradigm whereby access rights are granted to users through the use of policies which combine attributes together.
{% endcapture %}
{% capture body %}
## Policy File Format
For mode `ABAC`, also specify `--authorization-policy-file=SOME_FILENAME`.
The file format is [one JSON object per line](http://jsonlines.org/). There
should be no enclosing list or map, just one map per line.
Each line is a "policy object". A policy object is a map with the following
properties:
- Versioning properties:
-`apiVersion`, type string; valid values are "abac.authorization.kubernetes.io/v1beta1". Allows versioning and conversion of the policy format.
-`kind`, type string: valid values are "Policy". Allows versioning and conversion of the policy format.
-`spec` property set to a map with the following properties:
- Subject-matching properties:
-`user`, type string; the user-string from `--token-auth-file`. If you specify `user`, it must match the username of the authenticated user.
-`group`, type string; if you specify `group`, it must match one of the groups of the authenticated user. `system:authenticated` matches all authenticated requests. `system:unauthenticated` matches all unauthenticated requests.
- Resource-matching properties:
-`apiGroup`, type string; an API group.
- Ex: `extensions`
- Wildcard: `*` matches all API groups.
-`namespace`, type string; a namespace.
- Ex: `kube-system`
- Wildcard: `*` matches all resource requests.
-`resource`, type string; a resource type
- Ex: `pods`
- Wildcard: `*` matches all resource requests.
- Non-resource-matching properties:
-`nonResourcePath`, type string; non-resource request paths.
-`readonly`, type boolean, when true, means that the Resource-matching policy only applies to get, list, and watch operations, Non-resource-matching policy only applies to get operation.