Udostępnij za pośrednictwem


Kontrola dostępu do klastra z integracją firmy Microsoft zarządzaną przez usługę AKS

Po zintegrowaniu usługi Microsoft Entra ID z klastrem usługi AKS możesz użyć dostępu warunkowego lub usługi Privileged Identity Management (PIM) dla żądań just in time w celu kontrolowania dostępu do klastra. W tym artykule pokazano, jak włączyć dostęp warunkowy i usługę PIM w klastrach usługi AKS.

Uwaga

Microsoft Entra Conditional Access and Privileged Identity Management (PIM) to microsoft Entra ID P1, P2 lub Governance możliwości wymagające jednostki SKU Premium P2. Aby uzyskać więcej informacji na temat licencji i jednostek SKU entra firmy Microsoft, zobacz Zarządzanie tożsamością Microsoft Entra przewodnik po licencjonowaniu i cenniku.

Zanim rozpoczniesz

  • Aby zapoznać się z omówieniem i instrukcjami konfiguracji, zobacz Integracja z usługą Microsoft Entra zarządzana przez usługę AKS.

Używanie dostępu warunkowego z identyfikatorem Entra firmy Microsoft i usługą AKS

  1. W witrynie Azure Portal przejdź do strony Microsoft Entra ID i wybierz pozycję Aplikacje dla przedsiębiorstw.

  2. Wybierz pozycję Zasady>dostępu>warunkowego Nowe zasady.

    Screenshot of adding a Conditional Access policy.

  3. Wprowadź nazwę zasad, taką jak aks-policy.

  4. W obszarze Przypisania wybierz pozycję Użytkownicy i grupy. Wybierz użytkowników i grupy, do których chcesz zastosować zasady. W tym przykładzie wybierz tę samą grupę firmy Microsoft Entra, która ma dostęp administratora do klastra.

    Screenshot of selecting users or groups to apply the Conditional Access policy.

  5. W obszarze Aplikacje lub akcje>w chmurze Dołącz wybierz pozycję Wybierz aplikacje. Wyszukaj usługę Azure Kubernetes Service i wybierz pozycję Azure Kubernetes Service Microsoft Entra Server.

    Screenshot of selecting Azure Kubernetes Service AD Server for applying the Conditional Access policy.

  6. W obszarze Kontrola>dostępu Udziel wybierz pozycję Udziel dostępu, Wymagaj, aby urządzenie było oznaczone jako zgodne i Wymagaj wszystkich wybranych kontrolek.

    Screenshot of selecting to only allow compliant devices for the Conditional Access policy.

  7. Potwierdź ustawienia, ustaw pozycję Włącz zasady na Włączone, a następnie wybierz pozycję Utwórz.

    Screenshot of enabling the Conditional Access policy.

Sprawdź, czy zasady dostępu warunkowego zostały pomyślnie wyświetlone

  1. Uzyskaj poświadczenia użytkownika, aby uzyskać dostęp do klastra az aks get-credentials przy użyciu polecenia .

     az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    
  2. Postępuj zgodnie z instrukcjami, aby się zalogować.

  3. Wyświetl węzły w klastrze przy użyciu kubectl get nodes polecenia .

    kubectl get nodes
    
  4. W witrynie Azure Portal przejdź do pozycji Microsoft Entra ID i wybierz pozycję Logowania aktywności>aplikacji>dla przedsiębiorstw.

  5. W kolumnie Dostęp warunkowy powinien zostać wyświetlony stan Powodzenie. Wybierz zdarzenie, a następnie wybierz kartę Dostęp warunkowy. Zostaną wyświetlone zasady dostępu warunkowego.

    Screenshot that shows failed sign-in entry due to Conditional Access policy.

Konfigurowanie dostępu do klastra just in time przy użyciu identyfikatora Entra firmy Microsoft i usługi AKS

  1. W witrynie Azure Portal przejdź do pozycji Microsoft Entra ID i wybierz pozycję Właściwości.

  2. Zanotuj wartość wymienioną w obszarze Identyfikator dzierżawy. Zostanie on odwołany w późniejszym kroku jako <tenant-id>.

    Screenshot of the Azure portal screen for Microsoft Entra ID with the tenant's ID highlighted.

  3. Wybierz pozycję Grupy>Nowa grupa.

    Screenshot of the Azure portal Active Directory groups screen with the New Group option highlighted.

  4. Sprawdź, czy wybrano typ grupy Zabezpieczenia i określ nazwę grupy, taką jak myJITGroup. W obszarze opcji Role firmy Microsoft Entra można przypisać do tej grupy (wersja zapoznawcza), wybierz pozycję Tak , a następnie wybierz pozycję Utwórz.

    Screenshot of the new group creation screen in the Azure portal.

  5. Na stronie Grupy wybierz właśnie utworzoną grupę i zanotuj identyfikator obiektu. Zostanie on odwołany w późniejszym kroku jako <object-id>.

    Screenshot of the Azure portal screen for the just-created group with the Object ID highlighted.

  6. Utwórz klaster usługi AKS przy użyciu integracji usługi Microsoft Entra zarządzanej az aks create przez usługę AKS przy użyciu polecenia --aad-admin-group-objects-ids i --aad-tenant-id parameters i uwzględnij wartości zanotowany wcześniej w krokach.

    az aks create \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --enable-aad \
        --aad-admin-group-object-ids <object-id> \
        --aad-tenant-id <tenant-id> \
        --generate-ssh-keys        
    
  7. W witrynie Azure Portal wybierz pozycję Dostęp uprzywilejowany działania>(wersja zapoznawcza)>Włącz dostęp uprzywilejowany.

    Screenshot of the Privileged access (Preview) page in the Azure portal with Enable privileged access highlighted.

  8. Aby udzielić dostępu, wybierz pozycję Dodaj przypisania.

    Screenshot of the Privileged access (Preview) screen in the Azure portal after enabling. The option to Add assignments is highlighted.

  9. Z listy rozwijanej Wybierz rolę wybierz użytkowników i grupy, którym chcesz udzielić dostępu do klastra. Te przypisania można modyfikować w dowolnym momencie przez administratora grupy. Następnie kliknij przycisk Dalej.

    Screenshot of the Add assignments Membership screen in the Azure portal with a sample user selected to be added as a member. The Next option is highlighted.

  10. W obszarze Typ przypisania wybierz pozycję Aktywne , a następnie określ żądany czas trwania. Podaj uzasadnienie, a następnie wybierz pozycję Przypisz.

    Screenshot of the Add assignments Setting screen in the Azure portal. An assignment type of Active is selected and a sample justification has been given. The Assign option is highlighted.

Aby uzyskać więcej informacji na temat typów przypisań, zobacz Przypisywanie uprawnień do uprzywilejowanej grupy dostępu (wersja zapoznawcza) w usłudze Privileged Identity Management.

Sprawdź, czy dostęp just in time działa, korzystając z klastra

  1. Uzyskaj poświadczenia użytkownika, aby uzyskać dostęp do klastra az aks get-credentials przy użyciu polecenia .

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    
  2. Wykonaj kroki, aby się zalogować.

  3. Użyj polecenia , kubectl get nodes aby wyświetlić węzły w klastrze.

    kubectl get nodes
    
  4. Zwróć uwagę na wymaganie dotyczące uwierzytelniania i wykonaj kroki uwierzytelniania. W przypadku powodzenia powinny zostać wyświetlone dane wyjściowe podobne do następujących przykładowych danych wyjściowych:

    To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
    NAME                                STATUS   ROLES   AGE     VERSION
    aks-nodepool1-61156405-vmss000000   Ready    agent   6m36s   v1.18.14
    aks-nodepool1-61156405-vmss000001   Ready    agent   6m42s   v1.18.14
    aks-nodepool1-61156405-vmss000002   Ready    agent   6m33s   v1.18.14
    

Stosowanie dostępu just in time na poziomie przestrzeni nazw

  1. Integrowanie klastra usługi AKS z kontrolą dostępu opartą na rolach platformy Azure.

  2. Skojarz grupę, którą chcesz zintegrować z dostępem just in time z przestrzenią nazw w klastrze przy użyciu az role assignment create polecenia .

    az role assignment create --role "Azure Kubernetes Service RBAC Reader" --assignee <AAD-ENTITY-ID> --scope $AKS_ID/namespaces/<namespace-name>
    
  3. Skojarz grupę skonfigurowaną na poziomie przestrzeni nazw z usługą PIM, aby ukończyć konfigurację.

Rozwiązywanie problemów

Jeśli kubectl get nodes zwraca błąd podobny do następującego:

Error from server (Forbidden): nodes is forbidden: User "aaaa11111-11aa-aa11-a1a1-111111aaaaa" cannot list resource "nodes" in API group "" at the cluster scope

Upewnij się, że administrator grupy zabezpieczeń nadał Twojemu kontu aktywne przypisanie.

Następne kroki

  • Użyj narzędzia kubelogin , aby uzyskać dostęp do funkcji uwierzytelniania platformy Azure, które nie są dostępne w narzędziu kubectl.