• Русский
  • Уровни ресурсов 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.

    kind: Pod
    metadata:
      # . . .
      namespace: default
    spec:
      # . . .
      volumes:
      - name: git-config
        csi:
          readOnly: true
          driver: connectors-csi
          volumeAttributes:
            connector.name: "github-connector"
            connector.namespace: "kube-public"
            configuration.names: "config"

    Namespace Level

    Connectors, созданные внутри namespace, классифицируются как ресурсы уровня namespace. Ресурсы Connector уровня namespace доступны только текущему namespace.

    Например, ресурс Connector с именем github-connector, созданный в namespace default, может быть смонтирован Pod'ами в namespace default. Однако попытка доступа из ns-1 приведёт к ошибке отказа в доступе.

    kind: Pod
    metadata:
      # . . .
      namespace: default
    spec:
      # . . .
      volumes:
      - name: git-config
        csi:
          readOnly: true
          driver: connectors-csi
          volumeAttributes:
            connector.name: "github-connector"
            connector.namespace: "default"
            configuration.names: "config"

    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:

    kind: namespace
    apiVersion: v1
    metadata:
      name: group-1
      labels:
        cpaas.io/inner-namespace: group-1
    --
    kind: namespace
    apiVersion: v1
    metadata:
      name: ns1
      labels:
        cpaas.io/project: group-1
    ---
    kind: namespace
    apiVersion: v1
    metadata:
      name: ns2
      labels:
        cpaas.io/project: group-1

    Ресурс github-connector в group-1 может быть доступен:

    • namespace ns1, ns2 и ns3
    • самому namespace group-1
    • Попытка доступа из других namespace к Connector в group-1 приведёт к ошибке отказа в доступе.

    More