Řízení přístupu na základě role v clusterech Kubernetes operátora Azure Nexus

Tento článek obsahuje komplexní průvodce správou přístupu ke clusterům Kubernetes Nexus pomocí Microsoft Entra ID. Konkrétně se zaměřujeme na řízení přístupu na základě role, které umožňuje udělit uživatelům oprávnění na základě jejich rolí nebo zodpovědností ve vaší organizaci.

Než začnete

  1. Začněte tím, že vytvoříte skupinu Microsoft Entra pro správce clusteru a přiřadíte k ní členy. Microsoft Entra ID umožňuje udělit přístup ke skupině jako celku, a ne spravovat oprávnění pro každého uživatele jednotlivě.
  2. Při vytváření clusteru Nexus Kubernetes použijte ID skupiny, které jste vytvořili jako hodnotu adminGroupObjectIds, abyste zajistili, že členové skupiny získají oprávnění ke správě clusteru. Pokyny k vytvoření a přístupu ke clusteru Nexus Kubernetes najdete v příručce Rychlý start .

Správa istrator přístup ke clusteru

Nexus vytvoří vazbu role clusteru Kubernetes s výchozí rolí cluster-admin Kubernetes a skupinami Microsoft Entra, které jste zadali jako adminGroupObjectIds. Správci clusteru mají úplný přístup ke clusteru a mohou provádět všechny operace v clusteru. Správci clusteru můžou také udělit přístup jiným uživatelům tím, že je přiřadí příslušné skupině Microsoft Entra.

Poznámka:

Při vytváření clusteru Nexus Kubernetes vytvoří Nexus automaticky spravovanou skupinu prostředků vyhrazenou k ukládání prostředků clusteru v rámci této skupiny, vytvoří se prostředek clusteru připojeného ke službě Arc.

Pokud chcete získat přístup ke clusteru, musíte nastavit připojení kubeconfigclusteru . Po přihlášení k Azure CLI s příslušnou entitou Microsoft Entra můžete získat kubeconfig potřebnou komunikaci s clusterem odkudkoli, i mimo bránu firewall, která ji obklopuje.

  1. RESOURCE_GROUP Nastavte CLUSTER_NAMEa SUBSCRIPTION_ID proměnné.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Dotazování spravované skupiny prostředků pomocí az a uložení do MANAGED_RESOURCE_GROUP

     az account set -s $SUBSCRIPTION_ID
     MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
    
  3. Následující příkaz spustí proxy server connectedk8s, který umožňuje připojit se k serveru rozhraní API Kubernetes pro zadaný cluster Nexus Kubernetes.

    az connectedk8s proxy -n $CLUSTER_NAME  -g $MANAGED_RESOURCE_GROUP &
    
  4. Slouží kubectl k odesílání požadavků do clusteru:

    kubectl get pods -A
    

    Teď by se měla zobrazit odpověď z clusteru obsahujícího seznam všech uzlů.

Poznámka:

Pokud se zobrazí chybová zpráva "Nepodařilo se odeslat přístupový token do klientského proxy serveru se nepovedlo připojit k MSI", možná budete muset provést az login opětovné ověření v Azure.

Řízení přístupu na základě role

Jako správce můžete clusteru poskytnout řízení přístupu na základě role vytvořením vazby role s ID objektu skupiny Microsoft Entra. Pro uživatele, kteří potřebují jenom oprávnění zobrazit, můžete úkol provést tak, že je přidáte do skupiny Microsoft Entra, která je svázaná s rolí zobrazení.

  1. Vytvořte skupinu Microsoft Entra pro uživatele, kteří potřebují přístup k zobrazení, odkazující na výchozí roli Kubernetes s názvem view. Tato role je jen příkladem a v případě potřeby můžete vytvořit vlastní role a místo toho je použít. Další informace o uživatelských rolích v Kubernetes najdete v oficiální dokumentaci k rolím přístupu založeným na kubernetes.

  2. Poznamenejte si ID objektu skupiny Microsoft Entra vygenerované při vytváření.

  3. Pomocí příkazu kubectl vytvořte clusterrolebinding s rolí view a přidružte ho ke skupině Microsoft Entra. Nahraďte AZURE_AD_GROUP_OBJECT_ID ID objektu vaší skupiny Microsoft Entra.

    kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
    

    Tento příkaz vytvoří vazbu role clusteru s názvem nexus-read-only-users , která přiřadí view roli členům zadané skupiny Microsoft Entra.

  4. Ověřte, že se vazba role úspěšně vytvořila.

    kubectl get clusterrolebinding nexus-read-only-users
    
  5. Teď mají uživatelé ve skupině Microsoft Entra přístup k clusteru jako zobrazení. Mají přístup ke clusteru pomocí az connectedk8s proxy k zobrazení prostředků, ale nemůžou provádět žádné změny.

Další kroky

Řízení přístupu můžete dále vyladit vytvořením vlastních rolí s konkrétními oprávněními. Vytvoření těchto rolí zahrnuje prostředky Kubernetes native RoleBinding nebo ClusterRoleBinding. Podrobné pokyny k vytváření dalších vlastních rolí a vazeb rolí najdete v oficiální dokumentaci Kubernetes podle vašich požadavků.