All Projects → corneliusweig → Rakkess

corneliusweig / Rakkess

Licence: apache-2.0
Review Access - kubectl plugin to show an access matrix for k8s server resources

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Rakkess

rbac-tool
Rapid7 | insightCloudSec | Kubernetes RBAC Power Toys - Visualize, Analyze, Generate & Query
Stars: ✭ 546 (-27.3%)
Mutual labels:  authorization, rbac, kubectl
Rbac Lookup
Easily find roles and cluster roles attached to any user, service account, or group name in your Kubernetes cluster
Stars: ✭ 477 (-36.48%)
Mutual labels:  authorization, rbac
Kubectl Who Can
Show who has RBAC permissions to perform actions on different resources in Kubernetes
Stars: ✭ 432 (-42.48%)
Mutual labels:  rbac, kubectl
Rbac Manager
A Kubernetes operator that simplifies the management of Role Bindings and Service Accounts.
Stars: ✭ 737 (-1.86%)
Mutual labels:  authorization, rbac
Gorm Adapter
Gorm adapter for Casbin
Stars: ✭ 373 (-50.33%)
Mutual labels:  authorization, rbac
Casbin Rs
An authorization library that supports access control models like ACL, RBAC, ABAC in Rust.
Stars: ✭ 375 (-50.07%)
Mutual labels:  authorization, rbac
Gcr.io mirror
all of the gcr.io docker image mirror
Stars: ✭ 650 (-13.45%)
Mutual labels:  k8s, kubectl
sequelize-adapter
Sequelize adapter for Casbin
Stars: ✭ 51 (-93.21%)
Mutual labels:  authorization, rbac
Wetech Admin
wetech-admin是基于Spring Boot 2.0+Mybatis+Vue的轻量级后台管理系统,适用于中小型项目的管理后台,支持按钮级别的权限控制,系统具有最基本的用户管理、角色管理、权限管理等通用性功能,企业或个人可直接在此基础上进行开发,扩展,添加各自的需求和业务功能!
Stars: ✭ 570 (-24.1%)
Mutual labels:  authorization, rbac
Yosai
A Security Framework for Python applications featuring Authorization (rbac permissions and roles), Authentication (2fa totp), Session Management and an extensive Audit Trail
Stars: ✭ 582 (-22.5%)
Mutual labels:  authorization, rbac
Audit2rbac
Autogenerate RBAC policies based on Kubernetes audit logs
Stars: ✭ 702 (-6.52%)
Mutual labels:  authorization, rbac
Allok8
⚡️A pretty swell Kubernetes visualization tool
Stars: ✭ 281 (-62.58%)
Mutual labels:  k8s, kubectl
Krane
Kubernetes RBAC static Analysis & visualisation tool
Stars: ✭ 254 (-66.18%)
Mutual labels:  rbac, k8s
Kubiscan
A tool to scan Kubernetes cluster for risky permissions
Stars: ✭ 659 (-12.25%)
Mutual labels:  authorization, rbac
caddy-authorize
Authorization Plugin for Caddy v2 (JWT/PASETO)
Stars: ✭ 235 (-68.71%)
Mutual labels:  authorization, rbac
Casbin.net
An authorization library that supports access control models like ACL, RBAC, ABAC in .NET (C#)
Stars: ✭ 535 (-28.76%)
Mutual labels:  authorization, rbac
Geodesic
🚀 Geodesic is a DevOps Linux Distro. We use it as a cloud automation shell. It's the fastest way to get up and running with a rock solid Open Source toolchain. ★ this repo! https://slack.cloudposse.com/
Stars: ✭ 629 (-16.25%)
Mutual labels:  k8s, kubectl
kubectl-images
🕸 Show container images used in the cluster.
Stars: ✭ 153 (-79.63%)
Mutual labels:  k8s, kubectl
vcluster
vcluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
Stars: ✭ 1,360 (+81.09%)
Mutual labels:  k8s, kubectl
Athenz
Open source platform for X.509 certificate based service authentication and fine grained access control in dynamic infrastructures. Athenz supports provisioning and configuration (centralized authorization) use cases as well as serving/runtime (decentralized authorization) use cases.
Stars: ✭ 570 (-24.1%)
Mutual labels:  authorization, rbac

rakkess

Build Status Code Coverage Go Report Card LICENSE Releases

Review Access - kubectl plugin to show an access matrix for server resources

Intro

Have you ever wondered what access rights you have on a provided kubernetes cluster? For single resources you can use kubectl auth can-i list deployments, but maybe you are looking for a complete overview? This is what rakkess is for. It lists access rights for the current user and all server resources, similar to kubectl auth can-i --list.

It is also useful to find out who may interact with some server resource. Check out the sub-command rakkess resource below.

Demo

rakkess demo

Examples

Show access for all resources

  • ... at cluster scope

    rakkess
    
  • ... in some namespace

    rakkess --namespace default
    
  • ... with verbs

    rakkess --verbs get,delete,watch,patch
    
  • ... for another user

    rakkess --as other-user
    
  • ... for another service-account

    rakkess --sa kube-system:namespace-controller
    
  • ... and combine with common kubectl parameters

    KUBECONFIG=otherconfig rakkess --context other-context
    

Show subjects with access to a given resource1

rakkess demo

  • ...globally in all namespaces (only considers ClusterRoleBindings)

    rakkess resource configmaps
    
  • ...in a given namespace (considers RoleBindings and ClusterRoleBindings)

    rakkess resource configmaps -n default
    
  • ...with shorthand notation

    rakkess r cm   # same as rakkess resource configmaps
    
  • .. with custom verbs

    rakkess r cm --verbs get,delete,watch,patch
    
Name-restricted roles

Some roles only apply to resources with a specific name. To review such configurations, provide the resource name as additional argument. For example, show access rights for the ConfigMap called ingress-controller-leader-nginx in namespace ingress-nginx (note the subtle difference for nginx-ingress-serviceaccount to the previous example):

rakkess demo

As rakkess resource needs to query Roles, ClusterRoles, and their bindings, it usually requires administrative cluster access.

Also see Usage.

Installation

There are several ways to install rakkess. The recommended installation method is via krew.

Via krew

Krew is a kubectl plugin manager. If you have not yet installed krew, get it at https://github.com/kubernetes-sigs/krew. Then installation is as simple as

kubectl krew install access-matrix

The plugin will be available as kubectl access-matrix, see doc/USAGE for further details.

Binaries

When using the binaries for installation, also have a look at doc/USAGE.

Linux

curl -LO https://github.com/corneliusweig/rakkess/releases/download/v0.4.7/rakkess-amd64-linux.tar.gz \
  && tar xf rakkess-amd64-linux.tar.gz rakkess-amd64-linux \
  && chmod +x rakkess-amd64-linux \
  && mv -i rakkess-amd64-linux $GOPATH/bin/rakkess

OSX

curl -LO https://github.com/corneliusweig/rakkess/releases/download/v0.4.7/rakkess-amd64-darwin.tar.gz \
  && tar xf rakkess-amd64-darwin.tar.gz rakkess-amd64-darwin \
  && chmod +x rakkess-amd64-darwin \
  && mv -i rakkess-amd64-darwin $GOPATH/bin/rakkess

Windows

https://github.com/corneliusweig/rakkess/releases/download/v0.4.7/rakkess-windows-amd64.zip

From source

Build on host

Requirements:

  • go 1.15 or newer
  • GNU make
  • git

Compiling:

export PLATFORMS=$(go env GOOS)
make all   # binaries will be placed in out/

Build in docker

Requirements:

  • docker

Compiling:

mkdir rakkess && chdir rakkess
curl -Lo Dockerfile https://raw.githubusercontent.com/corneliusweig/rakkess/master/Dockerfile
docker build . -t rakkess-builder
docker run --rm -v $PWD:/go/bin/ --env PLATFORMS=$(go env GOOS) rakkess
docker rmi rakkess-builder

Binaries will be placed in the current directory.

Users

What are others saying about rakkess?
“Well, that looks handy! rakkess, a kubectl plugin to show an access matrix for all available resources.”@mhausenblas
“that's indeed pretty helpful. rakkess --as system:serviceaccount:my-ns:my-sa -n my-ns prints the access matrix of a service account in a namespace”@fakod
“THE BOMB. Love it.”@ralph_squillace
“This made my day. Well, not actually today but I definitively will use it a lot.”@Soukron

[1]: This mode was inspired by kubectl-who-can

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].