Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлен обзор различных встроенных ролей Azure RBAC, которые можно использовать для доступа к ресурсам Azure Kubernetes Fleet Manager (Kubernetes Fleet).
Управление доступом на основе ролей Azure (Azure RBAC) — это система авторизации, основанная на Azure Resource Manager, которая обеспечивает точное управление доступом к ресурсам Azure.
Azure Resource Manager
Эти роли предоставляют доступ к ресурсам и подресурсам парка Azure Resource Manager (ARM) и применимы к диспетчерам флотов с кластером концентраторов и без них.
| Имя роли | Описание | Использование |
|---|---|---|
| Сотрудник по управлению флотом Azure Kubernetes | Эта роль предоставляет доступ на чтение и запись к ресурсам Azure, предоставляемым диспетчером флотов Azure Kubernetes, включая флоты, членов флота, стратегии обновления флота, запуски обновлений флота и многое другое. | Эту роль можно использовать для предоставления разрешений участника, которые применяются исключительно к ресурсам и подресурсам Kubernetes Fleet. Например, эту роль можно предоставить администратору Azure, чтобы определить и сохранить ресурсы Флота. |
| Роль пользователя кластера Концентратора диспетчера флота Azure Kubernetes | Эта роль предоставляет доступ только для чтения к кластеру концентратора Fleet Manager и к файлу конфигурации Kubernetes для подключения к управляемому кластеру концентратора флота. | Вы можете просматривать ресурсы Fleet Manager и скачать kubeconfig кластера концентратора, чтобы проверить конфигурации и рабочие нагрузки без внесения изменений. |
Плоскость данных Kubernetes
Роли Fleet data plane можно назначить на уровне Fleet или в отдельных управляемых пространствах имен.
Существует два типа ролей плоскости данных: роли RBAC и роли RBAC для кластеров-участников. Роли RBAC предоставляют доступ только к объектам Kubernetes в кластере, управляемом флотом. Роли RBAC для кластеров-членов предоставляют доступ только к объектам Kubernetes в кластерах-членах в флоте. Применение роли RBAC для кластеров членов в области управляемого пространства имен применяется к управляемому пространству имен для всех членов родительского парка независимо от того, распространяется ли управляемое пространство имен на этот элемент.
Когда кластер, входящий в состав, присоединяется к Fleet, пользователь получает все разрешения, предоставленные на уровне главного Fleet для этого кластера. Когда кластер-член покидает парк, пользователь теряет эти разрешения для этого кластера. Например, пользователь, которому назначена роль Azure Kubernetes Fleet Manager RBAC Cluster Admin for Member Clusters в области Флот, может создавать пространства имен во всех кластерах-членах, только пока эти кластеры остаются во Флоте.
Если роль применяется в области действия управляемого пространства имен и это управляемое пространство имен удаляется, то назначение роли также удаляется. Если управляемое пространство имен повторно создано, назначение роли не создается автоматически и должно быть создано вручную.
На данный момент эти роли RBAC не поддерживаются для членов Arc в флоте. Кроме того, управление доступом для определенных пользовательских ресурсов Kubernetes (CR) не поддерживается для этих ролей Azure RBAC.
| Имя роли | Описание | Использование |
|---|---|---|
| Средство чтения 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) в пространстве имен или области кластера. |
| Средство чтения RBAC менеджера флота Azure Kubernetes для кластеров-участников | Доступ только для чтения к большинству объектов в пространстве имен в кластере-члене. Не удается просмотреть роли или привязки ролей. Не удается просмотреть секреты (предотвращает эскалацию привилегий с помощью учетных данных ServiceAccount). | Эту роль можно использовать для предоставления возможности считывать выбранные нечувствительные объекты Kubernetes на уровне пространства имен в узлах флота. |
| Диспетчер Azure Kubernetes Fleet, отвечающий за запись RBAC для членских кластеров | Доступ на чтение и запись к большинству ресурсов Kubernetes в неймспейсе. Не удается просмотреть или изменить роли или привязки ролей. Может считывать секреты (поэтому может предполагать любой ServiceAccount в пространстве имен). | Эту роль можно использовать для предоставления права записи выбранных объектов Kubernetes в пространстве имен у участника флота. Например, для использования командой проекта, ответственной за объекты в заданном пространстве имен. |
| Администратор RBAC флит-менеджера Azure Kubernetes для узловых кластеров | Доступ на чтение и запись к ресурсам Kubernetes в пространстве имен на кластере-участнике. | Эту роль можно использовать для предоставления возможности администрировать определенные объекты Kubernetes (включая роли и привязки ролей) на уровне пространства имен в членах флота. Например, для использования командой проекта, ответственной за объекты в заданном пространстве имен. |
| Администратор RBAC кластеров-членов в Azure Kubernetes Fleet Manager | Полный доступ на чтение и запись ко всем ресурсам Kubernetes в кластерах-членах в флоте. | Эта роль используется для предоставления полного доступа ко всем ресурсам в кластерах-членах. Например, администратор платформы, который должен получить доступ к нескольким пространствам имен в кластерах-членах. |
Примеры назначений ролей
Роли Azure RBAC можно предоставить с помощью Azure CLI. Например, чтобы создать назначение ролей в области флота:
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"
Вы также можете ограничить назначения ролей для отдельного управляемого пространства имен, добавив /managedNamespaces/<managed-namespace> к области действия Fleet ID. Например, чтобы создать роль на уровне управляемого пространства имен для пространства example-ns имен:
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)
MANAGED_NAMESPACE_NAME="example-ns"
az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"/managedNamespaces/"$MANAGED_NAMESPACE_NAME"