Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Amikor alkalmazásokat fejleszt és futtat az Azure Kubernetes Service-ben (AKS), a podok biztonsága kulcsfontosságú szempont. Az alkalmazásokat a minimálisan szükséges jogosultságok elvére kell tervezni. Az ügyfelek számára a személyes adatok biztonságának megőrzése kiemelt fontosságú. Nem szeretne olyan hitelesítő adatokat, mint az adatbázis-kapcsolati sztring, kulcsok vagy titkos kulcsok és tanúsítványok, amelyek a külvilág számára vannak közzétéve, ahol a támadó rosszindulatú célokra kihasználhatná ezeket a titkos kulcsokat. Ne vegye fel őket a kódba, és ne ágyazza be őket a tárolórendszerképekbe. Ez a megközelítés kockázatot jelent az expozíció szempontjából, és korlátozza a hitelesítő adatok elforgatásának lehetőségét, mivel a tárolólemezképeket újra kell létrehozni.
Ez az ajánlott eljárásokat ismertető cikk a podok AKS-ben való védelméről szól. Az alábbiak végrehajtásának módját ismerheti meg:
- A pod biztonsági környezetének használata a folyamatokhoz és szolgáltatásokhoz való hozzáférés korlátozásához vagy a jogosultságok eszkalálásához
- Hitelesítés más Azure-erőforrásokhoz a Microsoft Entra Munkaterhelés-azonosítóval
- Hitelesítő adatok kérése és lekérése egy digitális tárolóból, például az Azure Key Vaultból
A fürtbiztonságra és a tárolólemezkép-kezelésre vonatkozó ajánlott eljárásokat is elolvashatja.
Podok hozzáférésének védelme az erőforrásokhoz
Ajánlott eljárás – Ha más felhasználóként vagy csoportként szeretne futni, és korlátozni szeretné a mögöttes csomópontfolyamatokhoz és szolgáltatásokhoz való hozzáférést, határozza meg a pod biztonsági környezetének beállításait. Adja meg a legkevesebb szükséges jogosultságot.
Ahhoz, hogy az alkalmazások megfelelően fussanak, a podoknak definiált felhasználóként vagy csoportként kell futniuk, nem pedig gyökérként. A securityContext
podok vagy tárolók esetében megadhatja az olyan beállításokat, mint a runAsUser vagy az fsGroup , hogy a megfelelő engedélyeket feltételezze. Csak a szükséges felhasználói vagy csoportengedélyeket rendelje hozzá, és ne használja a biztonsági környezetet további engedélyek feltételezésére. A runAsUser, a jogosultságok eszkalálása és más Linux-képességek beállításai csak Linux-csomópontokon és podokon érhetők el.
Ha nem gyökérfelhasználóként fut, a tárolók nem tudnak csatlakozni az 1024 alatti kiemelt portokhoz. Ebben a forgatókönyvben a Kubernetes Services használatával álcázhatja azt a tényt, hogy egy alkalmazás egy adott porton fut.
A podok biztonsági környezete további képességeket vagy engedélyeket is meghatározhat a folyamatok és szolgáltatások eléréséhez. A következő gyakori biztonsági környezet-definíciók állíthatók be:
- az allowPrivilegeEscalation határozza meg, hogy a pod képes-e gyökérjogjogokat feltételezni. Az alkalmazásokat úgy tervezheti meg, hogy ez a beállítás mindig hamis legyen.
- A Linux-képességek lehetővé teszik a pod számára a mögöttes csomópontfolyamatok elérését. Ügyeljen arra, hogy ezeket a képességeket hozzárendelje. Rendelje hozzá a legkevesebb szükséges jogosultságot. További információ: Linux-képességek.
- A SELinux-címkék egy Linux kerneles biztonsági modul, amellyel hozzáférési szabályzatokat határozhat meg a szolgáltatásokhoz, folyamatokhoz és fájlrendszerekhez való hozzáféréshez. Ismét rendelje hozzá a legkevesebb szükséges jogosultságot. További információ: SELinux-beállítások a Kubernetesben
Az alábbi példa pod YAML-jegyzékfájlja a biztonsági környezet beállításait határozza meg:
- A pod 1000-es felhasználói azonosítóként és a 2000-es csoportazonosító részeként fut
- Nem lehet eszkalálni a használni kívánt jogosultságokat
root
- Lehetővé teszi, hogy a Linux-képességek hozzáférjenek a hálózati adapterekhez és a gazdagép valós idejű (hardveres) órájához
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
fsGroup: 2000
containers:
- name: security-context-demo
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
securityContext:
runAsUser: 1000
allowPrivilegeEscalation: false
capabilities:
add: ["NET_ADMIN", "SYS_TIME"]
A klaszter operátorával együttműködve határozza meg, hogy milyen biztonsági környezetbeállításokra van szüksége. Próbálja meg úgy megtervezni az alkalmazásait, hogy minimalizálja a további engedélyeket és a pod igényelt hozzáféréseket. Vannak további biztonsági funkciók, amelyek az AppArmor és a seccomp (biztonságos számítástechnika) használatával korlátozhatják a hozzáférést, és amelyeket a fürt operátorai implementálhatnak. További információ: Biztonságos tárolóhozzáférés az erőforrásokhoz.
A hitelesítő adatok expozíciójának korlátozása
Ajánlott eljárás – Ne definiáljon hitelesítő adatokat az alkalmazáskódban. Az Azure-erőforrások felügyelt identitásainak használatával a pod engedélyt kérhet más erőforrásokhoz való hozzáféréshez. A digitális kulcsok és hitelesítő adatok tárolására és lekérésére egy digitális tárolót, például az Azure Key Vaultot is használni kell. A pod által felügyelt identitások csak Linux-podokhoz és tárolólemezképekhez használhatók.
A hitelesítő adatok alkalmazáskódban való közzététele kockázatának csökkentése érdekében kerülje a rögzített vagy megosztott hitelesítő adatok használatát. A hitelesítő adatokat vagy kulcsokat nem szabad közvetlenül a kódban szerepeltetni. Ha ezek a hitelesítő adatok elérhetővé válnak, az alkalmazást frissíteni és újra kell üzembe helyezni. Egy jobb megközelítés az, ha a podokat saját identitással és azonosítási lehetőséggel ruházzuk fel, vagy automatikusan lekérésre kerülnek a hitelesítő adatok egy digitális tárolóból.
Microsoft Entra Munkaazonosító használata
A számítási feladatok identitása egy podon futó alkalmazás által használt identitás, amely hitelesítést végezhet más, azt támogató Azure-szolgáltatásokon, például a Storage-on vagy az SQL-en. Integrálható a Kubernetes natív képességeivel a külső identitásszolgáltatókkal való összevonás érdekében. Ebben a biztonsági modellben az AKS-fürt jogkivonatkibocsátóként működik, a Microsoft Entra ID az OpenID Connect használatával felderíti a nyilvános aláíró kulcsokat, és ellenőrzi a szolgáltatásfiók-jogkivonat hitelességét, mielőtt kicseréli azt egy Microsoft Entra-jogkivonatra. A munkaterhelés a kötetére kivetített szolgáltatásfiók-jogkivonatot kicserélheti egy Microsoft Entra-jogkivonatra az Azure Identity ügyfélkönyvtár használatával, az Azure SDK vagy a Microsoft Authentication Library (MSAL) alkalmazásával.
A számítási feladatok identitásaival kapcsolatos további információkért lásd: AKS-fürt konfigurálása Microsoft Entra Számítási feladat ID alkalmazásokkal való használatához
Az Azure Key Vault használata a Secrets Store CSI-illesztőprogrammal
A Microsoft Entra Munkaelem-azonosító lehetővé teszi a hitelesítést a támogató Azure-szolgáltatásokkal szemben. Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal nem rendelkező saját szolgáltatások vagy alkalmazások esetében továbbra is hitelesítő adatokkal vagy kulcsokkal hitelesíthet. Egy digitális tárolót használhatunk ezeknek a titkos tartalmaknak a tárolására.
Ha az alkalmazásoknak hitelesítő adatokra van szükségük, kommunikálnak a digitális tárolóval, lekérik a legújabb titkos tartalmakat, majd csatlakoznak a szükséges szolgáltatáshoz. Az Azure Key Vault lehet ez a digitális tároló. A hitelesítő adatok Azure Key Vaultból pod által felügyelt identitások használatával történő lekérésének egyszerűsített munkafolyamata az alábbi ábrán látható:
A Key Vault segítségével tárolhatja és rendszeresen elforgathatja a titkos kulcsokat, például hitelesítő adatokat, tárfiókkulcsokat vagy tanúsítványokat. Az Azure Key Vaultot integrálhatja egy AKS-fürttel az Azure Key Vault provider for the Secrets Store CSI Driver használatával. A Secrets Store CSI-illesztőprogram lehetővé teszi, hogy az AKS-fürt natívan lekérje a titkos adatok tartalmát a Key Vaultból, és biztonságosan csak a kérelmező podnak biztosítsa őket. A fürt operátorával együttműködve helyezze üzembe a Titkok tára CSI-illesztőprogramját az AKS-csomópontokon. A Microsoft Entra Workload ID használatával hozzáférést kérhet a Key Vaulthoz, és lekérheti a titkos tartalmakat a Secrets Store CSI Driver segítségével.
Következő lépések
Ez a cikk arról szól, hogyan tehetjük biztonságossá a podokat. Ezen területek némelyikének implementálásához tekintse meg a következő cikkeket:
Azure Kubernetes Service