Skip to content
/ garm Public

Garm is kubernetes authorization webhook (SubjectAccessReview API) server for Athenz

License

Notifications You must be signed in to change notification settings

AthenZ/garm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0379fdd · Dec 16, 2024
Apr 8, 2024
Dec 12, 2024
Apr 21, 2023
Oct 18, 2023
Dec 18, 2018
Apr 21, 2019
Dec 12, 2024
Oct 18, 2023
Feb 27, 2024
Dec 16, 2024
Jul 12, 2023
Dec 12, 2024
Apr 20, 2023
Jun 19, 2020
Jan 11, 2024
Jun 19, 2020
Oct 3, 2022
Oct 18, 2023
Nov 27, 2024
Oct 3, 2022
Oct 3, 2022
Oct 18, 2023
Oct 18, 2023
Oct 18, 2023
Nov 27, 2024
Nov 27, 2024
Dec 12, 2024
Oct 18, 2023

Repository files navigation

Garm

License: Apache GitHub release (latest by date) Docker Image Version (tag latest) Go Report Card GoDoc Contributor Covenant

logo

What is Garm

concept

Garm implements the Kubernetes authorization webhook interface to provide access control on your K8s resources with Athenz RBAC policy. It allows flexible resource mapping from K8s resources to Athenz ones, mutli-tenancy, and black/white list.

By default, Garm replies the native Kubernetes authentication for authorization. However, it also supports the Kubernetes authentication webhook. Using the authentication hook requires Athenz to be able to sign tokens for users.

Requires go 1.18 or later.

Use Case

Authorization

use case

  1. K8s webhook request (SubjectAccessReview) (Webhook Mode - Kubernetes)
    • the K8s API server wants to know if the user is allowed to do the requested action
  2. Athenz RBAC request (Athenz)
    • Athenz server contains the user authorization information for access control
    • ask Athenz server is the user action is allowed based on pre-configured policy

Garm convert the K8s request to Athenz request based on the mapping rules in config.yaml (example).

P.S. It is just a sample deployment solution above. Garm can work on any environment as long as it can access both the API server and the Athenz server.

Docker

$ docker pull docker.io/athenz/garm

Usage

About releases

  • Releases
    • GitHub release (latest by date)
    • Docker Image Version (tag latest)