|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
Control de acceso basado en funciones
Esta sección describe las expectativas para el RBAC de Rancher Monitoring.
Administradores de clúster
Por defecto, solo aquellos con el cluster-admin ClusterRole deberían poder:
-
Instalar la app
rancher-monitoringen un clúster y realizar toda otra configuración relevante en la ampliación del gráfico-
por ejemplo, si se crean paneles de control predeterminados, qué exportadores se despliegan en el clúster para recopilar métricas, etc.
-
-
Crear / modificar / eliminar ampliaciones de Prometheus en el clúster a través de CRs de Prometheus
-
Crear / modificar / eliminar ampliaciones de Alertmanager en el clúster a través de CRs de Alertmanager
-
Persistir nuevos paneles de control o fuentes de datos de Grafana creando ConfigMaps en el espacio de nombres apropiado
-
Exponer ciertas métricas de Prometheus a la API de Métricas Personalizadas de k8s para HPA a través de un Secreto en el espacio de nombres
cattle-monitoring-system
Usuarios con permisos basados en ClusterRole de Kubernetes
El gráfico rancher-monitoring instala los siguientes tres ClusterRoles. Por defecto, se agregan en el correspondiente ClusterRoles de k8s:
| ClusterRole | Agrega al ClusterRole predeterminado de K8s |
|---|---|
|
|
|
|
|
`ver ` |
Estos ClusterRoles proporcionan diferentes niveles de acceso a los CRDs de observabilidad según las acciones que se pueden realizar:
| CRDs (monitoring.coreos.com) | Admin. | Editar | Ver |
|---|---|---|---|
<ul><li> |
Obtener, Listar, Observar |
Obtener, Listar, Observar |
Obtener, Listar, Observar |
<ul><li> |
* |
* |
Obtener, Listar, Observar |
A un alto nivel, los siguientes permisos se asignan por defecto como resultado.
Usuarios con permisos de administrador/edición de Kubernetes
Solo aquellos que tienen el cluster-admin, admin o edit ClusterRole deberían poder:
-
Modificar la configuración del scrape de las ampliaciones de Prometheus a través de los CRs de ServiceMonitor y PodMonitor
-
Modificar las reglas de alerta/grabación de una ampliación de Prometheus a través de los CRs de PrometheusRules
Usuarios con permisos de visualización de Kubernetes
Solo aquellos que tienen algún ClusterRole de Kubernetes deberían poder:
-
Ver la configuración de los Prometheuses que están desplegados dentro del clúster
-
Ver la configuración de los Alertmanagers que están desplegados dentro del clúster
-
Ver la configuración de los scraping de los despliegues de Prometheus a través de ServiceMonitor y PodMonitor CRs
-
Ver las reglas de alerta/grabación de un despliegue de Prometheus a través de PrometheusRules CRs
Roles de observabilidad adicionales
La monitorización también crea Roles adicionales que no se asignan a los usuarios por defecto, pero que se crean dentro del clúster. Pueden ser vinculados a un espacio de nombres desplegando un RoleBinding que lo referencia. Para definir un RoleBinding con kubectl en lugar de a través de Rancher, haz clic aquí.
Los administradores deberían usar estos roles para proporcionar un acceso más granular a los usuarios:
| Función | Finalidad |
|---|---|
monitoring-config-admin |
Permitir a los administradores asignar roles a los usuarios para poder ver/modificar Secrets y ConfigMaps dentro del espacio de nombres cattle-monitoring-system. Modificar Secrets/ConfigMaps en este espacio de nombres podría permitir a los usuarios alterar la configuración de Alertmanager del clúster, la configuración del Adaptador de Prometheus, fuentes de datos adicionales de Grafana, secretos TLS, etc. |
monitoring-config-edit |
Permitir a los administradores asignar roles a los usuarios para poder ver/modificar Secrets y ConfigMaps dentro del espacio de nombres cattle-monitoring-system. Modificar Secrets/ConfigMaps en este espacio de nombres podría permitir a los usuarios alterar la configuración de Alertmanager del clúster, la configuración del Adaptador de Prometheus, fuentes de datos adicionales de Grafana, secretos TLS, etc. |
monitoring-config-view |
Permitir a los administradores asignar roles a los usuarios para poder ver Secrets y ConfigMaps dentro del espacio de nombres cattle-monitoring-system. Ver Secrets / ConfigMaps en este espacio de nombres podría permitir a los usuarios observar la configuración de Alertmanager del clúster, la configuración del Adaptador de Prometheus, fuentes de datos adicionales de Grafana, secretos TLS, etc. |
administrador-tablero-monitorización |
Permitir a los administradores asignar roles a los usuarios para poder editar / ver ConfigMaps dentro del espacio de nombres cattle-dashboards. Los ConfigMaps en este espacio de nombres corresponderán a los Tableros de Grafana que se persisten en el clúster. |
editar-tablero-monitorización |
Permitir a los administradores asignar roles a los usuarios para poder editar / ver ConfigMaps dentro del espacio de nombres cattle-dashboards. Los ConfigMaps en este espacio de nombres corresponderán a los Tableros de Grafana que se persisten en el clúster. |
ver-tablero-monitorización |
Permitir a los administradores asignar roles a los usuarios para poder ver ConfigMaps dentro del espacio de nombres cattle-dashboards. Los ConfigMaps en este espacio de nombres corresponderán a los Tableros de Grafana que se persisten en el clúster. |
Asignar Roles de Monitorización a través de Roles Personalizados
Los administradores pueden asignar roles personalizados en la interfaz de usuario de Rancher para administración, edición y visualización de monitorización. Estos "roles" se crean por defecto cuando se instala la aplicación de monitorización. Además, estos roles también se despliegan a los roles de Kubernetes correspondientes: administrador, edición y visualización ClusterRoles.
|
Importante
La interfaz de usuario no ofrecerá las opciones |
-
Crea el rol personalizado:
1.1 Click **☰ > Users & Authentication > Roles**. 1.2 Select the appropriate tab, e.g., **Cluster** role. Then click **Create Cluster Role**. 1.3 In the **Name** field, create a custom role such as `View Monitoring`, `Edit Monitoring`, or `Admin Monitoring`. 1.4 Click **Inherit From > Add Resource**, then select the Kubernetes role, as applicable, from the dropdown. 1.5 Click **Create**.
-
Asigna el rol personalizado a un nuevo usuario:
2.1 Click **☰ > Cluster Management > Cluster Explore > Cluster > Cluster Members > Add**. 2.2 Search for your new user name from **Select Member** options displayed. 2.3 Assign the new custom role from **Cluster Permissions** to the new user. 2.4 Click **Create**.
Resultado: El nuevo usuario debería poder ver ahora las herramientas de monitorización.
Roles de Monitorización Adicionales
La monitorización también crea ClusterRoles adicionales que no se asignan a los usuarios por defecto pero que se crean dentro del clúster. No se agregan por defecto, pero se pueden vincular a un espacio de nombres desplegando un RoleBinding o ClusterRoleBinding que lo referencia. Para definir un RoleBinding con kubectl en lugar de a través de Rancher, haz clic aquí.
| Función | Finalidad |
|---|---|
monitoring-ui-view |
Este ClusterRole permite a los usuarios con acceso de escritura al proyecto ver gráficos de métricas para el clúster especificado en la interfaz de usuario de Rancher. Esto se hace otorgando acceso de solo lectura a las interfaces de usuario de monitoreo externas. Los usuarios con este rol tienen permiso para listar los puntos finales de Prometheus, Alertmanager y Grafana, y hacer solicitudes GET a las interfaces de usuario de Prometheus, Alertmanager y Grafana a través del proxy de Rancher. |
|
Un usuario vinculado al rol de Rancher Ver Monitoreo y permisos de proyecto de solo lectura no puede ver enlaces en la interfaz de usuario de Monitoreo. Aún pueden acceder a las interfaces de usuario de monitoreo externas si se les proporcionan enlaces a esas interfaces. Si deseas otorgar acceso a los usuarios con el rol Ver Monitoreo y permisos de proyecto de solo lectura, mueve el espacio de nombres |
Asignación de Roles y ClusterRoles con kubectl
Uso de kubectl create
Un método es usar kubectl create clusterrolebinding o kubectl create rolebinding para asignar un Role o ClusterRole. Esto se muestra en los siguientes ejemplos:
-
Asignar a un usuario específico:
-
clusterrolebinding
-
rolebinding
kubectl create clusterrolebinding my-binding --clusterrole=monitoring-ui-view --user=u-l4npx
kubectl create rolebinding my-binding --clusterrole=monitoring-ui-view --user=u-l4npx --namespace=my-namespace
-
Asignar a todos los usuarios autenticados:
-
clusterrolebinding
-
rolebinding
kubectl create clusterrolebinding my-binding --clusterrole=monitoring-ui-view --group=system:authenticated
kubectl create rolebinding my-binding --clusterrole=monitoring-ui-view --group=system:authenticated --namespace=my-namespace
Usando archivos YAML
Otro método es definir vinculaciones en archivos YAML que tú crees. Primero debes configurar el RoleBinding o ClusterRoleBinding con un archivo YAML. Luego, aplica los cambios de configuración ejecutando el comando kubectl apply.
-
Funciones: A continuación se muestra un ejemplo de archivo YAML para ayudarte a configurar
RoleBindingsen Kubernetes. Necesitarás completar el nombre a continuación.
|
Los nombres distinguen entre mayúsculas y minúsculas. |
# monitoring-config-view-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: monitoring-config-view
namespace: cattle-monitoring-system
roleRef:
kind: Role
name: monitoring-config-view
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: User
name: u-b4qkhsnliz # this can be found via `kubectl get users -A`
apiGroup: rbac.authorization.k8s.io
-
kubectl: A continuación se muestra un ejemplo de un comando
kubectlutilizado para aplicar el enlace que has creado en el archivo YAML. Recuerda completar el nombre de tu archivo YAML en consecuencia.kubectl apply -f monitoring-config-view-role-binding.yaml
Usuarios con permisos basados en Rancher
La relación entre los roles predeterminados desplegados por Rancher (es decir, propietario del clúster, miembro del clúster, propietario del proyecto, miembro del proyecto), los roles predeterminados de Kubernetes y los roles desplegados por el gráfico de monitoreo de Rancher se detallan en la tabla a continuación:
| Rol de Rancher | Kubernetes Role | ClusterRole / Rol de monitoreo | ¿ClusterRoleBinding o RoleBinding? |
|---|---|---|---|
propietario del clúster |
cluster-admin |
N/D |
ClusterRoleBinding |
miembro del clúster |
admin |
administrador de monitoreo |
ClusterRoleBinding |
propietario del proyecto |
admin |
administrador de monitorización |
RoleBinding dentro del espacio de nombres del proyecto |
miembro del proyecto |
editar |
edición de monitorización |
RoleBinding dentro del espacio de nombres del proyecto |
Además de estos roles predeterminados, se pueden aplicar los siguientes roles de proyecto de Rancher a los miembros de su clúster para proporcionar acceso a la monitorización. Estos roles de Rancher están vinculados a ClusterRoles desplegados por el gráfico de monitorización:
| Rol de Rancher | Kubernetes ClusterRole | Disponible en Rancher desde | Disponible en Monitorización v2 desde |
|---|---|---|---|
Ver Monitorización* |
2.4.8+ |
9.4.204+ |
|
Un usuario vinculado al rol de Rancher Ver Monitorización y permisos de proyecto de solo lectura no puede ver enlaces en la interfaz de usuario de Monitoreo. Aún pueden acceder a las interfaces de usuario de monitoreo externas si se les proporcionan enlaces a esas interfaces. Si deseas otorgar acceso a los usuarios con el rol Ver Monitoreo y permisos de proyecto de solo lectura, mueve el espacio de nombres |
Diferencias en 2.5.x
Los usuarios con los roles de miembro del proyecto o propietarios del proyecto asignados no tendrán acceso a Prometheus ni a Grafana en Rancher 2.5.x, ya que solo creamos Grafana o Prometheus a nivel de clúster.
Además, aunque los propietarios del proyecto solo podrán añadir ServiceMonitors / PodMonitors que recopilen recursos dentro del espacio de nombres de su proyecto por defecto, las PrometheusRules no están limitadas a un solo espacio de nombres / proyecto. Por lo tanto, cualquier regla de alerta o regla de grabación creada por los propietarios del proyecto dentro de su espacio de nombres de proyecto se aplicará a todo el clúster, aunque no podrán ver / editar / eliminar ninguna regla que se haya creado fuera del espacio de nombres del proyecto.
Asignación de Acceso Adicional
Si los administradores del clúster desean proporcionar acceso adicional de administrador/edición a usuarios fuera de los roles ofrecidos por el gráfico de rancher-monitoring, la siguiente tabla identifica el impacto potencial:
| CRD (monitoring.coreos.com) | ¿Puede causar impacto fuera de un espacio de nombres / proyecto? | Impacto |
|---|---|---|
|
Sí, este recurso puede extraer métricas de cualquier objetivo en todo el clúster (a menos que el Operador esté configurado de otra manera). |
El usuario podrá definir la configuración de nuevas ampliaciones de Prometheus a nivel de clúster que deben ser creadas en el clúster. |
|
No |
El usuario podrá definir la configuración de nuevas ampliaciones de Alertmanager a nivel de clúster que deben ser creadas en el clúster. Nota: si solo deseas permitir a los usuarios configurar ajustes como Rutas y Receptores, deberías proporcionar acceso al Secreto de Configuración de Alertmanager en su lugar. |
<ul><li> |
No, no por defecto; esto es configurable a través de |
El usuario podrá configurar extracciones por Prometheus en puntos finales expuestos por Servicios / Pods dentro del espacio de nombres en el que se le otorgue este permiso. |
|
Sí, las PrometheusRules son de ámbito de clúster. |
El usuario podrá definir reglas de alerta o de grabación en Prometheus basadas en cualquier serie recopilada en todo el clúster. |
| Recursos de k8s | Espacio de nombre | ¿Puede causar impacto fuera de un espacio de nombres / proyecto? | Impacto |
|---|---|---|---|
<ul><li> |
|
Sí, las configuraciones y secretos en este espacio de nombres pueden afectar a toda la cadena de monitorización/alerta. |
El usuario podrá crear o editar secretos / ConfigMaps como la configuración de Alertmanager, la configuración del adaptador de Prometheus, secretos TLS, fuentes de datos adicionales de Grafana, etc. Esto puede tener un amplio impacto en todo el monitoreo / alerta del clúster. |
<ul><li> |
|
Sí, las configuraciones y secretos en este espacio de nombres pueden crear paneles que realicen consultas sobre todas las métricas recopiladas a nivel de clúster. |
El usuario podrá crear secretos / ConfigMaps que persistan solo nuevos paneles de Grafana. |
Control de acceso basado en funciones para Grafana
Rancher permite a cualquier usuario que esté autenticado por Kubernetes y tenga acceso al servicio de Grafana desplegado por el gráfico de Monitoreo de Rancher acceder a Grafana a través de la interfaz de usuario del Panel de Control de Rancher. Por defecto, todos los usuarios que pueden acceder a Grafana reciben el rol Viewer, que les permite ver cualquiera de los paneles predeterminados desplegados por Rancher.
Sin embargo, los usuarios pueden optar por iniciar sesión en Grafana como un Admin si es necesario. El nombre de usuario y la contraseña predeterminados del administrador para la instancia de Grafana serán admin/prom-operator, pero también se pueden proporcionar credenciales alternativas al desplegar o actualizar el gráfico.
Para ver la interfaz de usuario de Grafana, instala rancher-monitoring. Entonces:
-
En la esquina superior izquierda, haz clic en ☰ > Gestión de Clústeres.
-
En la página Clústeres, ve al clúster donde deseas ver las visualizaciones y haz clic en Explorar.
-
En la barra de navegación izquierda, haz clic en Monitorización.
-
Haz clic en Grafana.