
Review Access - plugin de kubectl para mostrar una matriz de acceso para los recursos del servidor k8s
Revisar Acceso - plugin de kubectl para mostrar una matriz de acceso para recursos del servidor
¿Alguna vez te has preguntado qué derechos de acceso tienes en un clúster de Kubernetes proporcionado?
Para recursos individuales puedes usar kubectl auth can-i list deployments, pero tal vez estés buscando una visión general completa.
Para eso sirve rakkess.
Enumera los derechos de acceso para el usuario actual y todos los recursos del servidor, similar a kubectl auth can-i --list.
También es útil para descubrir quién puede interactuar con algún recurso del servidor.
Echa un vistazo al subcomando rakkess resource a continuación.

... a nivel de clúster
rakkess
... en algún namespace
rakkess --namespace default
... con verbos
rakkess --verbs get,delete,watch,patch
... para otro usuario
rakkess --as other-user
... para otra cuenta de servicio
rakkess --sa kube-system:namespace-controller
... y combínalo con parámetros comunes de kubectl
KUBECONFIG=otherconfig rakkess --context other-context

...globalmente en todos los namespaces (solo considera ClusterRoleBindings)
rakkess resource configmaps
...en un namespace dado (considera RoleBindings y ClusterRoleBindings)
rakkess resource configmaps -n default
...con notación abreviada
rakkess r cm # igual que rakkess resource configmaps
.. con verbos personalizados
rakkess r cm --verbs get,delete,watch,patch
Algunos roles solo se aplican a recursos con un nombre específico.
Para revisar dichas configuraciones, proporciona el nombre del recurso como argumento adicional.
Por ejemplo, muestra los derechos de acceso para el ConfigMap llamado ingress-controller-leader-nginx en el namespace ingress-nginx (nota la sutil diferencia para nginx-ingress-serviceaccount con respecto al ejemplo anterior):

Como rakkess resource necesita consultar Roles, ClusterRoles y sus vinculaciones, normalmente requiere acceso administrativo al clúster.
Véase también Uso.
Hay varias formas de instalar rakkess. El método de instalación recomendado es mediante krew.
Krew es un administrador de plugins de kubectl. Si aún no has instalado krew, consíguelo en
https://github.com/kubernetes-sigs/krew.
Entonces la instalación es tan simple como
kubectl krew install access-matrix
El plugin estará disponible como kubectl access-matrix, consulta doc/USAGE para más detalles.
Al usar los binarios para la instalación, también echa un vistazo a doc/USAGE.
curl -LO https://github.com/corneliusweig/rakkess/releases/download/v0.5.0/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
curl -LO https://github.com/corneliusweig/rakkess/releases/download/v0.5.0/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
https://github.com/corneliusweig/rakkess/releases/download/v0.5.0/rakkess-windows-amd64.zip
Requisitos:
Compilación:
export PLATFORMS=$(go env GOOS)
make all # los binarios se colocarán en out/
Requisitos:
Compilación:
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
Los binarios se colocarán en el directorio actual.
[1]: Este modo fue inspirado por kubectl-who-can
| ¿Qué dicen otros sobre rakkess? |
|---|
“¡Vaya, eso parece útil! rakkess, un plugin de kubectl para mostrar una matriz de acceso para todos los recursos disponibles.” – @mhausenblas |
“eso es realmente útil. rakkess --as system:serviceaccount:my-ns:my-sa -n my-ns imprime la matriz de acceso de una cuenta de servicio en un namespace” – @fakod |
| “LA BOMBA. Me encanta.” – @ralph_squillace |
| “Esto alegró mi día. Bueno, no hoy realmente, pero definitivamente lo usaré mucho.” – @Soukron |