A Kubernetes-fürtökhöz tartozó Azure Policy ismertetése
Az Azure Policy kibővíti a Gatekeeper v3-at, az Open Policy Agenthez (OPA) készült beléptető-vezérlő webhookot, hogy központi, konzisztens módon alkalmazza a fürtösszetevőkre vonatkozó, nagy léptékű kényszerítéseket és biztonsági intézkedéseket. A fürtösszetevők podokat, tárolókat és névtereket tartalmaznak.
Az Azure Policy lehetővé teszi, hogy egy helyen kezelhesse a Kubernetes-fürtkomponensek megfelelőségi állapotát, és jelentést készíthessen róla. Az Azure Policy bővítményének vagy bővítményének használatával a fürtösszetevők szabályozása olyan Azure Policy-funkciókkal bővül, mint a választók és felülbírálások használata a szabályzat biztonságos bevezetéséhez és visszaállításához.
Az Azure Policy a Kuberneteshez a következő fürtkörnyezeteket támogatja:
- Azure Kubernetes Service (AKS) az Azure Policy AKS-hez készült bővítményén keresztül
- Az Azure Arc-kompatibilis Kubernetes az Azure Policy Archoz készült bővítményén keresztül
Fontos
Az Azure Policy Add-on Helm-modell és az AKS-motor bővítménye elavult. A bővítmények eltávolításához kövesse az utasításokat.
Áttekintés
Az Azure Policy bővítményének vagy kiegészítőjének Kubernetes-fürtökre való telepítésével az Azure Policy a következő funkciókat hajtja végre:
- Az Azure Policy szolgáltatással ellenőrzi a fürthöz való szabályzat-hozzárendeléseket.
- A szabályzatdefiníciókat kényszersablonként és egyéni erőforrások korlátozására vagy mutációsablon-erőforrásként helyezi üzembe a fürtben (a szabályzatdefiníció tartalmától függően).
- Jelentést készít az Azure Policy szolgáltatás felé az ellenőrzés és a megfelelőség részleteiről.
Az Azure Policy Kubernetes-fürttel való engedélyezéséhez és használatához hajtsa végre a következő műveleteket:
Konfigurálja a Kubernetes-fürtöt, és telepítse az Azure Kubernetes Service (AKS) bővítményt vagy az Arc-kompatibilis Kubernetes-fürtökhöz készült Azure Policy-bővítményt (a fürt típusától függően).
Feljegyzés
A telepítéssel kapcsolatos gyakori problémákért tekintse meg az Azure Policy bővítmény hibaelhárítását.
Használjon vagy hozzon létre Azure Policy-definíció mintát Kuberneteshez
Tekintse át a korlátozásokat és ajánlásokat a GYIK részben
Az AKS-hez készült Azure Policy-bővítmény telepítése
Az AKS-hez készült Azure Policy-bővítmény a Kubernetes 1.27-es verziójának része, hosszú távú támogatással (LTS).
Előfeltételek
Regisztrálja az erőforrás-szolgáltatókat és az előzetes verziójú funkciókat.
Azure Portal:
Regisztrálja az
Microsoft.PolicyInsights
erőforrás-szolgáltatókat. A lépésekért tekintse meg az erőforrás-szolgáltatókat és -típusokat.Azure CLI:
# Log in first with az login if you're not using Cloud Shell # Provider register: Register the Azure Policy provider az provider register --namespace Microsoft.PolicyInsights
Telepítenie és konfigurálnia kell az Azure CLI 2.12.0-s vagy újabb verzióját. A verzió megkereséséhez futtassa a
az --version
parancsot. Ha telepítenie vagy frissítenie kell, olvassa el az Azure CLI telepítése című témakört.Az AKS-fürtnek az Azure Kubernetes Service (AKS) támogatott Kubernetes-verziójának kell lennie. Az AKS-fürt verziójának ellenőrzéséhez használja a következő szkriptet:
# Log in first with az login if you're not using Cloud Shell # Look for the value in kubernetesVersion az aks list
Nyisson meg portokat az Azure Policy-bővítmény számára. Az Azure Policy-bővítmény ezeket a tartományokat és portokat használja a fürt szabályzatdefinícióinak és hozzárendeléseinek lekérésére, valamint a fürt megfelelőségének jelentésére az Azure Policy-ba.
Tartomány Kikötő data.policy.core.windows.net
443
store.policy.core.windows.net
443
login.windows.net
443
dc.services.visualstudio.com
443
Az előfeltételek teljesítése után telepítse az Azure Policy bővítményt a kezelni kívánt AKS-fürtbe.
Azure Portal
Indítsa el az AKS szolgáltatást az Azure Portalon a Minden szolgáltatás kiválasztásával, majd a Kubernetes-szolgáltatások keresésével és kiválasztásával.
Válasszon egy AKS-fürtöt.
A Kubernetes szolgáltatásoldal bal oldalán válassza a Szabályzatok lehetőséget.
A főoldalon válassza a Bővítmény engedélyezése gombot.
Azure CLI
# Log in first with az login if you're not using Cloud Shell az aks enable-addons --addons azure-policy --name MyAKSCluster --resource-group MyResourceGroup
Annak ellenőrzéséhez, hogy a bővítmény telepítése sikeres volt-e, és hogy az Azure-policy és a gatekeeper podok futnak-e, futtassa a következő parancsot:
# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system
# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system
Végül ellenőrizze, hogy a legújabb bővítmény telepítve van-e az Azure CLI-parancs futtatásával, lecserélve <rg>
az erőforráscsoport nevére és <cluster-name>
az AKS-fürt nevére: az aks show --query addonProfiles.azurepolicy -g <rg> -n <cluster-name>
. Az eredménynek a következő kimenethez hasonlóan kell kinéznie a szolgáltatásnevet használó fürtök esetében:
{
"config": null,
"enabled": true,
"identity": null
}
És a következő kimenet felügyelt identitást használó fürtök esetében:
{
"config": null,
"enabled": true,
"identity": {
"clientId": "########-####-####-####-############",
"objectId": "########-####-####-####-############",
"resourceId": "<resource-id>"
}
}
Az Azure Arc-kompatibilis Kubernetes Azure Policy-bővítményének telepítése
Az Azure Policy for Kubernetes lehetővé teszi a Kubernetes-fürtök megfelelőségi állapotának kezelését és jelentését egy helyről. Az Azure Policy Arc-kompatibilis Kubernetes-fürtökhöz készült bővítményével szabályozhatja az Arc-kompatibilis Kubernetes-fürtösszetevőket, például a podokat és a tárolókat.
Ez a cikk bemutatja, hogyan hozhatja létre, jelenítheti meg a bővítmény állapotát és törölheti a Kubernetes-bővítményhez készült Azure Policyt.
A bővítményplatform áttekintéséhez tekintse meg az Azure Arc-fürtbővítményeket.
Előfeltételek
Ha már üzembe helyezte az Azure Policy for Kubernetes-t egy Azure Arc-fürtön a Helm közvetlen bővítmények nélküli használatával, kövesse az utasításokat a Helm-diagram törléséhez. A törlés után folytathatja a műveletet.
Győződjön meg arról, hogy a Kubernetes-fürt a támogatott terjesztés része.
Győződjön meg arról, hogy megfelelt az itt felsorolt Kubernetes-bővítmények általános előfeltételeinek, beleértve a fürt Azure Archoz való csatlakoztatását is.
Feljegyzés
Az Azure Policy-bővítmény az Arc-kompatibilis Kubernetes-fürtök esetében támogatott ezekben a régiókban.
Nyisson meg portokat az Azure Policy-bővítmény számára. Az Azure Policy-bővítmény ezeket a tartományokat és portokat használja a fürt szabályzatdefinícióinak és hozzárendeléseinek lekérésére, valamint a fürt megfelelőségének jelentésére az Azure Policy-ba.
Tartomány Kikötő data.policy.core.windows.net
443
store.policy.core.windows.net
443
login.windows.net
443
dc.services.visualstudio.com
443
Az Azure Policy-bővítmény telepítése vagy bármely szolgáltatásfunkció engedélyezése előtt az előfizetésnek engedélyeznie kell az
Microsoft.PolicyInsights
erőforrás-szolgáltatókat.Feljegyzés
Az erőforrás-szolgáltató engedélyezéséhez kövesse az erőforrás-szolgáltatók és -típusok lépéseit, vagy futtassa az Azure CLI vagy az Azure PowerShell parancsot.
Azure CLI
# Log in first with az login if you're not using Cloud Shell # Provider register: Register the Azure Policy provider az provider register --namespace 'Microsoft.PolicyInsights'
Azure PowerShell
# Log in first with Connect-AzAccount if you're not using Cloud Shell # Provider register: Register the Azure Policy provider Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
Azure Policy-bővítmény létrehozása
Feljegyzés
Az Azure Policy-bővítmények létrehozásához vegye figyelembe a következőket:
- Az automatikus frissítés alapértelmezés szerint engedélyezve van, amely új módosítások esetén frissíti az Azure Policy-bővítmény alverziót.
- A paraméterekként átadott proxyváltozók
connectedk8s
az Azure Policy-bővítménybe lesznek propagálva a kimenő proxy támogatásához.
Bővítménypéldány létrehozásához futtassa az alábbi parancsot az Értékekkel helyettesítve <>
az Arc-kompatibilis fürthöz:
az k8s-extension create --cluster-type connectedClusters --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --extension-type Microsoft.PolicyInsights --name <EXTENSION_INSTANCE_NAME>
Példa:
az k8s-extension create --cluster-type connectedClusters --cluster-name my-test-cluster --resource-group my-test-rg --extension-type Microsoft.PolicyInsights --name azurepolicy
Példakimenet:
{
"aksAssignedIdentity": null,
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": {},
"configurationSettings": {},
"customLocationSettings": null,
"errorInfo": null,
"extensionType": "microsoft.policyinsights",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/my-test-rg/providers/Microsoft.Kubernetes/connectedClusters/my-test-cluster/providers/Microsoft.KubernetesConfiguration/extensions/azurepolicy",
"identity": {
"principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenantId": null,
"type": "SystemAssigned"
},
"location": null,
"name": "azurepolicy",
"packageUri": null,
"provisioningState": "Succeeded",
"releaseTrain": "Stable",
"resourceGroup": "my-test-rg",
"scope": {
"cluster": {
"releaseNamespace": "kube-system"
},
"namespace": null
},
"statuses": [],
"systemData": {
"createdAt": "2021-10-27T01:20:06.834236+00:00",
"createdBy": null,
"createdByType": null,
"lastModifiedAt": "2021-10-27T01:20:06.834236+00:00",
"lastModifiedBy": null,
"lastModifiedByType": null
},
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "1.1.0"
}
Azure Policy-bővítmény megjelenítése
A bővítménypéldány létrehozásának sikerességének ellenőrzéséhez és a bővítmény metaadatainak vizsgálatához futtassa az alábbi parancsot az értékekkel helyettesítve <>
:
az k8s-extension show --cluster-type connectedClusters --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --name <EXTENSION_INSTANCE_NAME>
Példa:
az k8s-extension show --cluster-type connectedClusters --cluster-name my-test-cluster --resource-group my-test-rg --name azurepolicy
Annak ellenőrzéséhez, hogy a bővítmény telepítése sikeres volt-e, és hogy az Azure-policy és a gatekeeper podok futnak-e, futtassa a következő parancsot:
# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system
# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system
Azure Policy-bővítmény törlése
A bővítménypéldány törléséhez futtassa a következő parancsot az értékekkel helyettesítve <>
:
az k8s-extension delete --cluster-type connectedClusters --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --name <EXTENSION_INSTANCE_NAME>
Szabályzatdefiníció létrehozása
A Kubernetes kezeléséhez használt Azure Policy nyelvi struktúra a meglévő szabályzatdefiníciókat követi. Az Azure Policy beépített szabályzattárában elérhető mintadefiníciós fájlok a fürtösszetevők szabályozására használhatók.
Az Azure Policy for Kubernetes emellett támogatja az egyéni definíciók létrehozását összetevőszinten az Azure Kubernetes Service-fürtök és az Azure Arc-kompatibilis Kubernetes-fürtök esetében is. A kényszersablon és a mutációs sablonminták a Gatekeeper közösségi könyvtárában érhetők el. Az Azure Policy Visual Studio Code-bővítménye segítségével egy meglévő kényszersablont vagy mutációs sablont lefordíthat egy egyéni Azure Policy-szabályzatdefinícióra.
Erőforrás-szolgáltatói Microsoft.Kubernetes.Data
mód esetén a kubernetes-fürtök kezeléséhez az effektusok naplózása, elutasítása, letiltása és mutációja használható.
A naplózásnak és a megtagadásnak meg kell adnia az OPA-kényszer-keretrendszer és a Gatekeeper v3 használatával kapcsolatos részletes tulajdonságokat.
A szabályzatdefiníció details.templateInfo vagy details.constraintInfo tulajdonságainak részeként az Azure Policy átadja ezen CustomResourceDefinitions(CRD) URI-ját vagy Base64Encoded
értékét a bővítménynek. A Rego az a nyelv, amelyet az OPA és a Gatekeeper támogat a Kubernetes-fürthöz érkező kérések érvényesítéséhez. A Kubernetes-felügyelet egy meglévő szabványának támogatásával az Azure Policy lehetővé teszi a meglévő szabályok újrafelhasználását és párosítását az Azure Policyval az egységes felhőmegfelelőségi jelentéskészítési élmény érdekében. További információ: Mi a Rego?
Szabályzatdefiníció hozzárendelése
Ha szabályzatdefiníciót szeretne hozzárendelni a Kubernetes-fürthöz, hozzá kell rendelnie a megfelelő Azure-szerepköralapú hozzáférés-vezérlési (Azure RBAC-) szabályzat-hozzárendelési műveleteket. Az Azure beépített szerepkörök erőforrásházirend-közreműködője és tulajdonosa rendelkezik ezekkel a műveletekkel. További információkért tekintse meg az Azure RBAC-engedélyeket az Azure Policyban.
Az alábbi lépésekkel megtalálhatja a fürt azure portalon történő kezelésére szolgáló beépített szabályzatdefiníciókat. Ha egyéni szabályzatdefiníciót használ, keressen rá név vagy a létrehozott kategória alapján.
Indítsa el az Azure Policy szolgáltatást az Azure Portalon. A bal oldali panelen válassza a Minden szolgáltatás lehetőséget, majd keresse meg és válassza a Szabályzat lehetőséget.
Az Azure Policy lap bal oldali ablaktábláján válassza a Definíciók lehetőséget.
A Kategória legördülő listában válassza az Összes kijelölése lehetőséget a szűrő törléséhez, majd válassza a Kubernetes lehetőséget.
Válassza ki a szabályzatdefiníciót, majd válassza a Hozzárendelés gombot.
Állítsa a hatókört annak a Kubernetes-fürtnek a felügyeleti csoportjára, előfizetésére vagy erőforráscsoportjára, ahol a szabályzat-hozzárendelés érvényes.
Feljegyzés
Az Azure Policy for Kubernetes-definíció hozzárendelésekor a hatókörnek tartalmaznia kell a fürterőforrást.
Adjon meg egy nevet és leírást a szabályzat-hozzárendelésnek, amellyel könnyen azonosítható.
Állítsa a szabályzatkényszerítést az alábbi értékek egyikére:
Engedélyezve – A házirend kényszerítése a fürtön. A Kubernetes szabálysértési kérelmeket elutasítja.
Letiltva – Ne kényszerítse ki a házirendet a fürtön. A Kubernetes szabálysértési kérelmeket nem tagadja meg. A megfelelőségértékelés eredményei továbbra is elérhetők. Amikor új szabályzatdefiníciókat vezet be a fürtök futtatására, a letiltott beállítás hasznos a szabályzatdefiníció teszteléséhez, mivel a szabálysértésekkel kapcsolatos belépési kérelmeket nem tiltja le a rendszer.
Válassza a Tovább lehetőséget.
Paraméterértékek beállítása
- Ha ki szeretné zárni a Kubernetes-névtereket a szabályzatértékelésből, adja meg a névterek listáját Namespace paraméterben. A javaslat a kube-system, a gatekeeper-system és az azure-arc kizárása.
Válassza az Áttekintés + létrehozás lehetőséget.
Másik megoldásként használja a Szabályzat hozzárendelése – Portál rövid útmutatót egy Kubernetes-szabályzat megkereséséhez és hozzárendeléséhez. Keresse meg a Kubernetes-szabályzatdefiníciót a minta auditálási virtuális gépek helyett.
Fontos
A kubernetes kategóriában lévő Kubernetes-fürtökhöz beépített szabályzatdefiníciók érhetők el. A beépített szabályzatdefiníciók listáját a Kubernetes-mintákban találja.
Szabályzatkiértékelés
A bővítmény 15 percenként ellenőrzi az Azure Policy szolgáltatásban, hogy módosultak-e a szabályzat-hozzárendelések. A frissítési ciklus során a bővítmény ellenőrzi a módosításokat. Ezek a módosítások aktiválják a kényszersablonok és kényszerek létrehozását, frissítését vagy törlését.
Kubernetes-fürtökben, ha egy névtéren a fürtnek megfelelő címke szerepel, a rendszer nem tagadja meg a szabálysértési kérelmeket. A megfelelőségértékelés eredményei továbbra is elérhetők.
- Azure Arc-kompatibilis Kubernetes-fürt:
admission.policy.azure.com/ignore
Feljegyzés
Bár a fürt rendszergazdája rendelkezhet engedéllyel az Azure Policy bővítmény által telepített kényszersablonok és korlátozások létrehozására és frissítésére, ezek nem támogatott forgatókönyvek, mivel a manuális frissítések felülíródnak. A Gatekeeper továbbra is kiértékeli a bővítmény telepítése és az Azure Policy-szabályzatdefiníciók hozzárendelése előtt meglévő szabályzatokat.
A bővítmény 15 percenként teljes vizsgálatot kezdeményez a fürtön. Miután összegyűjtötte a teljes vizsgálat adatait és a Gatekeeper által a fürtön végrehajtani próbált módosításokról valós időben készített kiértékeléseket, a bővítmény visszaküldi az eredményeket az Azure Policynek, hogy a többi Azure Policy-hozzárendeléssel együtt szerepelhessenek a megfelelőségi adatok között. A naplózási ciklus során csak az aktív szabályzat-hozzárendelések eredményei lesznek visszaadva. A naplózási eredmények megsértésekként is megjelennek a meghiúsult kényszer állapotmezőjében. A nem megfelelő erőforrásokról további információt az Erőforrás-szolgáltatói módok összetevő-részletei című témakörben talál.
Feljegyzés
A Kubernetes-fürtök azure policy-beli megfelelőségi jelentései az elmúlt 45 percben minden szabálysértést tartalmaznak. Az időbélyeg azt jelzi, hogy mikor történt szabálysértés.
Néhány egyéb szempont:
Ha a fürt-előfizetés regisztrálva van Felhőhöz készült Microsoft Defender, akkor a rendszer automatikusan alkalmazza Felhőhöz készült Microsoft Defender Kubernetes-szabályzatokat a fürtre.
Ha a rendszer megtagadási szabályzatot alkalmaz a meglévő Kubernetes-erőforrásokkal rendelkező fürtön, az új szabályzatnak nem megfelelő meglévő erőforrások továbbra is futnak. Ha a nem megfelelő erőforrást egy másik csomópontra ütemezik át, a Gatekeeper blokkolja az erőforrás létrehozását.
Ha egy fürt olyan megtagadási szabályzattal rendelkezik, amely ellenőrzi az erőforrásokat, a felhasználó nem kap elutasítási üzenetet az üzembe helyezés létrehozásakor. Vegyük például egy Kubernetes-üzembe helyezést, amely replikákat és podokat tartalmaz. Amikor egy felhasználó végrehajtja a parancsot
kubectl describe deployment $MY_DEPLOYMENT
, az nem ad vissza elutasító üzenetet az események részeként. Azkubectl describe replicasets.apps $MY_DEPLOYMENT
elutasításhoz kapcsolódó eseményeket azonban visszaadja.
Feljegyzés
Az Init-tárolók belefoglalhatók a szabályzat kiértékelése során. Annak ellenőrzéséhez, hogy az Init-tárolók szerepelnek-e a dokumentumban, tekintse át a CRD-t a következő vagy hasonló deklarációhoz:
input_containers[c] {
c := input.review.object.spec.initContainers[_]
}
Kényszersablon ütközései
Ha a kényszersablonok neve megegyezik az erőforrás metaadatainak nevével, de a szabályzatdefiníció különböző helyeken hivatkozik a forrásra, a szabályzatdefiníciók ütközésnek minősülnek. Példa: Két szabályzatdefiníció hivatkozik ugyanarra template.yaml
a fájlra, amely különböző forráshelyeken, például az Azure Policy-sablontárolóban (store.policy.core.windows.net
) és a GitHubon található.
Ha a szabályzatdefiníciók és a kényszersablonok hozzárendelve vannak, de még nincsenek telepítve a fürtön, és ütközésben vannak, a rendszer ütközésként jelenti őket, és az ütközés feloldásáig nem települnek a fürtbe. Hasonlóképpen, az újonnan hozzárendelt szabályzatdefiníciókkal ütköző fürtön lévő meglévő szabályzatdefiníciók és kényszersablonjaik továbbra is normálisan működnek. Ha egy meglévő hozzárendelés frissül, és nem sikerül szinkronizálni a kényszersablont, a fürt is ütközésként van megjelölve. Az összes ütközési üzenet esetén tekintse meg az AKS erőforrás-szolgáltatói mód megfelelőségi okait
Naplózás
Kubernetes-vezérlőként/tárolóként az azure-policy és a gatekeeper pod is naplókat tárol a Kubernetes-fürtben. Az azure-policy-naplók általában a fürtbe történő szabályzatbetöltéssel és a megfelelőségi jelentésekkel kapcsolatos problémák elhárítására használhatók. A gatekeeper-controller-manager podnaplók a futtatókörnyezeti hibák elhárítására használhatók. A gatekeeper-audit podnaplók a meglévő erőforrások naplózásának hibaelhárítására használhatók. A naplók a Kubernetes-fürt Megállapítások oldalán tehetők közzé. További tudnivalókért lásd a Kubernetes-fürt teljesítményének monitorozását a tárolókhoz készült Azure Monitor segítségével.
A bővítménynaplók megtekintéséhez használja a következőt kubectl
:
# Get the azure-policy pod name installed in kube-system namespace
kubectl logs <azure-policy pod name> -n kube-system
# Get the gatekeeper pod name installed in gatekeeper-system namespace
kubectl logs <gatekeeper pod name> -n gatekeeper-system
Ha megpróbál elhárítani egy adott ComplianceReasonCode-ot, amely megjelenik a megfelelőségi eredményekben, a kódhoz tartozó Azure-policy podnaplókban kereshet a teljes kísérő hiba megtekintéséhez.
További tudnivalókért tekintse meg a Gatekeeper hibakeresését ismertető szakaszt a Gatekeeper dokumentációjában.
Gatekeeper-összetevők megtekintése
Miután a bővítmény letöltötte a szabályzat-hozzárendeléseket, és telepítette a fürtre vonatkozó kényszersablonokat és megkötéseket, mind az Azure Policy-információkkal, például a szabályzat-hozzárendelés azonosítójával, mind a szabályzatdefiníció-azonosítóval megjegyzéseket fűz. Ha úgy szeretné konfigurálni az ügyfelet, hogy megtekintse a bővítményhez kapcsolódó összetevőket, kövesse az alábbi lépéseket:
Állítsa be
kubeconfig
a fürtöt.Azure Kubernetes Service-fürt esetén használja a következő Azure CLI-t:
# Set context to the subscription az account set --subscription <YOUR-SUBSCRIPTION> # Save credentials for kubeconfig into .kube in your home folder az aks get-credentials --resource-group <RESOURCE-GROUP> --name <CLUSTER-NAME>
Tesztelje a fürtkapcsolatot.
Futtassa a következő parancsot:
kubectl cluster-info
. A sikeres futtatáshoz minden szolgáltatás egy URL-címmel válaszol, amelyen fut.
A bővítmény kényszersablonjainak megtekintése
A bővítmény által letöltött kényszersablonok megtekintéséhez futtassa a következőt kubectl get constrainttemplates
:
A bővítmény által telepített kényszersablonok k8sazure
.
A bővítménymutációsablonok megtekintése
A bővítmény által letöltött mutációs sablonok megtekintéséhez futtassa kubectl get assign
kubectl get assignmetadata
kubectl get modifyset
a következőt:
Azure Policy-leképezések lekérése
A fürtre letöltött kényszersablon és a szabályzatdefiníció közötti megfeleltetés azonosításához használja kubectl get constrainttemplates <TEMPLATE> -o yaml
a következőt: . Az eredmények a következő kimenethez hasonlóak:
apiVersion: templates.gatekeeper.sh/v1beta1
kind: ConstraintTemplate
metadata:
annotations:
azure-policy-definition-id: /subscriptions/<SUBID>/providers/Microsoft.Authorization/policyDefinitions/<GUID>
constraint-template-installed-by: azure-policy-addon
constraint-template: <URL-OF-YAML>
creationTimestamp: "2021-09-01T13:20:55Z"
generation: 1
managedFields:
- apiVersion: templates.gatekeeper.sh/v1beta1
fieldsType: FieldsV1
...
<SUBID>
az előfizetés azonosítója, és <GUID>
a megfeleltetett szabályzatdefiníció azonosítója.
<URL-OF-YAML>
a fürtre való telepítéshez letöltött kényszersablon forráshelye.
Kényszersablonhoz kapcsolódó korlátozások megtekintése
Miután megkapta a bővítmény letöltött kényszersablonjainak nevét, a névvel megtekintheti a kapcsolódó kényszereket. A lista lekérésére használható kubectl get <constraintTemplateName>
.
A bővítmény által telepített korlátozások a következővel kezdődnek azurepolicy-
: .
A kényszer részleteinek megtekintése
A korlátozás részletes információkat tartalmaz a szabályzatdefiníció és -hozzárendelés megsértéseiről és leképezéseiről. A részletek megtekintéséhez használja kubectl get <CONSTRAINT-TEMPLATE> <CONSTRAINT> -o yaml
a következőt: . Az eredmények a következő kimenethez hasonlóak:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sAzureContainerAllowedImages
metadata:
annotations:
azure-policy-assignment-id: /subscriptions/<SUB-ID>/resourceGroups/<RG-NAME>/providers/Microsoft.Authorization/policyAssignments/<ASSIGNMENT-GUID>
azure-policy-definition-id: /providers/Microsoft.Authorization/policyDefinitions/<DEFINITION-GUID>
azure-policy-definition-reference-id: ""
azure-policy-setdefinition-id: ""
constraint-installed-by: azure-policy-addon
constraint-url: <URL-OF-YAML>
creationTimestamp: "2021-09-01T13:20:55Z"
spec:
enforcementAction: deny
match:
excludedNamespaces:
- kube-system
- gatekeeper-system
- azure-arc
parameters:
imageRegex: ^.+azurecr.io/.+$
status:
auditTimestamp: "2021-09-01T13:48:16Z"
totalViolations: 32
violations:
- enforcementAction: deny
kind: Pod
message: Container image nginx for container hello-world has not been allowed.
name: hello-world-78f7bfd5b8-lmc5b
namespace: default
- enforcementAction: deny
kind: Pod
message: Container image nginx for container hello-world has not been allowed.
name: hellow-world-89f8bfd6b9-zkggg
A bővítmény hibaelhárítása
A Kubernetes bővítmény hibaelhárításával kapcsolatos további információkért tekintse meg az Azure Policy hibaelhárítási cikkének Kubernetes szakaszát .
Az Arc-bővítményekkel kapcsolatos Azure Policy-bővítményekkel kapcsolatos problémákért tekintse meg a következőt:
Az Azure Policyval kapcsolatos problémákért tekintse meg a következő témaköröket:
Azure Policy-bővítmény az AKS változásnaplóhoz
Az Azure Policy AKS-hez készült bővítménye verziószámmal rendelkezik, amely a bővítmény képverzióját jelzi. Mivel a funkciótámogatást újonnan vezetik be a bővítményen, a verziószám megnő.
Ez a szakasz segít azonosítani, hogy melyik bővítményverzió van telepítve a fürtön, és az AKS-fürtökre telepített Azure Policy bővítményverzió előzménytábláját is megoszthatja.
A fürtre telepített bővítményverzió azonosítása
Az Azure Policy-bővítmény minden verzióhoz a szabványos szemantikai verziószámozási sémát használja. A használt Azure Policy bővítményverzió azonosításához futtassa a következő parancsot: kubectl get pod azure-policy-<unique-pod-identifier> -n kube-system -o json | jq '.spec.containers[0].image'
Az Azure Policy-bővítmény által használt Gatekeeper-verzió azonosításához futtassa a következő parancsot: kubectl get pod gatekeeper-controller-<unique-pod-identifier> -n gatekeeper-system -o json | jq '.spec.containers[0].image'
Végül a használt AKS-fürtverzió azonosításához kövesse a csatolt AKS-útmutatót.
Az egyes AKS-fürtverziókhoz elérhető bővítményverziók
1.7.0
A bővítés bevezetésekor a bal oldali műszak funkcióval előre tudhatja, hogy a számítási feladatok erőforrásai (üzembe helyezések, ReplicaSets, Jobs stb.) elfogadható podokat fognak-e létrehozni. A bővítés nem módosíthatja a szabályzatok viselkedését; ehelyett inkább a Gatekeeper pod-hatókörű szabályzatok kiértékelését váltja ki, hogy a podbeléptetési idő helyett a számítási feladatok felvételi idején történjenek. A kiértékelés elvégzéséhez azonban létre kell hoznia és ki kell értékelnie egy, a számítási feladatban meghatározott pod-specifikáción alapuló, esetleg hiányos metaadatokat tartalmazó what-if podot. A what-if pod például nem tartalmazza a megfelelő tulajdonosi hivatkozásokat. A szabályzat viselkedésének ilyen kis kockázata miatt alapértelmezés szerint letiltottként vezetjük be a bővítést. Ha engedélyezni szeretné a bővítményt egy adott szabályzatdefinícióhoz, állítsa a .policyRule.then.details.source
következőre All
: . A beépítettek hamarosan frissülnek a mező paraméterezésének engedélyezéséhez. Ha teszteli a szabályzatdefiníciót, és úgy találja, hogy a kiértékelési célokra létrehozott what-if pod hiányos, akkor a forrást Generated
is használhatja a what-if podok mutációjához. A beállítással kapcsolatos további információkért tekintse meg a Gatekeeper dokumentációját.
Biztonsági fejlesztések.
- Kiadás dátuma: 2024. július
- Kubernetes 1.27+
- Kapuőr 3.16.3
1.6.1
Biztonsági fejlesztések.
- Kiadás dátuma: 2024. május
- Kapuőr 3.14.2
1.5.0
Biztonsági fejlesztések.
- Kiadás dátuma: 2024. május
- Kubernetes 1.27+
- Kapuőr 3.16.3
1.4.0
Alapértelmezés szerint engedélyezi a mutációt és a külső adatokat. A webhook további mutációja és a webhook időtúllépési korlátjának növelése késést okozhat a hívások esetében a legrosszabb esetben. Emellett támogatja a szabályzatdefiníció megtekintését és a definíció verziószámának beállítását a megfelelőségi eredményekben.
- Kiadás dátuma: 2024. május
- Kubernetes 1.25+
- Kapuőr 3.14.0
1.3.0
Hibaállapotot vezet be a hibás szabályzatokhoz, így azok megkülönböztethetők a nem megfelelő állapotú szabályzatoktól. Támogatja a v1-alapú kényszersablonokat és a kizártNamespaces paraméter használatát a mutációs szabályzatokban. Hibaállapot-ellenőrzést ad hozzá a kényszersablonokhoz a telepítés után.
- Kiadás dátuma: 2024. február
- Kubernetes 1.25+
- Kapuőr 3.14.0
1.2.1
- Kiadás dátuma: 2023. október
- Kubernetes 1.25+
- Kapuőr 3.13.3
1.1.0
- Kiadás dátuma: 2023. július
- Kubernetes 1.27+
- Kapuőr 3.11.1
1.0.1
- Kiadás dátuma: 2023. június
- Kubernetes 1.24+
- Kapuőr 3.11.1
1.0.0
Az Azure Policy for Kubernetes mostantól támogatja a mutációt az AKS-fürtök nagy léptékű szervizeléséhez!
A bővítmény eltávolítása
A bővítmény eltávolítása az AKS-ből
Ha el szeretné távolítani az Azure Policy bővítményt az AKS-fürtből, használja az Azure Portalt vagy az Azure CLI-t:
Azure Portal
Indítsa el az AKS szolgáltatást az Azure Portalon a Minden szolgáltatás kiválasztásával, majd a Kubernetes-szolgáltatások keresésével és kiválasztásával.
Válassza ki az AKS-fürtöt, ahol le szeretné tiltani az Azure Policy bővítményt.
A Kubernetes szolgáltatásoldal bal oldalán válassza a Szabályzatok lehetőséget.
A főoldalon válassza a Bővítmény letiltása gombot.
Azure CLI
# Log in first with az login if you're not using Cloud Shell az aks disable-addons --addons azure-policy --name MyAKSCluster --resource-group MyResourceGroup
A bővítmény eltávolítása az Azure Arc-kompatibilis Kubernetesből
Feljegyzés
Az Azure Policy add-on Helm-modell elavult. Ehelyett az Azure Arc-kompatibilis Kubernetes Azure Policy-bővítményét kell választania .
Ha el szeretné távolítani az Azure Policy bővítményt és a Gatekeepert az Azure Arc-kompatibilis Kubernetes-fürtből, futtassa a következő Helm-parancsot:
helm uninstall azure-policy-addon
A bővítmény eltávolítása az AKS-motorból
Feljegyzés
Az AKS Engine terméke mostantól elavult az Azure nyilvános felhőügyfelei számára. Fontolja meg az Azure Kubernetes Service (AKS) használatát a felügyelt Kuberneteshez vagy az Azure fürt API-szolgáltatóját a saját felügyeletű Kuberneteshez. Nincsenek tervezett új funkciók; ez a projekt csak a CVE-k és hasonlók esetében lesz frissítve, és a Kubernetes 1.24 lesz a végleges verzió a frissítések fogadásához.
Ha el szeretné távolítani az Azure Policy bővítményt és a Gatekeepert az AKS Engine-fürtből, használja a bővítmény telepítésének módjához igazodó módszert:
Ha az AKS Engine fürtdefiníciójában az addons tulajdonság beállításával van telepítve:
Helyezze újra a fürtdefiníciót az AKS Engine-be, miután az Azure-Policy bővítménytulajdonságát hamisra módosította:
"addons": [{ "name": "azure-policy", "enabled": false }]
További információ: AKS Engine – Az Azure Policy bővítmény letiltása.
Ha Helm-diagramokkal van telepítve, futtassa a következő Helm-parancsot:
helm uninstall azure-policy-addon
Korlátozások
- Az Azure Policy általános definícióiért és hozzárendelési korlátaiért tekintse át az Azure Policy dokumentált korlátait
- A Kuberneteshez készült Azure Policy-bővítmény csak Linux-csomópontkészletekben telepíthető.
- Az Azure Policy bővítmény által támogatott podok maximális száma fürtönként: 10 000
- Nem megfelelő rekordok maximális száma fürtönként házirendenként: 500
- Nem megfelelő rekordok maximális száma előfizetésenként: 1 millió
- Az Azure Policy bővítményen kívüli Gatekeeper telepítések nem támogatottak. Az Azure Policy bővítmény engedélyezése előtt távolítsa el az előző Gatekeeper-telepítés által telepített összetevőket.
- A meg nem felelés okai nem érhetők el a Microsoft.Kubernetes.Data Resource Provider mód esetében. Az összetevő részleteinek használata.
- Az erőforrás-szolgáltatói módok nem támogatják az összetevőszintű kivételeket. A paraméterek támogatása elérhető az Azure Policy-definíciókban az adott névterek kizárásához és belefoglalásához.
metadata.gatekeeper.sh/requires-sync-data
A fürtből az OPA-gyorsítótárba történő adatreplikáció konfigurálásához jelenleg csak a beépített szabályzatok használhatják a megjegyzést egy kényszersablonban. Ennek az az oka, hogy jelentősen növelheti a Gatekeeper podok erőforrás-használatát, ha nem használják gondosan.
A következő korlátozások csak az AKS-hez készült Azure Policy-bővítményre vonatkoznak:
- Az AKS Pod biztonsági szabályzata és az AKS-hez készült Azure Policy-bővítmény nem engedélyezhető. További információ: AKS pod biztonsági korlátozása.
- Az Azure Policy bővítmény automatikusan kizárja a névtereket a kiértékeléshez: kube-system és gatekeeper-system.
Gyakori kérdések
Mit helyez üzembe az Azure Policy bővítmény/Azure Policy-bővítmény a fürtön a telepítéskor?
Az Azure Policy-bővítmény futtatásához három Gatekeeper-összetevő szükséges: egy naplózási pod és két webhook podreplika. Egy Azure Policy-pod és egy Azure Policy webhook-pod is telepítve van.
Mennyi erőforrás-felhasználást kell elvárnom az Azure Policy bővítménytől/bővítménytől az egyes fürtökön?
A fürtön futó Azure Policy for Kubernetes-összetevők több erőforrást használnak fel, mivel a Kubernetes-erőforrások és szabályzat-hozzárendelések száma nő a fürtben, ami naplózási és kényszerítési műveleteket igényel. A következő becslések segítenek a tervezésben:
- Egyetlen fürtben kevesebb mint 500 pod esetén, legfeljebb 20 korlátozással: két virtuális processzor és 350 MB memória összetevőnként.
- Több mint 500 pod egyetlen fürtben, legfeljebb 40 korlátozással: három virtuális processzor és 600 MB memória összetevőnként.
Alkalmazhatók az Azure Policy for Kubernetes-definíciók Windows-podokon?
A Windows-podok nem támogatják a biztonsági környezeteket. Így az Azure Policy egyes definíciói, például a gyökérjogjogok letiltása, nem eszkalálhatók a Windows-podokban, és csak Linux-podokra alkalmazhatók.
Milyen típusú diagnosztikai adatokat gyűjt az Azure Policy bővítmény?
A KubernetesHez készült Azure Policy-bővítmény korlátozott fürtdiagnosztikai adatokat gyűjt. Ezek a diagnosztikai adatok a szoftverhez és a teljesítményhez kapcsolódó alapvető technikai adatok. Az adatok felhasználása a következő módokon történik:
- Naprakészen tarthatja az Azure Policy-bővítményt.
- Az Azure Policy bővítmény biztonságos, megbízható és teljesíthető maradjon.
- Az Azure Policy bővítmény fejlesztése a bővítmény használatának összesített elemzésével.
A bővítmény által gyűjtött információk nem személyes adatok. A rendszer jelenleg a következő adatokat gyűjti össze:
- Az Azure Policy bővítményügynökének verziója
- Fürt típusa
- Fürtrégió
- Fürterőforrás-csoport
- Fürt erőforrás-azonosítója
- Fürt-előfizetés azonosítója
- Fürt operációs rendszere (példa: Linux)
- Fürt városa (példa: Seattle)
- Fürt állapota vagy tartománya (példa: Washington)
- Fürt országa vagy régiója (példa: Egyesült Államok)
- Az Azure Policy bővítmény által a szabályzat kiértékelése során az ügynök telepítése során előforduló kivételek/hibák
- Az Azure Policy bővítmény által nem telepített Gatekeeper-szabályzatdefiníciók száma
Milyen általános ajánlott eljárásokat érdemes szem előtt tartani az Azure Policy-bővítmény telepítésekor?
- A Gatekeeper-podok ütemezéséhez használja a rendszercsomópontkészletet a fertőzöttséggel
CriticalAddonsOnly
. További információ: Rendszercsomópontkészletek használata. - A kimenő forgalom védelme az AKS-fürtökről. További információ: A fürtcsomópontok kimenő forgalmának szabályozása.
- Ha a fürt engedélyezve van
aad-pod-identity
, a csomópont felügyelt identitásának (NMI) podjai módosítják a csomópontok iptable-jait, hogy elfogják az Azure Instance Metadata-végpontra irányuló hívásokat. Ez a konfiguráció azt jelenti, hogy a metaadat-végpontra irányuló kéréseket az NMI akkor is elfogja, ha a pod nem használjaaad-pod-identity
. - Az AzurePodIdentityException CRD konfigurálható úgy, hogy tájékoztassa arról
aad-pod-identity
, hogy a CRD-ben definiált címkéknek megfelelő podból származó metaadat-végpontra irányuló kéréseket az NMI-ben történő feldolgozás nélkül kell létrehozni. Az AzurePodIdentityException CRD konfigurálásával ki kell zárniaad-pod-identity
a kube-system névtérben található kubernetes.azure.com/managedby: aks címkével rendelkező rendszer podokat. További információt az adott pod vagy alkalmazás aad-pod-identitásának letiltása című témakörben talál. A kivétel konfigurálásához telepítse a mikrofonkivételi YAML-t.
Következő lépések
- Tekintse át az Azure Policy-minták példáit.
- A Szabályzatdefiníciók struktúrájának áttekintése.
- A Szabályzatok hatásainak ismertetése.
- Megtudhatja, hogyan hozhat létre programozott módon szabályzatokat.
- Megtudhatja, hogyan kérhet le megfelelőségi adatokat.
- Megtudhatja, hogyan orvosolhatja a nem megfelelő erőforrásokat.
- Tekintse át, hogy mi az a felügyeleti csoport az erőforrások azure-beli felügyeleti csoportokkal való rendszerezésével.