Biztonságos hozzáférés az API-kiszolgálóhoz hitelesített IP-címtartományok használatával a Azure Kubernetes Service (AKS)

A Kubernetesben az API-kiszolgáló olyan kéréseket kap a fürtön való műveletek végrehajtásához, mint az erőforrások létrehozása vagy a csomópontok számának skálázása. Az API-kiszolgáló a fürtök kezelésének és kezelésének központi módja. A fürt biztonságának növelése és a támadások minimalizálása érdekében az API-kiszolgálónak csak korlátozott SZÁMÚ IP-címtartományból szabad elérhetőnek lennie.

Ez a cikk bemutatja, hogyan használhatja az API-kiszolgáló engedélyezett IP-címtartományait annak korlátozására, hogy mely IP-címek és CIDR-ek férhetnek hozzá a vezérlősíkhoz.

Előkészületek

Ez a cikk bemutatja, hogyan hozhat létre AKS-fürtöt az Azure CLI használatával.

Az Azure CLI 2.0.76-os vagy újabb verzióját kell telepítenie és konfigurálnia. 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.

Korlátozások

Az API-kiszolgáló Engedélyezett IP-címtartományok szolgáltatása a következő korlátozásokkal rendelkezik:

  • Az API-kiszolgáló engedélyezett IP-címtartományai előzetes verzióból 2019 októberében való eltávozása után létrehozott fürtökön az API-kiszolgáló által engedélyezett IP-címtartományok csak a Standard termékváltozat terheléseltöltőn támogatottak. Az alapszintű termékváltozatú terheléselosztással és az API-kiszolgáló engedélyezett IP-címtartományokkal konfigurált meglévő fürtök továbbra is a jelenlegi módon működnek, de nem migrálhatóak standard termékváltozatú terheléselosztásra. Ezek a meglévő fürtök akkor is működni fognak, ha a Kubernetes-verzió vagy a vezérlősík frissítve van. Az API-kiszolgáló engedélyezett IP-címtartományai privát fürtök esetén nem támogatottak.
  • Ha ezt a szolgáltatást olyan fürtökön használja, amelyek csomópontonként nyilvános IP-címethasználnak, akkor a csomópontonkénti nyilvános IP-címmel rendelkező csomópontkészletek nyilvános IP-előtagokat kell használniuk, és ezeket az előtagokat engedélyezett tartományokként kell hozzáadni.

Az API-kiszolgáló engedélyezett IP-címtartományának áttekintése

Az alapul szolgáló Kubernetes API-k a Kubernetes API-k elérhetővé tevésének a Kubernetes API-kiszolgálója. Ez az összetevő biztosítja az interakciót a felügyeleti eszközök, például a vagy a kubectl Kubernetes-irányítópult számára. Az AKS egybérlős fürtvezérlő síkot biztosít dedikált API-kiszolgálóval. Alapértelmezés szerint az API-kiszolgálóhoz nyilvános IP-cím van hozzárendelve, és a hozzáférést a Kubernetes szerepköralapú hozzáférés-vezérlésével (Kubernetes RBAC) vagy az Azure RBAC-val kell szabályozni.

A egyébként nyilvánosan elérhető AKS-vezérlősíkhoz/API-kiszolgálóhoz való hozzáférés biztonságossá tétele érdekében engedélyezheti és használhatja az engedélyezett IP-címtartományokat. Ezek az engedélyezett IP-tartományok csak meghatározott IP-címtartományok számára teszik lehetővé az API-kiszolgálóval való kommunikációt. A rendszer blokkolja az API-kiszolgálónak az engedélyezett IP-címtartományok részét nem nyújtó IP-címről az API-kiszolgálóra vonatkozó kérést. Használja továbbra is a Kubernetes RBAC-t vagy az Azure RBAC-t a felhasználók és a kért műveletek jogosultságának igénylésére.

További információ az API-kiszolgálóról és más fürtösszetevőkről: Kubernetes alapfogalmak az AKS-hez.

AKS-fürt létrehozása engedélyezett API-kiszolgálói IP-címtartományokkal

Hozzon létre egy fürtöt az az aks create használatával, és adja meg a paramétert az engedélyezett IP-címtartományok listájának megadásához. Ezek az IP-címtartományok általában a helyszíni hálózatok vagy a nyilvános IP-címek által használt címtartományok. CIDR-tartomány megadásakor kezdje a tartomány első IP-címével. Például a 137.117.106.90/29 érvényes tartomány, de ügyeljen arra, hogy a tartomány első IP-címét adja meg, például: 137.117.106.88/29.

Fontos

Alapértelmezés szerint a fürt a Standard termékváltozatú terheléselosztást használja, amellyel konfigurálhatja a kimenő átjárót. Ha engedélyezi az API-kiszolgáló engedélyezett IP-címtartományait a fürt létrehozása során, a fürt nyilvános IP-címe alapértelmezés szerint a megadott tartományokon kívül is engedélyezve lesz. Ha a "" értéket adja meg, vagy nincs értéke, az API-kiszolgáló engedélyezett IP-címtartományai le lesznek tiltva. Vegye figyelembe, hogy ha a PowerShellt használja, az (egyenlőségjelet használó) használatával elkerülheti az elemzési --api-server-authorized-ip-ranges="" problémákat.

A következő példában létrehozunk egy myAKSCluster nevű egycsomópontos fürtöt a myResourceGroup nevű erőforráscsoportban, engedélyezett API-kiszolgálói engedélyezett IP-címtartományokkal. Az engedélyezett IP-címtartományok a következőek: 73.140.245.0/24:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --vm-set-type VirtualMachineScaleSets \
    --load-balancer-sku standard \
    --api-server-authorized-ip-ranges 73.140.245.0/24 \
    --generate-ssh-keys

Megjegyzés

Ezeket a tartományokat hozzá kell adni egy engedélyező listához:

  • A tűzfal nyilvános IP-címe
  • Bármely tartomány, amely azokat a hálózatokat jelöli, amelyekről a fürtöt felügyelni fogja

A megadható IP-tartományok felső korlátja 200.

A szabályok propagálása akár 2 perc is lehet. A kapcsolat tesztelésekor adjon meg legfeljebb ennyi időt.

Adja meg a standard termékváltozatú terheléselosztás kimenő IP-eit

AKS-fürt létrehozásakor, ha megadja a fürt kimenő IP-címeit vagy előtagját, ezek a címek vagy előtagok is engedélyezettek. Például:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --vm-set-type VirtualMachineScaleSets \
    --load-balancer-sku standard \
    --api-server-authorized-ip-ranges 73.140.245.0/24 \
    --load-balancer-outbound-ips <publicIpId1>,<publicIpId2> \
    --generate-ssh-keys

A fenti példában a paraméterben megadott összes IP-t a paraméterBEN megadott IP-ekkel --load-balancer-outbound-ip-prefixes együtt lehet majd --api-server-authorized-ip-ranges biztosítani.

Ehelyett megadhatja a paramétert a kimenő --load-balancer-outbound-ip-prefixes terheléselosztási IP-előtagok engedélyezése érdekében.

Csak a Standard termékváltozat terheléselosztásának kimenő nyilvános IP-címének engedélyezése

Ha engedélyezi az API-kiszolgáló engedélyezett IP-címtartományait a fürt létrehozása során, a fürt standard termékváltozatú terheléselosztásának kimenő nyilvános IP-címe alapértelmezés szerint a megadott tartományokon kívül is engedélyezve lesz. Ha csak a Standard termékváltozat terheléselosztásának kimenő nyilvános IP-címét engedélyezi, használja a 0.0.0.0/32 értéket a paraméter megadásakor.

A következő példában csak a Standard termékváltozat terheléselosztásának kimenő nyilvános IP-címe engedélyezett, és az API-kiszolgáló csak a fürt csomópontjairól érhető el.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --vm-set-type VirtualMachineScaleSets \
    --load-balancer-sku standard \
    --api-server-authorized-ip-ranges 0.0.0.0/32 \
    --generate-ssh-keys

Fürt API-kiszolgálójának engedélyezett IP-címtartományai frissítése

Az API-kiszolgáló engedélyezett IP-címtartományának meglévő fürtön való frissítéséhez használja az az aks update parancsot, és használja a ,--load-balancer-outbound-ip-prefixes*, --load-balancer-outbound-ips vagy --load-balancer-outbound-ip-prefixes* paramétereket.

A következő példa frissíti az API-kiszolgáló engedélyezett IP-címtartományát a myAKSCluster nevű fürtön a myResourceGroup nevű erőforráscsoportban. Az engedélyeznie kell az IP-címtartományt: 73.140.245.0/24:

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --api-server-authorized-ip-ranges  73.140.245.0/24

A 0.0.0.0/32 paramétert is használhatja, ha a paramétert úgy adja meg, hogy csak a Standard termékváltozatú terheléselosztás nyilvános IP-címét engedélyezze.

Engedélyezett IP-tartományok letiltása

Az engedélyezett IP-tartományok letiltásához használja az az aks update et, és adjon meg egy üres tartományt az API-kiszolgáló által engedélyezett IP-tartományok letiltásához. Például:

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --api-server-authorized-ip-ranges ""

Meglévő engedélyezett IP-címtartományok megkeresve

Az engedélyezett IP-tartományok kereséséhez használja az az aks show használhatja, és adja meg a fürt nevét és erőforráscsoportját. Például:

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --query apiServerAccessProfile.authorizedIpRanges

Hitelesített IP-címtartományok frissítése, letiltása és megkeres Azure Portal

Az engedélyezett IP-címtartományok hozzáadásának, frissítésének, keresésének és letiltásának fenti műveletei a következő Azure Portal. A hozzáféréshez lépjen a Hálózat Gépház a fürterőforrás menü paneljéhez.

In a browser, shows the cluster resource's networking settings Azure portal page. The options 'set specified IP range' and 'Specified IP ranges' are highlighted.

Hogyan találhatom meg az IP-címemet, hogy szerepeljen --api-server-authorized-ip-ranges a??

Az API-kiszolgáló innen való eléréséhez hozzá kell adni a fejlesztési gépeket, az eszközkészleteket vagy az automatizálási IP-címeket a jóváhagyott IP-tartományok AKS-fürtlistához.

Egy másik lehetőség egy jumpbox konfigurálása a szükséges eszközkészlettel a tűzfal virtuális hálózatának egy külön alhálózatán. Ez azt feltételezi, hogy a környezete rendelkezik tűzfallal a megfelelő hálózattal, és ön hozzáadta a tűzfal IP-eket az engedélyezett tartományokhoz. Hasonlóképpen, ha kényszerített bújtatást kényszerített az AKS-alhálózatról a tűzfal alhálózata felé, akkor a fürt alhálózatában található jumpbox is megfelelő.

Adjon hozzá egy másik IP-címet a jóváhagyott tartományokhoz az alábbi paranccsal.

# Retrieve your IP address
CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
# Add to AKS approved list
az aks update -g $RG -n $AKSNAME --api-server-authorized-ip-ranges $CURRENT_IP/32

Megjegyzés

A fenti példa hozzáfűzi az API-kiszolgáló engedélyezett IP-címtartományokat a fürthöz. Az engedélyezett IP-tartományok letiltásához használja az az aks update et, és adjon meg egy üres tartományt "".

Másik lehetőségként használhatja az alábbi parancsot a Windows rendszereken a nyilvános IPv4-cím lekértéhez, vagy használhatja az IP-cím megkeresése lépéseit.

Invoke-RestMethod http://ipinfo.io/json | Select -exp ip

Ezt a címet úgy is megkeresheti, ha egy webböngészőben rákeres a "mi az IP-címem" szóra.

Következő lépések

Ebben a cikkben engedélyezte az API-kiszolgáló által engedélyezett IP-címtartományokat. Ez a megközelítés a biztonságos AKS-fürtök futtatásának egyik része.

További információkért lásd az AKS-alkalmazások és fürtök biztonsági fogalmait és az AKS-sel kapcsolatos fürtbiztonsági és frissítési ajánlott eljárásokat.