Antrea에서 계층 관리

Antrea에서 계층은 계층 방식으로 그룹화된 특정 네트워크 정책으로 구성됩니다. Antrea 네이티브 NetworkPolicy 또는 ClusterNetworkPolicy CRD(사용자 지정 리소스 정의)에는 여기에 속하는 계층의 선택적 참조가 포함되어 있습니다. 네트워크 트래픽을 필터링하는 동안 상위 계층(낮은 숫자 우선 순위 값)과 연결된 Antrea NetworkPolicies가 먼저 적용됩니다. Antrea의 다양한 계층 유형에 대한 자세한 내용은 Antrea 네트워크 정책 CRD를 참조하십시오.

계층에서 역할 기반 액세스 설정 구성

계층에 대한 역할 기반 액세스는 인증된 사용자만 Antrea 네이티브 정책에서 계층을 참조할 수 있도록 설계되었습니다. 이를 통해 클러스터 관리자는 Antrea NetworkPolicies를 높은 우선 순위 계층에 연결하고 일반 사용자가 Antrea NetworkPolicies를 계층에 연결하지 못하게 합니다. 이 기능은 클러스터 관리자가 일반 사용자가 재정의할 수 없는 클러스터에서 보안 정책을 적용하는 데 도움이 됩니다.

계층을 편집할 수 있는 사용 권한 제공

Antrea는 정적 우선 순위가 있는 6개의 계층을 제공합니다. 기본적으로 Kubernetes 관리자만 Antrea에서 사용자 지정 계층을 생성할 수 있습니다. 사용자에게 새 계층을 생성하고 계층 우선 순위를 편집할 수 있는 사용 권한을 제공하려면 워크로드 클러스터 컨텍스트에서 ClusterRoleClusterRoleBinding 설정을 구성합니다.

  1. 워크로드 클러스터 컨텍스트로 전환합니다.

    kubectl config use-context *WORKLOAD-CLUSTER-CONTEXT*
    
  2. 다음 예와 같이 ClusterRoleBinding YAML 파일을 생성합니다(securityops 사용자에게 계층 리소스를 읽고, 생성하고, 삭제하고, 업데이트할 수 있는 기능이 제공되었습니다).

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: tier-edit
    rules:
    - apiGroups: ["crd.antrea.io"]
      resources: ["tiers"]
      verbs: ["get", "list", "create", "patch", "update", "delete"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: tier-bind
    subjects:
    - kind: User
      name: securityops # Name is case sensitive
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: ClusterRole
      name: tier-edit
      apiGroup: rbac.authorization.k8s.io
    
  3. 정의를 적용합니다.

    kubectl apply -f ClusterRoleBinding.yaml
    

Antrea 네트워크 정책에서 계층을 참조할 수 있는 사용 권한 제공

기본적으로 모든 사용자는 Antrea 네트워크 정책을 모든 계층에 연결할 수 있습니다. Antrea 네트워크 정책에서 계층을 참조하고 다른 모든 사용자를 차단하는 사용자 집합에 사용 권한을 제공하려면 TierEntitlement CRD를 생성하고 TierEntitlementBinding CRD를 통해 허용된 사용자에게 사용 권한을 할당합니다.

  1. 워크로드 클러스터 컨텍스트로 전환합니다.

    kubectl config use-context *WORKLOAD-CLUSTER-CONTEXT*
    
  2. 다음 예와 같이 TierEntitlement CRD YAML 파일을 생성합니다.

    apiVersion: crd.antrea.tanzu.vmware.com/v1alpha1
    kind: TierEntitlement
    metadata:
      name: emergency-edit
    spec:
      tiers:          ["emergency"]
      permission:     "edit"
    
    참고

    Edit는 여기서 유효한 유일한 사용 권한입니다. 권한 있는 사용자는 나열된 계층에 속하는 Antrea 네이티브 정책을 생성, 삭제, 업데이트, 패치할 수 있습니다.

  3. CRD를 적용합니다.

    kubectl apply -f TierEntitlement.yaml
    
  4. 다음 예와 같이 TierEntitlementBinding CRD YAML 파일을 생성하여 사용자에게 사용 권한을 연결합니다.

    apiVersion: crd.antrea.tanzu.vmware.com/v1alpha1
    kind: TierEntitlementBinding
    metadata:
      name: emergency-sec-bind
    spec:
      subjects:                                       
      - kind:           User
        name:           securityops
        apiGroup:       rbac.authorization.k8s.io
      - kind:           Group
        name:           security-admins
        apiGroup:       rbac.authorization.k8s.io
      - kind:           ServiceAccount
        name:           network-admins
        namespace:      kube-system
      tierEntitlement:    emergency-edit     
    

    이 예에서는 emergency-edit 계층 사용 권한이 subjects 필드에 지정된 사용자에게 할당되었습니다. subjects 아래에 지정할 수 있는 지원되는 사용자는 사용자, 그룹, ServiceAccount입니다. 자세한 내용은 RBAC 인증 사용을 참조하십시오.

  5. CRD를 적용합니다.

    kubectl apply -f TierEntitlementBinding.yaml
    

위의 두 샘플 YAML 파일에서 emergency 계층은 emergency-edit 계층 사용 권한으로 제어됩니다. emergency-edit 사용 권한이 할당된 사용자에게는 특정 사용 권한이 부여되지만 다른 사용자(normalUser라고 함)는 특정 작업을 수행할 수 없습니다. 예:

  • securityops 사용자는 규격에 emergency 계층에 대한 참조가 있는 Antrea ACNP(ClusterNetworkPolicy) 또는 ANP(Antrea NetworkPolicy)를 생성할 수 있습니다.
  • securityops 사용자는 기존 ACNP 또는 ANP를 업데이트하거나 패치하고 해당 규격의 emergency 계층에 대한 참조를 추가할 수 있습니다(securityops 사용자에게 기존 계층에 대한 참조를 편집할 수 있는 사용 권한이 있는 경우).
  • securityops 사용자는 기존 ACNP 또는 ANP를 업데이트하거나 패치를 적용하고 해당 규격에서 emergency 계층에 대한 참조를 제거할 수 있습니다.
  • securityops 사용자는 기존 ACNP 또는 ANP를 삭제할 수 있습니다. 이 ACNP에는 해당 규격의 emergency 계층에 대한 참조가 있습니다.
  • securityops 사용자는 기존 ACNP 또는 ANP의 세부 정보를 가져올 수 있습니다. 여기에는 해당 규격의 emergency 계층에 대한 참조가 있습니다.
  • ACNP 또는 ANP를 생성하려고 시도하는 normalUser 규격에서 emergency 계층에 대한 참조가 있는 권한은 거부됩니다.
  • ACNP 또는 ANP를 삭제하려고 시도하는 normalUser 규격에서 emergency 계층에 대한 참조가 있는 권한은 거부됩니다.
  • ACNP 또는 ANP를 업데이트하거나 패치하려고 시도하는 normalUser 규격에서 emergency 계층에 대한 참조가 있는 권한은 거부됩니다.
참고

Antrea의 클러스터 네트워크 정책을 설정하는 방법은 Antrea의 클러스터 네트워크 정책 설정을 참조하십시오.

check-circle-line exclamation-circle-line close-line
Scroll to top icon