Поделиться через


Предоставление доступа к ресурсам Azure Kubernetes Fleet Manager с помощью управления доступом на основе ролей Azure

Управление доступом на основе ролей Azure (Azure RBAC) — это система авторизации, основанная на Azure Resource Manager, которая обеспечивает точное управление доступом к ресурсам Azure.

В этой статье представлен обзор различных встроенных ролей Azure RBAC, которые можно использовать для доступа к ресурсам Azure Kubernetes Fleet Manager (Kubernetes Fleet).

Уровень управления

Эта роль предоставляет доступ к ресурсам и подресурсам парка Azure Resource Manager (ARM) и применяется как ресурс Kubernetes Fleet с кластером концентратора, так и без нее.

Имя роли Description Использование
Участник диспетчера флота Azure Kubernetes Эта роль предоставляет доступ на чтение и запись к ресурсам Azure, предоставляемым диспетчером флотов Azure Kubernetes, включая флоты, членов флота, стратегии обновления флота, запуски обновлений флота и многое другое. Эту роль можно использовать для предоставления разрешений участника, которые применяются исключительно к ресурсам и подресурсам Kubernetes Fleet. Например, эту роль можно предоставить администратору Azure, чтобы определить и сохранить ресурсы Флота.

Плоскость данных

Эти роли предоставляют доступ к объектам Kubernetes концентратора Fleet и поэтому применимы только к ресурсам Парка Kubernetes с кластером концентратора.

Роли плоскости данных можно назначить в области кластера Fleet Hub или в отдельной области пространства имен Kubernetes, добавив /namespace/<namespace> к области назначения ролей.

Имя роли Description Использование
Средство чтения RBAC диспетчера флота Azure Kubernetes Предоставляет доступ только для чтения к большинству ресурсов Kubernetes в пространстве имен в кластере, управляемом флотом. Оно не позволяет просматривать роли или привязки ролей. Эта роль не позволяет просматривать секреты, так как чтение содержимого секретов обеспечивает доступ к ServiceAccount учетным данным в пространстве имен, что позволит API получить доступ как к любому ServiceAccount в пространстве имен (форма эскалации привилегий). Применение этой роли в области кластера предоставляет доступ ко всем пространствам имен. Эту роль можно использовать для предоставления возможности чтения выбранных нечувствительных объектов Kubernetes в пространстве имен или области кластера. Например, вы можете предоставить эту роль в целях проверки.
Модуль записи RBAC диспетчера флота Azure Kubernetes Предоставляет доступ на чтение и запись к большинству ресурсов Kubernetes в пространстве имен в кластере, управляемом флотом. Эта роль не позволяет просматривать или изменять роли или привязки ролей. Однако эта роль позволяет получать доступ к секретам как к любому ServiceAccount в пространстве имен, поэтому его можно использовать для получения уровней доступа API любого ServiceAccount из пространств имен. Применение этой роли в области кластера предоставляет доступ ко всем пространствам имен. Эту роль можно использовать для предоставления возможности записи выбранных объектов Kubernetes в пространстве имен или области кластера. Например, для использования командой проекта, ответственной за объекты в заданном пространстве имен.
Администратор RBAC диспетчера парка Azure Kubernetes Предоставляет доступ на чтение и запись к ресурсам Kubernetes в пространстве имен в кластере, управляемом флотом. Предоставляет разрешения на запись для большинства объектов в пространстве имен, за исключением ResourceQuota объекта и самого объекта пространства имен. Применение этой роли в области кластера предоставляет доступ ко всем пространствам имен. Эту роль можно использовать для предоставления возможности администрирования выбранных объектов Kubernetes (включая роли и привязки ролей) в пространстве имен или области кластера. Например, для использования командой проекта, ответственной за объекты в заданном пространстве имен.
Администратор кластера RBAC диспетчера парка Azure Kubernetes Предоставляет доступ на чтение и запись ко всем ресурсам Kubernetes в кластере, управляемом флотом. Эту роль можно использовать для предоставления доступа ко всем объектам Kubernetes (включая CRD) в пространстве имен или области кластера.

Примеры назначений ролей

Роли Azure RBAC можно предоставить с помощью Azure CLI. Например, чтобы создать назначение ролей в области кластера Kubernetes Fleet Hub:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)

az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"

Можно также задать назначение ролей отдельному пространству имен Kubernetes. Например, чтобы создать назначение ролей для пространства имен Kubernetes По умолчанию Kubernetes Kubernetes:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)

az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID/namespaces/default"