Enabling Legacy Authorization, Attribute-Based Access Control (ABAC), on Google Kubernetes Engine resources can reduce an
organization's ability to protect itself against access controls being compromised.

For Kubernetes, Attribute-Based Access Control has been superseded by Role-Based Access Control.
ABAC is not under active development anymore and thus should be avoided.

== Ask Yourself Whether

* This resource is essential for the information system infrastructure.
* This resource is essential for mission-critical functions.
* Compliance policies require access to this resource to be enforced through the use of Role-Based Access Control.

There is a risk if you answered yes to any of those questions.

== Recommended Secure Coding Practices

Unless you are relying on ABAC, leave it disabled.

== Sensitive Code Example

For https://cloud.google.com/kubernetes-engine[Google Kubernetes Engine]:
[source,terraform]
----
resource "google_container_cluster" "example" {
  enable_legacy_abac = true # Sensitive
}
----

== Compliant Solution

For https://cloud.google.com/kubernetes-engine[Google Kubernetes Engine]:
[source,terraform]
----
resource "google_container_cluster" "example" {
  enable_legacy_abac = false
}
----

== See

* CWE - https://cwe.mitre.org/data/definitions/668[CWE-668 - Exposure of Resource to Wrong Sphere]
* https://cloud.google.com/kubernetes-engine/docs/how-to/hardening-your-cluster#leave_abac_disabled[Google Cloud Documentation] - Hardening your cluster's security

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

* Make sure that enabling attribute-based access control is safe here.

=== Highlighting

* If an assignment is non-compliant, highlight the entire assignment


endif::env-github,rspecator-view[]

