Sdílet prostřednictvím


Použití Azure RBAC pro clustery AKS (Preview, vyřazeno)

Platí pro: AKS v Azure Local 22H2, AKS na Windows Serveru

Upozorňující

Tato funkce Preview byla vyřazena a od 15. 7. 2024 se nepodporuje. Microsoft nedoporučuje používat tuto funkci Azure RBAC ve verzi Preview v produkčním prostředí.

Tento článek popisuje, jak nastavit Azure RBAC v clusteru AKS tak, aby pro autorizaci používalo ID Microsoft Entra a přiřazení rolí Azure. Kroky pro vytvoření clusteru jsou popsané v požadavcích.

Koncepční přehled použití Azure RBAC s clustery Kubernetes s podporou Azure Arc najdete v Azure RBAC v Kubernetes s podporou Azure Arc.

Požadavky

Před nasazením clusteru Kubernetes s povolenou službou Azure Arc musíte splnit následující požadavky.

Instalace rozšíření Azure CLI

Verze Preview rozšíření Kubernetes Azure CLI s podporou Azure Arc je jedinou kompatibilní verzí pro tuto verzi Preview instalace AKS v Azure Local 22H2. Použití vyšší verze může způsobit problémy s nekompatibilitou s Azure RBAC a AKS Arc. Pokud chcete rozšíření nainstalovat, spusťte následující příkaz:

az extension add -n connectedk8s --version 1.5.4

Příprava sítě

Nakonfigurujte následující nastavení sítě, proxy serveru a brány firewall:

  • Nakonfigurujte koncové body, které musí být přístupné pro připojení clusteru ke službě Azure Arc. Seznam najdete v tématu Splnění požadavků na síť.

  • Povolte koncový bod Graphu ve vašem proxy serveru nebo bráně firewall.

    Informace o konfiguraci proxy serveru naleznete v tématu Nastavení proxy serveru.

Serverové a klientské aplikace

Azure RBAC používá klientské a serverové aplikace Microsoft Entra pro různé účely. Klientská aplikace se používá k načtení tokenu uživatele, jakmile se uživatel ověří pomocí ID Microsoft Entra pomocí interaktivního přihlášení; Například prostřednictvím toku kódu zařízení. Klientská aplikace je veřejný klient a také podporuje neinteraktivní tok pro načtení tokenu pro instanční objekty.

Serverová aplikace je důvěrný klient a slouží k načtení podrobností o skupině zabezpečení přihlášeného uživatele pro uživatele s nadlimitní využití a k kontrole žádostí o přístup, které vrací autorizační výsledek, který má objekt zabezpečení (uživatel nebo hlavní název služby) v clusteru AKS.

Když zaregistrujete aplikaci Microsoft Entra, uloží informace o konfiguraci v Microsoft Entra ID. Tato konfigurace umožňuje aplikaci reprezentovanou aplikací Microsoft Entra ověřit jménem uživatele (nebo hlavní název služby). Po ověření může aplikace použít ID aplikace Microsoft Entra pro přístup k rozhraním API jménem uživatele.

Vytvoření serverové aplikace a klientské aplikace

Zaregistrujte serverové aplikace a tajné kódy a klientskou aplikaci a tajný kód provedením následujících kroků:

Poznámka:

Tyto kroky vás nasměrují na klíčové úlohy v použití Azure RBAC pro clustery Kubernetes s podporou Azure Arc, které jsou potřeba k přípravě na nastavení Azure RBAC v AKS Arc.

Chcete-li provést tyto kroky, musíte mít předdefinované role správce aplikací v Microsoft Entra ID. Pokyny najdete v tématu Přiřazení rolí Microsoft Entra uživatelům.

  1. Vytvořte serverovou aplikaci a sdílený tajný klíč.
  2. Vytvořte přiřazení role pro serverovou aplikaci.
  3. Vytvořte klientskou aplikaci. Pokud se používáte kubectl k připojení v síti, odkazujete na klientskou aplikaci.

Udělení oprávnění uživatelům v clusteru

Přiřaďte role k udělení oprávnění uživatelům hlavních názvů služeb (SPN) v clusteru. Použijte příkaz az role assignment.

Pokud chcete přiřadit role v clusteru Kubernetes, musíte mít oprávnění vlastníka k předplatnému, skupině prostředků nebo clusteru.

Následující příklad pomocí příkazu az role přiřazení přiřadí roli správce clusteru Azure Arc Kubernetes skupině prostředků, která cluster obsahuje. Rozsah skupiny prostředků můžete nastavit před vytvořením clusteru:

az role assignment create --role "Azure Arc Kubernetes Cluster Admin" --assignee xyz@contoso.com --scope /subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Kubernetes/connectedClusters/<resource name, aka name of AKS cluster>

Pokud chcete získat přístup ke clusteru prostřednictvím metody proxy connectedk8s (jedna z možností pro komunikaci se serverem api), musíte mít roli uživatele clusteru Kubernetes s podporou Azure Arc vymezenou na předplatné, skupinu prostředků nebo cluster.

Následující příkaz přiřadí roli ke skupině místo konkrétního uživatele (viz předchozí příklad):

az role assignment create --assignee 00000000-0000-0000-0000-000000000000 --role "Azure Arc Kubernetes Cluster Admin" --scope $id

Assignee je ID objektu skupiny Microsoft Entra.

Další informace o roli najdete v této části.

Pokud chcete získat ID oboru clusteru nebo skupiny prostředků, spusťte následující příkazy a použijte "id":property:

az connectedk8s show -g <name of resource group>  
az connectedk8s show -n <name of cluster> -g <name of resource group>

Další příklady najdete v tématu az role assignment.

Informace o předem připravených rolích Azure RBAC pro clustery Kubernetes s podporou Arc najdete v tématu Vytváření přiřazení rolí pro uživatele pro přístup ke clusteru. Seznam všech dostupných předdefinovaných rolí najdete v tématu Předdefinované role Azure.

Krok 1: Vytvoření hlavního názvu služby (SPN) a přiřazení oprávnění

Pomocí instančního objektu Azure nakonfigurujte účet Automation s oprávněními potřebnými k vytvoření cílového clusteru s povoleným Azure RBAC.

Vytvoření cílového clusteru vyžaduje pouze omezená oprávnění k předplatnému. Doporučujeme používat cluster Kubernetes – roli onboardingu Azure Arc. Můžete také použít roli Vlastník nebo Přispěvatel . Další informace najdete v tématu Předdefinované role v Azure.

Pomocí příkazu Azure CLI vytvořte hlavní název az ad sp create-for-rbac služby (SPN) a nakonfigurujte ho s potřebnými oprávněními.

Následující příklad přiřadí cluster Kubernetes – roli onboardingu Azure Arc k předplatnému. Další informace najdete v referenčních informacích k příkazům az ad sp :

az ad sp create-for-rbac --role "Kubernetes Cluster - Azure Arc Onboarding" --scopes /subscriptions/<OID of the subscription ID> 

Důležité

Výstup příkazu pro az ad sp zahrnutí přihlašovacích údajů, které musíte chránit. Nezahrnujte tyto přihlašovací údaje do kódu ani nezaškrtávejte přihlašovací údaje do správy zdrojového kódu. Další informace najdete v tématu Vytvoření instančního objektu Azure.

Další informace o vytvoření hlavního názvu služby (SPN) a přiřazení role k němu najdete v tématu Vytvoření instančního objektu Azure.

Krok 2: Vytvoření objektu přihlašovacích údajů

Pokud chcete vytvořit objekt přihlašovacích údajů, který se má použít s hlavním název služby (SPN), otevřete okno PowerShellu a spusťte následující příkaz:

$Credential = Get-Credential

Tento příkaz zobrazí výzvu k zadání hesla.

Pokud chcete automatizovat vytváření objektu přihlašovacích údajů bez nutnosti ručního zadání hesla, přečtěte si téma Get-Credential, Příklad 4. Skript obsahuje přihlašovací údaje ve formátu prostého textu, které můžou v některých podnicích porušit standardy zabezpečení.

Krok 3: Vytvoření clusteru AKS s podporou Azure RBAC

Cluster s podporou Azure RBAC můžete vytvořit pomocí hlavního názvu služby (Option A) nebo můžete cluster vytvořit interaktivně (možnost B).

Možnost A: Vytvoření cílového clusteru AKS s podporou Azure RBAC pomocí hlavního názvu služby (SPN)

Vytvoření cílového clusteru AKS s povoleným Azure RBAC pomocí hlavního názvu služby (SPN):

  1. Pokud ještě nemáte hlavní název služby pro použití s cílovým clusterem, vytvořte hlavní název služby (SPN ).

  2. Všimněte si, že nový hlavní název služby (SPN) je jednorázově používán při vytváření clusteru a nevyžaduje správu hesel.

  3. Otevřete okno PowerShellu na místním uzlu Azure nebo na serveru s Windows, do kterého nasadíte cluster, a spusťte následující příkaz:

    New-AksHciCluster -name "<cluster name>"  -enableAzureRBAC -resourceGroup "<resource group name>" -subscriptionID "<subscription ID>" -tenantId "<tenant ID>" -credential $Credential -location "eastus" -appId $SERVER_APP_ID -appSecret $SERVER_APP_SECRET -aadClientId $CLIENT_APP_ID -nodePoolName <name of node pool> 
    

Možnost B: Interaktivní vytvoření cílového clusteru AKS s podporou Azure RBAC

Pokud dáváte přednost interaktivnímu vytvoření cílového clusteru s podporou Azure RBAC, postupujte takto:

  1. Otevřete okno PowerShellu na místním uzlu Azure nebo na serveru s Windows, na kterém nasadíte cluster.

  2. Přihlaste se k Azure spuštěním následujícího connect-azaccount -deviceauth příkazu:

    connect-azaccount -deviceauth
    

    Příkazový řádek k ověření prostřednictvím toku kódu zařízení.

  3. Nastavte kontext předplatného na předplatné, ve kterém se má cílový cluster vytvořit:

    Set-AzContext -Subscription "subscriptionName"
    
  4. Vytvořte cílový cluster AKS s povoleným Azure RBAC:

    New-AksHciCluster -name "<cluster name>"  -enableAzureRBAC -resourceGroup "<name of resource group>"  -location "eastus" -appId $SERVER_APP_ID -appSecret $SERVER_APP_SECRET -aadClientId $CLIENT_APP_ID -nodePoolName <name of node pool> 
    

Krok 4: Připojení ke clusteru AKS přes Azure RBAC

Nastavení Azure RBAC v clusteru AKS je teď hotové. Pokud chcete otestovat nastavení Azure RBAC, připojte se ke clusteru AKS. Azure RBAC ověřuje připojení.

Postupy v této části používají metodu connectedk8s proxy pro připojení ke clusteru AKS a připojení ke clusteru AKS přes privátní síť.

Připojení ke clusteru AKS přes internet pomocí connectedk8s metody proxy

connectedk8s Pomocí metody proxy odešlete žádost o ověření nebo autorizaci odkudkoli na internetu. Pokud použijete tuto metodu, omezíte se na 200 skupin.

Pokud se chcete připojit ke clusteru AKS pomocí connectedk8s metody proxy, proveďte následující kroky:

  1. Otevřete okno Azure CLI a použijte az login k připojení k Azure. Další informace najdete v tématu Přihlášení pomocí Azure CLI.

  2. V případě potřeby nastavte předplatné pro váš účet Azure na předplatné, které jste použili k vytvoření clusteru AKS:

    az account set -subscription "<mySubscription>" 
    
  3. Potvrďte, že jste připojení k Azure:

    az account show
    
  4. Spusťte proces proxy serveru:

    az connectedk8s proxy -n <cluster name> -g <resource group name>
    
  5. Ujistěte se, že ověřování funguje správně odesláním požadavků do clusteru. Terminál, který jste připojili, nechte otevřený, otevřete jinou kartu a odešlete požadavky do clusteru. Měli byste získat odpovědi na základě vaší konfigurace Azure RBAC.

  6. Stisknutím kombinace kláves Ctrl+C ukončete connectedk8s připojení proxy serveru.

Připojení ke clusteru AKS přes privátní síť

Když se připojíte ke clusteru AKS přes privátní síť, počet skupin, které můžete použít, není nijak omezený.

Pokud chcete načíst protokol Microsoft Entra kubeconfig do místního počítače (například místní cluster Azure), vygenerujte microsoft Entra kubeconfig pomocí následujícího příkazu. Microsoft Entra kubeconfig můžete distribuovat uživatelům, kteří se připojují ze svého klientského počítače. Microsoft Entra kubeconfig neobsahuje žádné tajné kódy.

Pokud se chcete připojit ke clusteru AKS přes privátní síť, proveďte následující kroky:

  1. Stáhněte si soubor kubeconfig:

    Get-AksHciCredential -Name <cluster name> -aadauth
    
  2. Spuštěním kubectl příkazu api-serverspusťte odesílání požadavků na server rozhraní API AKS. Zobrazí se výzva k zadání přihlašovacích údajů Microsoft Entra. Může se zobrazit upozornění, ale můžete ji ignorovat.

Aktualizace na modul plug-in pro ověřování kubelogin

Poznámka:

Informace v této části platí pro AKS verze 1.0.17.10310 a novější. Informace o verzi najdete v poznámkách k verzi.

Pokud chcete poskytovat ověřovací tokeny pro komunikaci s clustery AKS, klienti Kubectl vyžadují ověřovací modul plug-in.

Pokud chcete vygenerovat soubor kubeconfig, který vyžaduje modul plug-in binárního ověřování Azure kubelogin.exe, spusťte následující příkaz PowerShellu:

Get-AksHciCredential -Name <cluster name> -aadauth

Tento příkaz také stáhne binární kubelogin.exe . Pokud chcete najít umístění souboru kubelogin.exe , spusťte následující příkaz:

$workingdir = (Get-AksHciConfig).Akshci.installationPackageDir

Tento příkaz vrátí cestu ke stažení kubelogin.exe . Zkopírujte soubor kubelogin.exe do místního uzlu Nebo klientského počítače Azure. V případě Azure Local zkopírujte soubor do cesty, jak je popsáno v následujícím příkladu. V případě klientského počítače zkopírujte spustitelný soubor do klientského počítače a přidejte ho do cesty. Příklad:

cp $workingdir\kubelogin.exe "c:\program files\akshci"

Případně můžete ke stažení kubelogin.exe do klientského počítače spustit následující příkaz:

wget https://github.com/Azure/kubelogin/releases/download/v0.0.26/kubelogin-win-amd64.zip -OutFile kubelogin-win-amd64.zip

Další informace o tom, jak převést na modul plug-in pro ověřování kubelogin , najdete na stránce Azure kubelogin na GitHubu.

Další kroky