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é
- Telepítenie és konfigurálnia kell az Azure CLI 2.0.76-os vagy újabb verzióját. 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 AKS-fürt és az Azure DevOps integrálása során az Azure DevOps által engedélyezett IP-címekről és tartomány URL-címekről szóló cikkből megtudhatja, hogy milyen IP-címeket kell tartalmaznia.
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-ranges
az 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
Több IP-címtartomány engedélyezéséhez több IP-címet is listázhat vesszővel elválasztva.
az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24,193.168.1.0/24,194.168.1.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-ranges
IP-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.
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")
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 .
Szolgáltatáscímkék használata az API Server által engedélyezett IP-tartományokhoz – (előzetes verzió)
A szolgáltatáscímkék kényelmesen megadhatnak egy Kubernetes-szolgáltatásnak megfelelő IP-címcsoportot. Szolgáltatáscímkék használatával vesszővel elválaszthatja a Kubernetes-szolgáltatások IP-címeit és adott IP-címeit az API-kiszolgáló engedélyezett IP-tartományaiban.
Korlátozások
Fontos
Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióit részben az ügyfélszolgálat fedezi a legjobb munkamennyiség alapján. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:
Az Azure CLI előzetes verziós bővítményének telepítése
Telepítse az Azure CLI előzetes verziójú bővítményét az [az extension add][az-extension-add] paranccsal.
az extension add --name aks-preview
Frissítse a bővítményt, hogy biztosan a legújabb verzióval rendelkezzen az [az extension update][az-extension-update] paranccsal.
az extension update --name aks-preview
A szolgáltatáscímke engedélyezett IP-szolgáltatásjelzőjének regisztrálása
Regisztrálja az EnableServiceTagAuthorizedIPPreview funkciójelzőt az az feature register paranccsal.
az feature register --namespace "Microsoft.ContainerService" --name "EnableServiceTagAuthorizedIPPreview"
A regisztráció végrehajtása néhány percet vesz igénybe.
Ellenőrizze a regisztrációt az az feature show paranccsal.
az feature show --namespace "Microsoft.ContainerService" --name "EnableServiceTagAuthorizedIPPreview"
AKS-fürt létrehozása engedélyezett Szolgáltatáscímkék IP-címtartományokkal
Hozzon létre egy fürtöt a szolgáltatáscímkével hitelesített IP-tartományokkal a --api-server-authorized-ip-ranges
szolgáltatáscímkével AzureCloud
ellátott paraméterrel, hogy az összes Azure-szolgáltatás hozzáférhessen az API-kiszolgálóhoz, és adjon meg egy további IP-címet.
Feljegyzés
A paraméterben --api-server-authorized-ip-ranges
csak egy szolgáltatáscímke engedélyezett. Nem adhat meg több szolgáltatáscímkét.
az aks create --resource-group myResourceGroup \
--name myAKSCluster \
--api-server-authorized-ip-ranges AzureCloud,20.20.20.20
Az API-kiszolgálót egy Azure-beli virtuális gépről vagy a szolgáltatáscímkéhez AzureCloud
tartozó Azure-szolgáltatásból is ki kell tudnia gördíteni.
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.
Azure Kubernetes Service