Управление доступом
В этом разделе вы узнаете:
- на какие ресурсы можно назначить роль;
- какие роли действуют в сервисе;
- какие роли необходимы сервисным аккаунтам кластера Managed Service for Kubernetes;
- какие роли нужны для работы с Managed Service for Kubernetes через консоль управления Yandex.Cloud.
Об управлении доступом
Все операции в Yandex.Cloud проверяются в сервисе Identity and Access Management. Если у субъекта нет необходимых разрешений, сервис вернет ошибку.
Чтобы выдать разрешения к ресурсу, назначьте роли на этот ресурс субъекту, который будет выполнять операции. Роли можно назначить аккаунту на Яндексе, сервисному аккаунту или системной группе. Подробнее читайте в разделе Как устроено управление доступом в Yandex.Cloud.
Назначать роли на ресурс могут те, у кого есть роль admin
или resource-manager.clouds.owner
на этот ресурс.
На какие ресурсы можно назначить роль
Как и в других сервисах, роль можно назначить на облако, каталог или сервисный аккаунт. Роли, назначенные на облако или каталог, действуют и на вложенные ресурсы.
Какие роли действуют в сервисе
На диаграмме показано, какие роли есть в сервисе и как они наследуют разрешения друг друга. Например, в editor
входят все разрешения viewer
. После диаграммы дано описание каждой роли.
Роли Managed Service for Kubernetes
Описанные ниже роли позволяют управлять кластерами и группами узлов Managed Service for Kubernetes без публичного доступа через API Yandex.Cloud. Для управления ресурсами кластера эти роли необходимо компоновать с ролями для Kubernetes API. Чтобы создать кластер с публичным доступом к Kubernetes API или группу узлов Kubernetes с публичным IP-адресом, в дополнение к ролям k8s.admin
, k8s.editor
или k8s.clusters.agent
также требуется роль vpc.publicAdmin
.
Роль | Разрешения |
---|---|
k8s.admin |
Дает права на создание, удаление, изменение, остановку и запуск кластеров и групп узлов. В дальнейшем позволит управлять гранулярным доступом к кластерам и группам. |
k8s.editor |
Дает права на создание, удаление, изменение, остановку и запуск кластеров и групп узлов. |
k8s.viewer |
Позволяет просматривать информацию о кластерах и группах узлов Managed Service for Kubernetes. |
k8s.clusters.agent |
Специальная роль для сервисного аккаунта кластера. Дает право на создание групп узлов, дисков, внутренних балансировщиков, использование заранее созданных KMS-ключей для шифрования и расшифровки секретов, а также подключение заранее созданные группы безопасности. В комбинации с ролью load-balancer.admin позволяет создать сетевой балансировщик нагрузки с публичным IP-адресом.Включает роли compute.admin , vpc.privateAdmin , load-balancer.privateAdmin , kms.keys.encrypterDecrypter , iam.serviceAccounts.user . |
Роли для доступа к Kubernetes API
Важно
Роли k8s.cluster-api.cluster-admin
, k8s.cluster-api.editor
и k8s.cluster-api.viewer
доступны в Kubernetes начиная с версии 1.17.
Следующие роли дают права на управление ресурсами кластера через Kubernetes API. Для управления кластером эти роли необходимо компоновать с ролями для API Yandex.Cloud.
Роль | Разрешения |
---|---|
k8s.cluster-api.cluster-admin |
Пользователь с этой ролью IAM получает группу yc:cluster-admin и роль cluster-admin для доступа к Kubernetes API. |
k8s.cluster-api.editor |
Пользователь с этой ролью IAM получает группу yc:edit и роль edit для доступа к Kubernetes API. |
k8s.cluster-api.viewer |
Пользователь с этой ролью IAM получает группу yc:view и роль view для доступа к Kubernetes API. |
Подробнее о ролях для доступа к Kubernetes API читайте в руководстве.
Чтобы просмотреть права ролей на ресурсы кластера Kubernetes выполните команду:
kubectl describe clusterrole <роль для доступа к Kubernetes API>
Примитивные роли
Примитивные роли IAM содержат вышеописанные роли в следующих комбинациях:
Примитивная роль | Комбинация ролей Managed Service for Kubernetes |
---|---|
admin |
k8s.cluster-api.cluster-admin , k8s.admin , vpc.publicAdmin . |
editor |
k8s.cluster-api.cluster-editor , k8s.editor , vpc.publicAdmin . |
viewer |
k8s.cluster-api.viewer , k8s.viewer . |
Сервисные аккаунты кластера Managed Service for Kubernetes
При создании кластера в Managed Service for Kubernetes необходимо указать два сервисных аккаунта:
-
Сервисный аккаунт кластера — от этого имени кластер Managed Service for Kubernetes управляет узлами кластера, подсетями для подов и сервисов, дисками, балансировками нагрузки, а также шифрует и дешифрует секреты. Минимально рекомендуемая роль для такого аккаунта —
k8s.clusters.agent
. -
Сервисный аккаунт группы узлов — от этого имени узел кластера аутентифицируется в Yandex Container Registry. Для использования реестров образов аккаунту нужно назначить какую-либо сервисную роль Container Registry. Если используется другой реестр, то роли этому сервисному аккаунту можно не назначать.
Доступ к консоли управления Managed Service for Kubernetes
Для доступа к Managed Service for Kubernetes через консоль управления Yandex.Cloud минимально необходимая роль k8s.viewer.
Чтобы получить подробную информацию о кластере и группе узлов понадобится дополнительная роль k8s.cluster-api.viewer
. Поскольку роль k8s.cluster-api.viewer
не предоставляет прав доступа ко всем объектам Kubernetes API, для использования всех возможностей консоли управления необходимы роли k8s.cluster-api.editor
или k8s.cluster-api.cluster-admin
.