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

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

A Kubernetes API-kiszolgáló a Kubernetes vezérlősíkjának magja, és a fürtök kezelésének és kezelésének központi módja. A fürtök biztonságának javítása és a támadások kockázatának minimalizálása érdekében javasoljuk, hogy korlátozza az API-kiszolgálóhoz hozzáférő IP-címtartományokat. Ehhez használhatja az API-kiszolgáló által engedélyezett IP-tartományok funkciót.

Mielőtt elkezdené

Korlátozások

Az API-kiszolgáló által engedélyezett IP-tartományok szolgáltatása a következő korlátozásokkal rendelkezik:

  • Az API-kiszolgáló által engedélyezett IP-tartományok funkció 2019 októberében ki lett helyezve az előzetes verzióból. Az előzetes verzióból való áthelyezés után létrehozott fürtök esetében ez a funkció csak a standard termékváltozat terheléselosztóján támogatott. Az alapszintű termékváltozat terheléselosztóján az API-kiszolgáló által engedélyezett IP-tartományok funkcióval rendelkező meglévő fürtök továbbra is a jelenlegi módon működnek. Ezek a fürtök azonban nem migrálhatók standard termékváltozatú terheléselosztóba. A meglévő fürtök továbbra is működni fognak, ha a Kubernetes verzió- és vezérlősíkja frissül.
  • Az API-kiszolgáló által engedélyezett IP-tartományok funkció magánfürtökön nem támogatott.
  • Ha ezt a funkciót csomópont nyilvános IP-címet használó fürtökkel használja, a Csomópont nyilvános IP-címét használó csomópontkészleteknek nyilvános IP-előtagokat kell használniuk. A nyilvános IP-előtagokat engedélyezett tartományként kell hozzáadni.

Az API-kiszolgáló által engedélyezett IP-tartományok áttekintése

A Kubernetes API-kiszolgáló elérhetővé teszi a mögöttes Kubernetes API-kat, és biztosítja az interakciót az olyan felügyeleti eszközökhöz, mint például kubectl a Kubernetes-irányítópult. Az AKS egy egybérlős fürtvezérlő síkot biztosít dedikált API-kiszolgálóval. Az API-kiszolgáló alapértelmezés szerint nyilvános IP-címet kap. A hozzáférést a Kubernetes szerepköralapú hozzáférés-vezérléssel (Kubernetes RBAC) vagy az Azure RBAC-vel szabályozhatja.

Az egyébként nyilvánosan elérhető AKS vezérlősíkhoz/API-kiszolgálóhoz való hozzáférés biztosításához engedélyezheti és használhat engedélyezett IP-tartomá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. Az API-kiszolgálóhoz olyan IP-címről érkező kérések, amelyek nem részei ezeknek az engedélyezett IP-tartományoknak, le lesz tiltva.

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

Fontos

A fürt alapértelmezés szerint a standard termékváltozatú terheléselosztót használja, amellyel konfigurálhatja a kimenő átjárót. Ha engedélyezi az API-kiszolgáló által engedélyezett IP-tartományokat a fürt létrehozása során, a fürt nyilvános IP-címe alapértelmezés szerint engedélyezve lesz a megadott tartományok mellett. Ha "" értéket ad meg, vagy nincs érték, --api-server-authorized-ip-rangesaz API-kiszolgáló által engedélyezett IP-tartományok le vannak tiltva. Vegye figyelembe, hogy a PowerShell --api-server-authorized-ip-ranges="" használata esetén (egyenlő jelekkel) elkerülheti az elemzési problémákat.

Feljegyzés

Ezeket a tartományokat egy engedélyezési listához kell hozzáadnia:

  • A fürt kimenő IP-címe (tűzfal, NAT-átjáró vagy más cím a kimenő típustól függően).
  • Bármely tartomány, amely olyan hálózatokat jelöl, amelyekről a fürtöt felügyelni fogja.

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

A szabályok propagálása akár két percet is igénybe vehet. A kapcsolat tesztelése során legfeljebb ennyi időt hagyjon.

Ha olyan fürtöt hoz létre, amelyen engedélyezve van az API-kiszolgáló engedélyezett IP-címtartománya, a --api-server-authorized-ip-ranges paraméterrel megadhatja az engedélyezett nyilvános IP-címtartományok listáját. CIDR-tartomány megadásakor kezdje a tartomány első IP-címével. A 137.117.106.90/29 például érvényes tartomány, de ügyeljen arra, hogy a tartomány első IP-címét adja meg, például a 137.117.106.88/29-et.

  • Hozzon létre egy AKS-fürtöt az API-kiszolgáló által engedélyezett IP-címtartományokkal a az aks create paraméterrel rendelkező --api-server-authorized-ip-ranges paranccsal. Az alábbi példa létrehoz egy myAKSCluster nevű fürtöt a myResourceGroup nevű erőforráscsoportban, engedélyezve az API-kiszolgáló által engedélyezett IP-tartományokat. Az ENGEDÉLYEZETT IP-címtartományok: 73.140.245.0/24:

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

Kimenő IP-címek megadása standard termékváltozatú terheléselosztóhoz

Ha api-kiszolgáló által engedélyezett IP-tartományokkal rendelkező fürtöt hoz létre, a fürt kimenő IP-címét vagy előtagjait is megadhatja a paraméterek vagy --load-balancer-outbound-ip-prefixes paraméterek --load-balancer-outbound-ips használatával. A paraméterekben megadott IP-címek és a paraméterben szereplő --api-server-authorized-ip-ranges IP-címek engedélyezettek.

  • Hozzon létre egy AKS-fürtöt, amelyen engedélyezve vannak az API-kiszolgáló által engedélyezett IP-tartományok, és adja meg a standard termékváltozat terheléselosztójának kimenő IP-címét a --load-balancer-outbound-ips paraméterrel. Az alábbi példa létrehoz egy myAKSCluster nevű fürtöt a myResourceGroup nevű erőforráscsoportban az API-kiszolgáló által engedélyezett IP-címtartományokkal és a kimenő IP-címekkel <public-ip-id-1> és <public-ip-id-2>a következőkkel:

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

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

Ha engedélyezi az API-kiszolgáló által engedélyezett IP-tartományokat a fürt létrehozása során, a fürt standard termékváltozatú terheléselosztójának kimenő nyilvános IP-címe alapértelmezés szerint a megadott tartományokon kívül is engedélyezett. Ha csak a standard termékváltozat terheléselosztó kimenő nyilvános IP-címét szeretné engedélyezni, a paraméter megadásakor a 0.0.0.0/32 értéket kell használnia.--api-server-authorized-ip-ranges

  • Hozzon létre egy AKS-fürtöt, amelyen engedélyezve vannak az API-kiszolgáló által engedélyezett IP-tartományok, és csak a standard termékváltozatú terheléselosztó kimenő nyilvános IP-címét engedélyezze a --api-server-authorized-ip-ranges paraméterrel. Az alábbi példa létrehoz egy myAKSCluster nevű fürtöt a myResourceGroup nevű erőforráscsoportban az API-kiszolgáló által engedélyezett IP-tartományok engedélyezésével, és csak a standard termékváltozat terheléselosztó kimenő nyilvános IP-címét engedélyezi:

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

Meglévő fürt API-kiszolgálójának engedélyezett IP-tartományainak frissítése

  • Frissítse egy meglévő fürt API-kiszolgálójának engedélyezett IP-tartományait a az aks update paraméterrel rendelkező --api-server-authorized-ip-ranges paranccsal. Az alábbi példa frissíti az API-kiszolgáló által engedélyezett IP-tartományokat a myAKSCluster nevű fürtben a myResourceGroup nevű erőforráscsoportban. Az engedélyezni kívánt IP-címtartomány: 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 akkor is használhatja, ha megadja a --api-server-authorized-ip-ranges paramétert, hogy csak a standard termékváltozat terheléselosztójának nyilvános IP-címét engedélyezze.

Engedélyezett IP-tartományok letiltása

  • Tiltsa le az engedélyezett IP-címtartományokat a az aks update parancs használatával, és adjon meg egy üres tartományt "" a --api-server-authorized-ip-ranges paraméterhez.

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

Meglévő engedélyezett IP-tartományok keresése

  • Keresse meg a meglévő engedélyezett IP-címtartományokat a az aks show parancs használatával, amelynek paramétere a --query következő.apiServerAccessProfile.authorizedIpRanges

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

Hogyan kereshetem meg a belefoglalandó --api-server-authorized-ip-rangesIP-címemet?

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

Egy másik lehetőség a jumpbox konfigurálása a szükséges eszközökkel a tűzfal virtuális hálózatának egy külön alhálózatán belül. Ez feltételezi, hogy a környezet tűzfallal rendelkezik a megfelelő hálózattal, és hozzáadta a tűzfal IP-címeit az engedélyezett tartományokhoz. Hasonlóképpen, ha az AKS-alhálózatról a tűzfal alhálózatára kényszerített bújtatást, akkor a jumpbox a fürt alhálózatában is rendben van.

  1. Az IP-cím lekérése a következő paranccsal:

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. Adja hozzá IP-címét a jóváhagyott listához az Azure CLI vagy az Azure PowerShell használatával:

    # Add to AKS approved list using Azure CLI
    az aks update --resource-group $RG --name $AKSNAME --api-server-authorized-ip-ranges $CURRENT_IP/24,73.140.245.0/24
    
    # Add to AKS approved list using Azure PowerShell
    Set-AzAksCluster -ResourceGroupName $RG -Name $AKSNAME -ApiServerAccessAuthorizedIpRange '$CURRENT_IP/24,73.140.245.0/24'
    

Feljegyzés

A fenti példa egy másik IP-címet ad hozzá a jóváhagyott tartományokhoz. Vegye figyelembe, hogy továbbra is tartalmazza a fürt API-kiszolgálójának engedélyezett IP-tartományainak frissítéséből származó IP-címet. Ha nem adja meg a meglévő IP-címét, ez a parancs lecseréli az újra ahelyett, hogy hozzáadja az engedélyezett tartományokhoz. Az engedélyezett IP-tartományok letiltásához használjon az aks update és adjon meg egy üres "" tartományt.

Egy másik lehetőség az, hogy a windowsos rendszereken a következő paranccsal szerezze be a nyilvános IPv4-címet, vagy kövesse az IP-cím megkeresése című témakörben leírt lépéseket.

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

Ezt a címet úgy is megtalálhatja, hogy egy internetböngészőben megkeresi , hogy mi az IP-címem .

Következő lépések

Ebben a cikkben engedélyezte az API-kiszolgáló által engedélyezett IP-tartományokat. Ez a megközelítés az AKS-fürtök biztonságos futtatásának egyik része. További információkért tekintse meg az AKS-ben található alkalmazások és fürtök biztonsági alapelveit, valamint az AKS-ben a fürtbiztonságra és -frissítésre vonatkozó ajánlott eljárásokat.