Konfigurera behörigheter och rollbaserad åtkomstkontroll (RBAC) i AKS Desktop

Skärmbild av ett diagram som visar RBAC-rolltilldelningar för AKS-skrivbord för klusteroperator- och utvecklarroller

Beroende på din roll som klusteroperator eller utvecklare kan du tillhandahålla en miljö (Project) i AKS Desktop där utvecklare kan distribuera, migrera eller hantera program, eller tillåta att de själv kan distribuera och hantera program i ett dedikerat AKS-kluster. Du kan också ge fler utvecklare åtkomst till att hantera, observera och felsöka program.

När du skapar ett projekt på AKS-skrivbordet kan du som standard dela det med andra personer i din organisation, och det anger behörigheterna åt dig. Du kan dock behöva behålla behörigheter över tid eller automatisera dem eller definiera en driftsmodell genom att ange lämpliga behörigheter.

Den här artikeln beskriver hur du hanterar RBAC-behörigheter så att teammedlemmar kan arbeta med AKS Desktop.

Anmärkning

AKS Desktop tillhandahåller för närvarande inte något användargränssnittsalternativ för att ändra projektbehörigheter efter skapandet. Om du vill uppdatera behörigheter eller bevilja åtkomst till ytterligare användare när ett projekt har skapats använder du Azure-portalen eller Azure CLI enligt beskrivningen i den här artikeln.

Anmärkning

När du skapar projekt i AKS Desktop skapas AKS-hanterade namnområden i samma resursgrupp som klustret.

Förutsättningar

  • Ett Azure-abonnemang. Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto.
  • Azure CLI version 2.64.0 eller senare installerad och konfigurerad. Kontrollera din version med hjälp av az --version kommandot . Information om hur du installerar eller uppgraderar finns i Installera Azure CLI.
  • Azure CLI-tillägget aks-preview . Installera den med kommandot az extension add --name aks-preview .
  • En grundläggande förståelse för rollbaserad åtkomstkontroll i Azure (RBAC) finns i Vad är Azure RBAC? och inbyggda Azure-roller.
  • En Azure-resursgrupp som innehåller ditt AKS-kluster och alla AKS-hanterade projekt som skapats via AKS Desktop.
  • Ett AKS Standard-kluster som uppfyller KRAVEN för AKS-skrivbordet eller ett AUTOMATISKT AKS-kluster, vilket är Kubernetes-klustret där dina program körs.
  • Ett Azure Container Registry (ACR) för att lagra dina containerbilder för utplacering.

Ansvarsområden för klusteroperatorer

Som klusteroperator ansvarar du för att etablera och konfigurera den grundläggande infrastrukturen som gör det möjligt för utvecklingsteam att skapa och distribuera program. Dina ansvarsområden omfattar:

  • Skapa den nödvändiga Azure-infrastrukturen (resursgrupp, AKS-kluster, ACR).
  • Konfigurera ACR-integrering med ditt AKS-kluster.
  • Tilldela behörigheter för användare att skapa projekt.
  • Du kan också delegera behörighetshantering till projektskapare.

Skapa infrastrukturresurser

För att skapa infrastrukturresurserna behöver du behörighet att skapa resurser i Azure. Om du inte har tilldelats rollen Ägare RBAC behöver du rollen Deltagare för att skapa resurser och rollen Administratör för användaråtkomst för att tilldela behörigheter till andra användare. Tilldela behörigheter till användare så att de kan skapa resurser i resursgruppen med hjälp av följande steg:

  1. Ange miljövariabler för resursgruppen och klusternamnet. Ersätt platshållarna med den faktiska resursgruppen och klusternamnen.

    export RESOURCE_GROUP=<infra-resource-group>
    export CLUSTER_NAME=<cluster-name>
    export SUBSCRIPTION_ID=$(az account show --query id --output tsv)
    export ACR_NAME=<acr-name>
    
  2. Tilldela den roll som krävs för att skapa resurser i resursgruppen med kommandot az role assignment create . Ersätt <user-id> med lämpligt användar- eller tjänsthuvudnamns-ID.

    az role assignment create --role "Contributor" \
        --assignee <user-id> \
        --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP
    

Integrera ACR med ditt AKS-kluster

Bifoga ditt Azure-containerregister med ditt AKS-kluster med hjälp av az aks update kommandot .

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --attach-acr $ACR_NAME

Välj en modell för att skapa projekt

Som klusteroperator har du två alternativ för hur utvecklare arbetar med Projekt i AKS Desktop:

  • Självbetjäningsmodell: Utvecklare skapar och hanterar sina egna projekt. Den här metoden ger utvecklare fullständig autonomi men kräver att de får rollen Azure Kubernetes Service Namespace-deltagare . När utvecklare skapar egna projekt får de automatiskt rollen Ägare i det hanterade namnområdet och kan omedelbart börja distribuera program.
  • Hanterad modell: Du skapar projekt för utvecklare och ger dem åtkomst. För närvarande kan du konfigurera detta när du skapar projektet. Den här metoden ger mer kontroll över projektskapandet, men om du behöver tilldela fler teammedlemmar till project-efterskapandet måste du tilldela dem de behörigheter som krävs med hjälp av Azure-portalen eller Azure CLI enligt beskrivningen i nästa avsnitt.

Självbetjäningsmodell: Tillåt utvecklare att skapa egna projekt

Om du vill att utvecklare ska kunna skapa egna projekt tilldelar du rollen Azure Kubernetes Service Namespace-deltagare i AKS-klustret. AKS desktop Projects skapar AKS-hanterade namnområden i bakgrunden, och den här rollen ger nödvändiga behörigheter.

Tilldela utvecklare rollen Azure Kubernetes Service Namespace Contributor med hjälp av az role assignment create kommandot. Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID.

az role assignment create \
    --role "Azure Kubernetes Service Namespace Contributor" \
    --assignee <developer-user-id> \
    --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME

Hanterad modell: Skapa projekt för utvecklare och tilldela åtkomst

Om du föredrar att skapa projekt åt utvecklare måste du tilldela tre viktiga roller så att de kan komma åt klustret och arbeta inom deras tilldelade namnområde:

  • Användarroll för Azure Kubernetes Service-kluster: Gör att utvecklare kan ladda ned klusterautentiseringsuppgifterna med hjälp av az aks get-credentials kommandot .
  • Azure Kubernetes Service Namespace-användare: Ger åtkomst till det hanterade namnområdet.
  • En av Kubernetes RBAC-rollerna (läsare, skrivare eller administratör): Styr vilka åtgärder de kan utföra i namnområdet.

Alla tre rollerna krävs för att utvecklare ska kunna komma åt och arbeta med sina projekt i AKS Desktop. Utan Användarrollen för Azure Kubernetes-tjänstkluster kan utvecklare inte ladda ned kubeconfig-filen som behövs för att ansluta till klustret.

Tilldela klusteråtkomst

Tilldela Användarrollen för Azure Kubernetes-tjänstkluster för att aktivera kubeconfig-nedladdning med kommandot az role assignment create . Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID.

az role assignment create \
    --role "Azure Kubernetes Service Cluster User Role" \
    --assignee <developer-user-id> \
    --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME

Tilldela namnområdesåtkomst

Tilldela Azure Kubernetes-tjänstens namnområde användarroll för ett specifikt projekt-/namnområde med hjälp av az role assignment create kommandot. Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID.

export NAMESPACE_NAME=<namespace-or-project-name>

az role assignment create \
    --role "Azure Kubernetes Service Namespace User" \
    --assignee <developer-user-id> \
    --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME/namespaces/$NAMESPACE_NAME

Tilldela Kubernetes RBAC-roll

Tilldela lämplig Kubernetes RBAC-roll baserat på vad utvecklaren behöver göra:

  • Azure Kubernetes Service RBAC Reader för skrivskyddad åtkomst.
  • Azure Kubernetes Service RBAC Writer för distribution av program.
  • Azure Kubernetes Service RBAC Admin för fullständig administrativ kontroll.
  1. Hämta AKS-kluster-ID:t med kommandot az aks show .

    AKS_ID=$(az aks show \
        --resource-group $RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --query id \
        --output tsv)
    
  2. Tilldela lämplig Kubernetes RBAC-roll med kommandot az role assignment create . Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID. I följande exempel tilldelas rollen Azure Kubernetes Service RBAC Writer :

    az role assignment create \
        --role "Azure Kubernetes Service RBAC Writer" \
        --assignee <developer-user-id> \
        --scope $AKS_ID/namespaces/$NAMESPACE_NAME
    

Tillåt projektskapare att tilldela åtkomstbehörigheter (valfritt)

Om du vill att projektskapare ska kunna tilldela åtkomstbehörigheter till andra användare kan du ge dem rollen Administratör för användaråtkomst . Med den här behörigheten kan användaren ange behörigheter för alla resurser i infrastrukturresursgruppen.

Tilldela rollen Administratör för användaråtkomst med kommandot az role assignment create . Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID.

az role assignment create \
    --role "User Access Administrator" \
    --assignee <user-id> \
    --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP

Utvecklaransvar

Som utvecklare arbetar du i en befintlig AKS-skrivbordsmiljö för att distribuera program, hantera projekt och övervaka dina arbetsbelastningar. Klusteroperatorn ger dig de behörigheter som krävs för att utföra dessa uppgifter. Dina ansvarsområden omfattar:

  • Distribuera applikationer i projekt.
  • Visa och hantera distribuerade program.
  • Övervaka programmått och loggar.
  • Ändra projektåtkomst (om det behövs).

Nödvändiga användarroller för utvecklare

Om du vill arbeta med AKS Desktop som utvecklare måste klusteroperatorn tilldela dig tre viktiga roller:

  • Användarroll för Azure Kubernetes-tjänstkluster: Gör att du kan ladda ned klusterautentiseringsuppgifter med hjälp av az aks get-credentials kommandot, vilket är ett krav för att ansluta till klustret från den lokala datorn eller via AKS Desktop.

  • Azure Kubernetes Service Namespace-användare: Ger åtkomst till ditt tilldelade hanterade namnområde/projekt.

  • En av Kubernetes RBAC-rollerna (läsare, skrivare eller administratör): Styr vilka åtgärder du kan utföra i namnområdet.

    • Azure Kubernetes Service RBAC Reader för skrivskyddad åtkomst.
    • Azure Kubernetes Service RBAC Writer för distribution av program.
    • Azure Kubernetes Service RBAC Admin för fullständig administrativ kontroll.

Så här tilldelas behörigheter

Behörigheter tilldelas baserat på hur projekt skapas i AKS Desktop:

  • Projektskapare: Får automatiskt rollen Ägare i det hanterade namnområdet och alla nödvändiga behörigheter för att distribuera program.

  • Andra användare: Måste beviljas åtkomst av klusteroperatorn eller projektskaparen. De får:

    • Användarroll för Azure Kubernetes Service-kluster i klustret.
    • Azure Kubernetes-tjänstens namnområde Användarroll i namnområdet.
    • En av Kubernetes RBAC-rollerna (läsare, skrivare eller administratör).

För att distribuera program behöver du rollen Författare eller Administratör . Mer information finns i Inbyggda roller för hanterade namnområden.

Visa programmått

Anmärkning

Det kan ta upp till 10 minuter innan måtten fylls i när ett program har distribuerats.

På startskärmen i Project kan du visa mått för ditt program, till exempel CPU, minne och nätverksanvändning. Dessa mått hämtas från den hanterade Prometheus-slutpunkten som backas upp av en Azure Monitor-arbetsyta.

Om du vill visa mått behöver du rollen Övervakningsdataläsare på Azure Monitor-arbetsytan. Den här rollen ger åtkomst till alla mått för klustret, inte bara dina specifika projekt.

Klusteroperatorn kan tilldela den här behörigheten med hjälp av följande steg:

  1. Identifiera den Azure Monitor-arbetsyta som används av klustret med hjälp av az alerts-management prometheus-rule-group list kommandot .

    export WORKSPACE_ACC_FOR_PROM_RULES=$(az alerts-management prometheus-rule-group list \
        --resource-group "$RESOURCE_GROUP" \
        --query "[?clusterName=='$CLUSTER_NAME'] | [0].scopes[0]" \
        --output tsv)
    
  2. Tilldela rollen Övervakningsdataläsare med hjälp av az role assignment create kommandot . Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID.

    az role assignment create \
        --role "Monitoring Data Reader" \
        --assignee <user-id> \
        --scope $WORKSPACE_ACC_FOR_PROM_RULES
    

Ändra behörigheter för projektåtkomst

För närvarande tillhandahåller AKS Desktop inte något användargränssnittsalternativ för att ändra projektbehörigheter när de har skapats. Om du behöver uppdatera dina behörigheter eller bevilja åtkomst till andra kan du samarbeta med klusteroperatorn för att uppdatera behörigheter med hjälp av Azure-portalen eller Azure CLI. Följande steg beskriver hur du tilldelar nödvändiga roller med hjälp av Azure CLI:

Tilldela klusteråtkomst

Tilldela Användarrollen för Azure Kubernetes-tjänstkluster för att aktivera kubeconfig-nedladdning med kommandot az role assignment create . Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID.

az role assignment create \
    --role "Azure Kubernetes Service Cluster User Role" \
    --assignee <developer-user-id> \
    --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME

Tilldela namnområdesåtkomst

Tilldela Azure Kubernetes-tjänstens namnområde användarroll för ett specifikt projekt-/namnområde med hjälp av az role assignment create kommandot. Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID.

export NAMESPACE_NAME=<namespace-or-project-name>

az role assignment create \
    --role "Azure Kubernetes Service Namespace User" \
    --assignee <developer-user-id> \
    --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME/namespaces/$NAMESPACE_NAME

Tilldela Kubernetes RBAC-roll

Tilldela lämplig Kubernetes RBAC-roll baserat på vad utvecklaren behöver göra:

  • Azure Kubernetes Service RBAC Reader för skrivskyddad åtkomst.
  • Azure Kubernetes Service RBAC Writer för distribution av program.
  • Azure Kubernetes Service RBAC Admin för fullständig administrativ kontroll.
  1. Hämta AKS-kluster-ID:t med kommandot az aks show .

    AKS_ID=$(az aks show \
        --resource-group $RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --query id \
        --output tsv)
    
  2. Tilldela lämplig Kubernetes RBAC-roll med kommandot az role assignment create . Se till att ersätta platshållaren med det lämpliga användar-ID eller tjänsthuvud-ID. I följande exempel tilldelas rollen Azure Kubernetes Service RBAC Writer :

    az role assignment create \
        --role "Azure Kubernetes Service RBAC Writer" \
        --assignee <developer-user-id> \
        --scope $AKS_ID/namespaces/$NAMESPACE_NAME
    

Bevilja behörigheter för att visa mått (valfritt)

Om du vill bevilja behörigheter för att visa mått följer du stegen i avsnittet Visa programmått .