Режимы авторизации
Kubernetes поддерживает следующие режимы авторизации:
- Контроль доступа на основе атрибута : Авторизатор, посредством которого права доступа предоставляются пользователям через политики, объединяющие атрибуты (атрибуты ресурсов, атрибуты пользователей, объекты и т. Д.)
- Авторизация узла : Авторизатор специального назначения, который предоставляет разрешения на Kubelets на основе стручков, они запланированы на работу.
- WebHook : Веб -ook — это обратный вызов http — http Post, который возникает, когда что-то происходит. Этот режим позволяет интеграцию с внешними авторизаторами Kubernetes.
- Контроль доступа на основе ролей : Метод регулирования доступа к компьютеру или сетевым ресурсам на основе ролей отдельных пользователей на предприятии.
RBAC (контроль доступа на основе ролей)
Концепции RBAC :
- Сущность: пользователь, группа или учетная запись
- Роль: используется для определения правил для действий по ресурсам
- Ресурс: секрет, стручок или услуга, которую сущность может захотеть получить доступ
- Привязка роли: это придает роль субъекта, что определяет набор действий, которые разрешены для указанных ресурсов
- Действия: что существо может принимать на ресурс, определены в роли. Они основаны на глаголах, поддерживаемых Куберанетами. Примеры глаголов, которые могут быть указаны в определении роли:
. Получить, список
(только для чтения) б. Создание, Обновление, Патч, Удалить, Делитеколление
(читай пиши)
Типы ролей :
- Кластер — широкий : Роли кластеров и их соответствующие привязки ролей кластера
- Пространство имен — широкий : Роли и роль связывания в контексте пространства имен
Роли по умолчанию :
- Пользовательские роли : Cluster-admin, admin (для пространств имен), редактирование и просмотр, определены вне коробки и доступны для использования без определения каких-либо дополнительных ролей
- Основные компоненты : Комплектующие и узлы контроля управления Kubernetes имеют предопределенные роли, такие как
Система: Kube-Controller-Manager
илиСистема: узел
Вы можете использовать следующую команду для перечисления ролей кластера в кластере:
kubectl get clusterroles kubectl get clusterroles-o yaml
- Другие компоненты : Роли также определены для других компонентов системы по мере необходимости установщика. Фланнел — это один из таких примеров, когда установлен наложение сетевой сети Flantelly.
Используя описание, чтобы допросить роль
Многие роли предопределены на кластере установщиков. Полезно использовать команду «Описать» для просмотра подробностей:
kubectl describe clusterroles view
Создание учетной записи службы в пространстве имен
Чтобы проиллюстрировать использование ролей-привязки, мы создадим пространство имен, роль и связываем его для проспекта пространства-пространства:
kubectl create namespace dev-test kubectl --namespace=dev-test create serviceaccount dev-test-account kubectl --namespace=dev-test create role dev-tester-view --verb=get --verb=list --resource=pods kubectl --namespace=dev-test describe role/dev-tester-view kubectl --namespace=dev-test create rolebinding dev-viewer --role=dev-tester-view --serviceaccount=dev-test:dev-test-account kubectl --namespace=dev-test describe rolebinding/dev-viewer
Создание привязки роли в пространстве имен
Для иллюстрации используемого ролевого привязки мы создадим пространство имен, роль и связывающую его для проспекта пространства-пространства:
kubectl --namespace=dev-test create rolebinding dev-viewer --role=dev-tester-view --serviceaccount=dev-test:dev-test-account kubectl --namespace=dev-test describe rolebinding/dev-viewer
Использование аргумента CAN-I для тестирования привязки роли
Чтобы проверить пример привязки роли, мы можем использовать Can-I
Аргумент для проверки разрешений:
kubectl --namespace=dev-test auth can-i --as=system:serviceaccount:dev-test:dev-test-account list pods kubectl --namespace=dev-test auth can-i --as=system:serviceaccount:dev-test:dev-test-account list services
Инструмент, чтобы помочь обеспечить лучшие практики
По мере расширения экосистемы Kubernetes расширяется, важно рассмотреть возможность помогать поддерживать предприятие установки. Ниже приведен список инструментов для рассмотрения ролей на основе контроля доступа (RBAC):
audit2rbac
: Инструмент для автоматического определения того, какие разрешения необходимы для определенных приложений, и может генерировать привязку роль RBAC для вас
Kube2iam
: Инструмент, который обеспечивает учетные данные AWS IAM к контейнерам на основе аннотаций
RBAC-Manager
: Оператор Kubernetes, который упрощает управление привязками ролей и Сервисные счета
Закрытие мыслей о лучших практиках
RBAC стал Стандарт для предприятия kubernetes Авторизация. Убедитесь, что
Kube-Apisiserver начинается с варианта
— Авторизация-режим = rbac`.
Отключите токен службы по умолчанию, так как большинство приложений не требуют доступа к API. Это можно сделать, установив AutomountserviceaccountToken: false
В спецификации PODS для ваших приложений. Используйте специальную учетную запись обслуживания для любых приложений, которые требуют доступа к API.
Оригинал: «https://dev.to/appfleet/kubernetes-authorization-and-rbac-p1k»