A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Kubernetes

Curso de Kubernetes

Marcos Lilljedahl

Marcos Lilljedahl

RBAC

31/33
Recursos

Role based access control(RBAC) es un mecanismo de kubernetes para gestionar roles y la asociaci贸n de estos a los usuarios para delimitar las acciones que pueden realizar dentro de la plataforma.

  • Un rol es un objeto que contiene una lista de rules
  • Un rolebiding asocia un rol a un usuario
  • Pueden existir usuarios, roles y rolebidings con el mismo nombre
  • Una buena pr谩ctica es tener un 1-1-1 bidings
  • Los Cluster-scope permissions permiten definir permisos a nivel de cluster y no solo namespace
  • Un pod puede estar asociado a un service-account

Aportes 13

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Comandos de la clase:

--Crear el service account
kubectl create sa viewer

--Crear el RoleBinding
kubectl create rolebinding viewercanview --clusterrole=view --serviceaccount=default:viewer

--Correr el pod
kubectl run eyepod --rm -ti --restart=Never --serviceaccount=viewer --image alpine

--Dentro del pod, obtener la 煤ltima versi贸n estable de kubernetes
curl https://storage.googleapis.com/kubernetes-release/release/stable.txt

--Descargar la versi贸n de kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.1/bin/linux/amd64/kubectl

--Hacer a kubectl ejecutable

chmod +x ./kubectl

--Obtener todo

./kubectl get all

--Preguntas de authorization

./kubectl auth can-i list nodes

./kubectl auth can-i create pods

./kubectl auth can-i get pods

--Obtener RoleBindings

kubectl get clusterrolebindings -o yaml | grep -e kubernetes-admin -e system:masters

kubectl describe clusterrolebinding cluster-admin





Un tema un poco complejo y delicado como para tratarlo en una sola clase.

Role and ClusterRole
An RBAC Role or ClusterRole contains rules that represent a set of permissions. Permissions are purely additive (there are no 鈥渄eny鈥 rules). A Role always sets permissions within a particular namespace; when you create a Role, you have to specify the namespace it belongs in. ClusterRole, by contrast, is a non-namespaced resource.

`

RoleBinding and ClusterRoleBinding
A role binding grants the permissions defined in a role to a user or set of users. It holds a list of subjects (users, groups, or service accounts), and a reference to the role being granted. A RoleBinding grants permissions within a specific namespace whereas a ClusterRoleBinding grants that access cluster-wide.

No he podido instalar CURL

/ # apk add --no-cache curl
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz: temporary error (try again later)
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz: temporary error (try again later)
ERROR: unsatisfiable constraints:
  curl (missing):
    required by: world[curl]
/ # curl https://google.com
/bin/sh: curl: not found
/ #

La API de RBAC declara cuatro tipos de objetos de Kubernetes: Role, ClusterRole, RoleBinding y ClusterRoleBinding. Puede describir objetos o modificarlos mediante herramientas como kubectl, como cualquier otro objeto de Kubernetes.

The RBAC API declares four kinds of Kubernetes object: Role, ClusterRole, RoleBinding and ClusterRoleBinding.

Esta clase est谩 desacutalizada.

Primero, el pod no tiene curl instalado, pero siempre pueden usar wget. Reemplaza los 0 por la versi贸n adecuada de kubectl

wget https://storage.googleapis.com/kubernetes-release/release/v0.0.0/bin/linux/amd64/kubectl

chmod +x kubectl

Segundo, al parecer el flag --serviceaccount fue deprecado y ya no hace nada. Se puede hacer esta 鈥渢rampa鈥 para tener el mismo comportamiento.

kubectl run eyepod --rm -ti --restart=Never --image alpine --overrides='{ "spec": { "serviceAccount": "viewer" } }'

驴Alguien tiene alguna manera que se sienta menos 鈥渋mprovisada鈥?

Roles, Cluster Roles, Role/Cluster Bindings y Service Accounts

Vamos a definir brevemente en qu茅 consisten los tipos de permisos que somos capaces de dar mediante RBAC.

Roles: sirven para declarar servicios que afectan a Namespaces. Es decir, si necesitas darle permisos a un usuario, para acceder a un Namespace necesitas generar un role.
Recursos: son Pods, NameSpace, Servicios, Deployments鈥
Verbos: acciones que puedo lanzar a esos recursos (Get, List鈥)
Cluster Role: si lo que buscamos es dar permisos a todo el Cluster y todos los Namespaces generaremos un Cluster Role.
Role/Cluster Binding: define qu茅 usuarios tienen qu茅 roles. Sirve para asignar los usuarios a un Role o Cluster Role y poder asignar los permisos.
Role: definici贸n de los permisos para cada tipo de recurso de Kubernetes
Subject: son los propios usuarios o grupos de usuarios
Service Account: usuario que se crea para asignar los permisos
Service Accounts: para dar permisos a Pods, necesitamos generar Service Accounts o cuentas de servicio.

Tomado de: https://www.maquinasvirtuales.eu/kubernetes-permisos-rbac/

Entendido y comprendido

"Supones que typee mal el comando鈥"
Primera clase que realmente supongo bien antes que Matias :lau

Buenos estas clases la verdad

gracias 馃槂

Excelente Clase鈥

Muchas Gracias