Уровни ресурсов Connector и права доступа
Overview
Для управления и использования ресурсов Connector на разных уровнях с целью удовлетворения требований различных организационных структур, система Connector предоставляет различные уровни ресурсов Connector и ограничения прав доступа.
Все ресурсы Connector используются внутри кластера и не могут использоваться между кластерами. В пределах текущего кластера ресурсы Connector делятся на три уровня:
- Уровень кластера
- Уровень проекта (группа namespace)
- Уровень namespace
Ресурсы, созданные на разных уровнях, имеют различные права доступа и создаются в разных пространствах имён.
- Уровень кластера: в пространстве имён
kube-public, общее для текущего кластера. - Уровень проекта: в пространстве имён с именем проекта, общее в пределах текущего кластера для namespace этого проекта.
- Уровень namespace: Connectors в обычных пространствах имён доступны только текущему namespace.
Cluster Level
Все ресурсы Connector, расположенные в пространстве имён kube-public, относятся к ресурсам уровня кластера. Ресурсы Connector уровня кластера доступны всем namespace внутри текущего кластера, что делает их общими для всего кластера.
Например, ресурс Connector с именем github-connector, созданный в kube-public, может быть смонтирован Pod'ами в любом namespace.
Namespace Level
Connectors, созданные внутри namespace, классифицируются как ресурсы уровня namespace. Ресурсы Connector уровня namespace доступны только текущему namespace.
Например, ресурс Connector с именем github-connector, созданный в namespace default, может быть смонтирован Pod'ами в namespace default. Однако попытка доступа из ns-1 приведёт к ошибке отказа в доступе.
Project Level (Namespace Group)
Система Connector также предлагает уровень ресурсов, который находится между уровнем кластера и уровнем namespace. Этот уровень проекта также можно понимать как уровень группы namespace.
Этот уровень означает, что Pod'ы в связанных namespace могут получать доступ к Connectors в рамках одной группы. Сама группа представлена специальным namespace, а namespace в группе связаны с помощью меток.
- Namespace самой группы идентифицируется с помощью метки
cpaas.io/inner-namespace: {имя группы}. - Namespace, входящие в группу, идентифицируются меткой
cpaas.io/project: {имя группы}, указывающей, что текущий namespace принадлежит этой группе.
Ресурсы уровня проекта доступны namespace внутри группы, а также самому namespace группы. Другие namespace не имеют доступа.
Например, если есть группа с именем group-1 с тремя namespace: ns1, ns2 и ns3.
Пример YAML:
Ресурс github-connector в group-1 может быть доступен:
- namespace
ns1,ns2иns3 - самому namespace
group-1 - Попытка доступа из других namespace к Connector в
group-1приведёт к ошибке отказа в доступе.