Szolgáltatási megbízó használata Azure Kubernetes Service (AKS) szolgáltatással
Az AKS-fürtökhöz microsoft Entra szolgáltatásnévre vagy felügyelt identitásra van szükség más Azure-erőforrások, például az Azure Load Balancer vagy az Azure Container Registry (ACR) dinamikus létrehozásához és kezeléséhez.
Az optimális biztonság és a könnyű használat érdekében a Microsoft azt javasolja, hogy a szolgáltatásnevek helyett felügyelt identitásokat használjon az AKS-fürtökről más Azure-erőforrásokhoz való hozzáférés engedélyezéséhez. A felügyelt identitás egy speciális szolgáltatásnévtípus, amely a Microsoft Entra hitelesítő adatainak beszerzésére használható anélkül, hogy a hitelesítő adatokat kezelnie és biztonságossá kellene tenni. A felügyelt identitás fürttel való használatáról további információt a Felügyelt identitás használata az AKS-ben című témakörben talál.
Ez a cikk bemutatja, hogyan hozhat létre és használhat egyszerű szolgáltatást az AKS-fürtökkel.
Mielőtt elkezdené
Microsoft Entra-szolgáltatásnév létrehozásához rendelkeznie kell engedéllyel ahhoz, hogy regisztráljon egy alkalmazást a Microsoft Entra-bérlőjénél, és hozzárendelje az alkalmazást egy szerepkörhöz az előfizetésében. Ha nem rendelkezik a szükséges engedélyekkel, meg kell kérnie a Microsoft Entra-azonosítót vagy az előfizetés rendszergazdáját, hogy rendelje hozzá a szükséges engedélyeket, vagy hozzon létre előre egy szolgáltatásnevet az AKS-fürthöz való használatra.
Ha egy másik Microsoft Entra-bérlőtől származó szolgáltatásnevet használ, a fürt üzembe helyezésekor elérhető engedélyeket más szempontok is figyelembe veszik. Előfordulhat, hogy nem rendelkezik a címtáradatok olvasására és írására vonatkozó megfelelő engedélyekkel. További információ: Mik az alapértelmezett felhasználói engedélyek a Microsoft Entra-azonosítóban?
Előfeltételek
- Az Azure CLI használata esetén az Azure CLI 2.0.59-es vagy újabb verziójára lesz szüksége. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. - Az Azure PowerShell használata esetén az Azure PowerShell 5.0.0-s vagy újabb verziójára lesz szüksége. A verzió azonosításához futtassa a következőt:
Get-InstalledModule -Name Az
. Ha telepítenie vagy frissítenie kell, olvassa el az Azure Az PowerShell-modul telepítését ismertető témakört.
Egyszerű szolgáltatás létrehozása
Hozzon létre egy egyszerű szolgáltatást a fürt létrehozása előtt.
Hozzon létre egy egyszerű szolgáltatást a
az ad sp create-for-rbac
paranccsal.az ad sp create-for-rbac --name myAKSClusterServicePrincipal
A kimenetnek hasonlónak kell lennie a következő példakimenethez:
{ "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "displayName": "myAKSClusterServicePrincipal", "name": "http://myAKSClusterServicePrincipal", "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
Másolja ki a kimenet értékeit
appId
.password
Ezeket akkor használja, ha AKS-fürtöt hoz létre a következő szakaszban.
Szolgáltatásnév megadása AKS-fürthöz
Használjon meglévő szolgáltatásnevet egy új AKS-fürthöz a
az aks create
paranccsal, és--client-secret
a--service-principal
paraméterekkel adja meg azappId
előző szakaszhoz kapott kimenetet éspassword
kimenetet.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --service-principal <appId> \ --client-secret <password> \ --generate-ssh-keys
Feljegyzés
Ha egy meglévő szolgáltatásnevet használ testre szabott titkos kóddal, győződjön meg arról, hogy a titkos kód nem hosszabb 190 bájtnál.
Hozzáférés delegálása más Azure-erőforrásokhoz
Az AKS-fürt szolgáltatásnevével más erőforrásokhoz is hozzáférhet. Ha például egy meglévő Azure-beli virtuális hálózati alhálózaton szeretné üzembe helyezni az AKS-fürtöt, csatlakozzon az Azure Container Registryhez (ACR), vagy a fürtből származó kulcstartó kulcsait vagy titkos kulcsait, akkor az erőforrásokhoz való hozzáférést delegálnia kell a szolgáltatásnévnek. A hozzáférés delegálásához rendeljen hozzá egy Azure szerepköralapú hozzáférés-vezérlési (Azure RBAC) szerepkört a szolgáltatásnévhez.
Fontos
A fürthöz társított szolgáltatásnévnek adott engedélyek propagálása akár 60 percet is igénybe vehet.
Szerepkör-hozzárendelés létrehozása a
az role assignment create
paranccsal. Adja meg a szolgáltatásnév appID azonosítójának értékét aappId
paraméterhez. Adja meg a szerepkör-hozzárendelés hatókörét, például egy erőforráscsoportot vagy egy virtuális hálózati erőforrást. A szerepkör-hozzárendelés határozza meg, hogy a szolgáltatásnév milyen engedélyekkel rendelkezik az erőforráson és milyen hatókörben.Ha például a kulcstartó titkos kulcsainak eléréséhez rendeli hozzá a szolgáltatásnév engedélyeit, a következő parancsot használhatja:
az role assignment create \ --assignee <appId> \ --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name>" \ --role "Key Vault Secrets User"
Feljegyzés
Egy
--scope
erőforráshoz teljes erőforrás-azonosítónak kell lennie, például /subscriptions/<guid>/resourceGroups/myResourceGroup vagy /subscriptions/<guid>/resourceGroups/myResourceGroupVnet/providers/Microsoft.Network/virtualNetworks/myVnet.
Az alábbi szakaszok részletesen ismertetik azokat a gyakori delegálásokat, amelyeket esetleg egy szolgáltatásnévhez kell hozzárendelnie.
Azure Container Registry
Ha az Azure Container Registryt (ACR) használja tárolórendszerkép-tárolóként, engedélyeket kell adnia az AKS-fürt szolgáltatásnevének a rendszerképek olvasásához és lekéréséhez. Javasoljuk, hogy használja a vagy az aks update
a az aks create
parancsot egy beállításjegyzékbe való integráláshoz, és rendelje hozzá a szolgáltatásnévnek megfelelő szerepkört. Részletes lépésekért lásd : Hitelesítés az Azure Container Registryvel az Azure Kubernetes Service-ből.
Hálózat
Használhat speciális hálózatkezelést, ha a virtuális hálózat és az alhálózat vagy a nyilvános IP-címek egy másik erőforráscsoportban találhatók. Rendelje hozzá a hálózati közreműködő beépített szerepkörét a virtuális hálózaton belüli alhálózathoz. Másik lehetőségként létrehozhat egy egyéni szerepkört, amely engedélyekkel rendelkezik az adott erőforráscsoportban lévő hálózati erőforrások eléréséhez. További információ: AKS szolgáltatásengedélyek.
Tárolás
Ha egy másik erőforráscsoport meglévő lemezerőforrásait kell elérnie, rendelje hozzá a következő szerepkör-engedélyek egyikét:
- Hozzon létre egy egyéni szerepkört, és határozza meg a Microsoft.Compute/disks/read és a Microsoft.Compute/disks/write szerepkör engedélyeit, vagy
- Rendelje hozzá a virtuálisgép-közreműködő beépített szerepkörét az erőforráscsoporthoz.
Azure Container Instances
Ha a Virtual Kubelet használatával integrálható az AKS-sel, és úgy dönt, hogy az Azure Container Instances (ACI) szolgáltatást az AKS-fürttől eltérő erőforráscsoportban futtatja, az AKS-fürt szolgáltatásnévnek közreműködői engedélyeket kell adnia az ACI-erőforráscsoporton.
Egyéb szempontok
Az AKS és a Microsoft Entra szolgáltatásnév használatakor vegye figyelembe a következőket:
- A Kubernetes szolgáltatásnév része a fürtkonfigurációnak, de ne használja ezt az identitást a fürt üzembe helyezéséhez.
- Alapértelmezés szerint a szolgáltatásnév hitelesítő adatai egy évig érvényesek. A szolgáltatásnév hitelesítő adatait bármikor frissítheti vagy elforgathatja.
- Minden szolgáltatásnév egy Microsoft Entra-alkalmazáshoz van társítva. Egy Kubernetes-fürt szolgáltatásnevét bármely érvényes Microsoft Entra-alkalmazásnévvel társíthatja (például: https://www.contoso.org/example). Az alkalmazás URL-címének nem szükséges valódi végpontnak lennie.
- Amikor megadja a szolgáltatásnév Client ID-ját (Ügyfél-azonosítóját), használja az
appId
értékét. - A Kubernetes-fürt ügynökcsomópont virtuális gépeinél a szolgáltatásnév hitelesítő adatai a
/etc/kubernetes/azure.json
fájlban vannak tárolva. - A parancs használatával
az aks create
létrehozott AKS-fürt törlésekor a létrehozott szolgáltatásnév nem törlődik automatikusan.A szolgáltatásnév törléséhez kérdezze le a fürt servicePrincipalProfile.clientId azonosítóját, és törölje a
az ad sp delete
parancs használatával. Cserélje le az-g
erőforráscsoport nevének és-n
a fürtnév paraméterének értékeit:az ad sp delete --id $(az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query servicePrincipalProfile.clientId \ --output tsv)
Hibaelhárítás
Az Azure CLI gyorsítótárazza az AKS-fürtök szolgáltatásnév-hitelesítő adatait. Ha ezek a hitelesítő adatok lejárnak, hibákat tapasztalhat az AKS-fürt üzembe helyezése során. Ha futtatja a az aks create
parancsot, és a következőhöz hasonló hibaüzenetet kap, az a gyorsítótárazott szolgáltatásnév hitelesítő adataival kapcsolatos problémát jelezhet:
Operation failed with status: 'Bad Request'.
Details: The credentials in ServicePrincipalProfile were invalid. Please see https://aka.ms/aks-sp-help for more details.
(Details: adal: Refresh request failed. Status Code = '401'.
A szolgáltatásnév hitelesítő adatainak lejárati dátumát a az ad app credential list
lekérdezést tartalmazó "[].endDateTime"
paranccsal ellenőrizheti.
az ad app credential list \
--id <app-id> \
--query "[].endDateTime" \
--output tsv
A szolgáltatásnév-hitelesítő adatok alapértelmezett lejárati ideje egy év. Ha a hitelesítő adatai egy évnél régebbiek, alaphelyzetbe állíthatja a meglévő hitelesítő adatokat, vagy létrehozhat egy új szolgáltatásnevet.
Az Azure CLI általános hibaelhárítása
Az Azure CLI több rendszerhéj-környezetben is futtatható, de kisebb formátumváltozatokkal. Ha az Azure CLI-parancsokkal nem várt eredményeket kap, olvassa el az Azure CLI sikeres használatát ismertető témakört.
Következő lépések
A Microsoft Entra szolgáltatásnévvel kapcsolatos további információkért tekintse meg az alkalmazás- és szolgáltatásnév-objektumokat.
A hitelesítő adatok frissítéséről további információt az AKS szolgáltatásnév hitelesítő adatainak frissítése vagy elforgatása című témakörben talál.
Azure Kubernetes Service