Gestione dei livelli in Antrea

In Antrea, un livello è costituito da determinati criteri di rete raggruppati in modo gerarchico. Un NetworkPolicy nativo di Antrea o una definizione di risorsa personalizzata (CRD) ClusterNetworkPolicy include un riferimento facoltativo al livello a cui appartiene. Durante il filtro del traffico di rete, vengono applicati innanzitutto i criteri di rete di Antrea associati ai livelli di ordine superiore (che hanno un valore di priorità numerico basso). Per ulteriori informazioni sui vari tipi di livelli in Antrea, vedere CRD dei criteri di rete di Antrea.

Configurazione delle impostazioni di accesso basato sui ruoli nei livelli

L'accesso basato sui ruoli in un livello è progettato per garantire che solo gli utenti autorizzati possano fare riferimento a un livello nei criteri nativi di Antrea. Consente a un amministratore del cluster di collegare i criteri di rete di Antrea a un livello con priorità alta e impedisce a un utente normale di collegare i criteri di rete di Antrea al livello. Questa funzionalità consente all'amministratore del cluster di applicare in un cluster criteri di sicurezza che non possono essere sostituiti da un utente normale.

Concessione delle autorizzazioni per modificare un livello

Antrea include sei livelli con priorità statiche. Per impostazione predefinita, solo gli amministratori di Kubernetes possono creare livelli personalizzati in Antrea. Per fornire agli utenti le autorizzazioni per creare nuovi livelli e modificare le priorità dei livelli, configurare le impostazioni ClusterRole e ClusterRoleBinding nel contesto del cluster del carico di lavoro.

  1. Passare al contesto del cluster del carico di lavoro:

    kubectl config use-context *WORKLOAD-CLUSTER-CONTEXT*
    
  2. Creare un file YAML ClusterRoleBinding, come illustrato nell'esempio seguente (all'utente securityops sono state concesse le autorizzazioni per leggere, creare, eliminare e aggiornare le risorse del livello):

    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. Applicare le definizioni:

    kubectl apply -f ClusterRoleBinding.yaml
    

Concessione delle autorizzazioni per fare riferimento a un livello in un criterio di rete di Antrea

Per impostazione predefinita, tutti gli utenti possono collegare un criterio di rete di Antrea a un livello qualsiasi. Per fornire a un set di utenti le autorizzazioni per fare riferimento a un livello in un criterio di rete di Antrea e bloccare tutti gli altri utenti, creare una CRD TierEntitlement e assegnare il permesso agli utenti desiderati tramite una CRD TierEntitlementBinding.

  1. Passare al contesto del cluster del carico di lavoro:

    kubectl config use-context *WORKLOAD-CLUSTER-CONTEXT*
    
  2. Creare un file YAML della CRD TierEntitlement, come illustrato nell'esempio seguente:

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

    Edit è l'unica autorizzazione valida in questo caso. Consente agli utenti autorizzati di creare, eliminare e aggiornare i criteri nativi di Antrea che appartengono ai livelli elencati, nonché applicare patch a tali criteri.

  3. Applicare il file CRD:

    kubectl apply -f TierEntitlement.yaml
    
  4. Creare un file YAML della CRD TierEntitlementBinding per associare il permesso agli utenti, come illustrato nell'esempio seguente:

    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     
    

    In questo esempio, il permesso emergency-edit del livello è stato assegnato agli utenti specificati nel campo subjects. Gli utenti supportati che possono essere specificati in subjects sono User, Group e ServiceAccount. Per ulteriori informazioni, vedere Utilizzo delle autorizzazioni RBAC.

  5. Applicare il file CRD:

    kubectl apply -f TierEntitlementBinding.yaml
    

Nei due file YAML di esempio precedenti, il livello emergency è controllato dal permesso emergency-edit del livello. Agli utenti a cui è stato assegnato il permesso emergency-edit vengono concesse determinate autorizzazioni, mentre gli altri utenti (denominati normalUser) non possono eseguire determinate azioni. Ad esempio:

  • L'utente securityops può creare un criterio di rete del cluster di Antrea, ovvero un ACNP (Antrea ClusterNetworkPolicy) o un criterio di rete di Antrea, ovvero un ANP (Antrea NetworkPolicy), che abbia nella specifica un riferimento al livello emergency.
  • L'utente securityops può aggiornare o applicare una patch a un ACNP oppure a un ANP esistente e aggiungere un riferimento al livello emergency nella sua specifica (se l'utente securityops dispone delle autorizzazioni per modificare un riferimento al livello esistente).
  • L'utente securityops può aggiornare o applicare una patch a un ACNP oppure a un ANP esistente e rimuovere il riferimento al livello emergency dalla sua specifica.
  • L'utente securityops può eliminare un ACNP o un ANP esistente che ha un riferimento al livello emergency nella sua specifica.
  • L'utente securityops può recuperare i dettagli di un ACNP o un ANP esistente che ha un riferimento al livello emergency nella sua specifica.
  • All'utente normalUser che tenta di creare un ACNP o un ANP con un riferimento al livello emergency nella specifica, viene negata l'autorizzazione.
  • All'utente normalUser che tenta di eliminare un ACNP o un ANP con un riferimento al livello emergency nella specifica, viene negata l'autorizzazione.
  • All'utente normalUser che tenta di aggiornare o applicare una patch a un ACNP o un ANP con un riferimento al livello emergency nella specifica, viene negata l'autorizzazione.
Nota

Per informazioni su come impostare i criteri di rete del cluster per Antrea, vedere Impostazione dei criteri di rete del cluster per Antrea.

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