Přehled správy certifikátů v AKS povolené službou Azure Arc
Platí pro: AKS ve Službě Azure Stack HCI 22H2, AKS na Windows Serveru
Služba AKS povolená službou Azure Arc používá kombinaci ověřování založeného na certifikátech a tokenech k zabezpečení komunikace mezi službami (nebo agenty) zodpovědnými za různé operace v rámci platformy. Ověřování na základě certifikátu používá digitální certifikát k identifikaci entity (agenta, počítače, uživatele nebo zařízení) před udělením přístupu k prostředku.
Cloudový agent
Když nasadíte AKS povolenou službou Arc, AKS nainstaluje agenty, kteří se používají k provádění různých funkcí v rámci clusteru. Mezi tyto agenty patří:
- Cloudový agent: služba, která zodpovídá za orchestraci podkladové platformy.
- Agent uzlů: Služba, která se nachází na každém uzlu, který dělá skutečnou práci při vytváření, odstraňování virtuálních počítačů atd.
- Pod Key Management System (KMS): služba zodpovědná za správu klíčů.
- Další služby: operátor cloudu, správce certifikátů atd.
Služba cloudového agenta v AKS zodpovídá za orchestraci operací CRUD (vytvoření, čtení, aktualizace a odstranění) komponent infrastruktury, jako jsou Virtual Machines (VM), Virtual Network Interfaces (VNICS) a virtuální sítě (VNET) v clusteru.
Aby klienti mohli komunikovat s cloudovým agentem, vyžadují, aby se pro zabezpečení této komunikace zřídily certifikáty. Každý klient vyžaduje, aby k němu byla přidružena identita, která definuje pravidla Access Control na základě role (RBAC) přidružená k klientovi. Každá identita se skládá ze dvou entit:
- Token, který se používá k počátečnímu ověřování, který vrací certifikát a
- Certifikát získaný z výše uvedeného procesu přihlášení a používaný k ověřování v jakékoli komunikaci.
Každá entita je platná po určité období (výchozí hodnota je 90 dnů), na jehož konci vyprší. Pro zajištění dalšího přístupu ke cloudovému agentu vyžaduje každý klient obnovení certifikátu a obměně tokenu.
Typy certifikátů
Arc podporuje dva typy certifikátů používaných v AKS:
- Certifikát certifikační autority cloudového agenta: Certifikát použitý k podepisování nebo ověřování klientských certifikátů. Platnost tohoto certifikátu je 365 dnů (1 rok).
- Klientské certifikáty: Certifikáty vydané certifikátem certifikační autority cloudového agenta pro klienty k ověření u cloudového agenta. Tyto certifikáty jsou obvykle platné 90 dnů.
Společnost Microsoft doporučuje, abyste clustery aktualizovali do 60 dnů od vydání nové verze, a to nejen kvůli zajištění aktualizovat interní certifikáty a tokeny, ale také abyste měli přístup k novým funkcím, opravám chyb a měli stále aktuální informace o důležitých opravách zabezpečení. Během těchto měsíčních aktualizací proces aktualizace obměňuje všechny tokeny, které nelze automaticky obměňovat během normálního provozu clusteru. Platnost certifikátu a tokenu se resetuje na výchozí 90 dnů od data aktualizace clusteru.
Zabezpečená komunikace s certifikáty v AKS povolená službou Arc
Certifikáty se používají k vytvoření zabezpečené komunikace mezi komponentami v clusteru. AKS poskytuje bezdotykové, integrované zřizování a správu certifikátů pro integrované komponenty Kubernetes. V tomto článku se dozvíte, jak zřizovat a spravovat certifikáty v AKS s povolenou službou Arc.
Certifikáty a certifikační autority
AKS generuje a používá následující certifikační autority (CA) a certifikáty.
Certifikační autorita clusteru
- Server rozhraní API má certifikační autoritu clusteru, která podepisuje certifikáty pro jednosměrnou komunikaci ze serveru ROZHRANÍ API do
kubelet
. - Každý z nich
kubelet
také vytvoří žádost o podepsání certifikátu (CSR), která je podepsána certifikační autoritou clusterukubelet
, pro komunikaci ze serveru s rozhraním API. - Úložiště hodnot klíčů etcd má certifikát podepsaný certifikační autoritou clusteru pro komunikaci z etcd na server rozhraní API.
certifikační autorita etcd
Úložiště hodnot klíčů etcd má certifikační autoritu etcd, která podepisuje certifikáty k ověřování a autorizaci replikace dat mezi replikami etcd v clusteru.
Certifikační autorita front proxy serveru
Přední proxy certifikační autorita zabezpečuje komunikaci mezi serverem rozhraní API a serverem rozhraní API rozšíření.
Zřizování certifikátů
Zřizování certifikátů pro objekt se kubelet
provádí pomocí bootstrappingu PROTOKOLU TLS. Pro všechny ostatní certifikáty použijte klíč založený na YAML a vytvoření certifikátu.
- Certifikáty jsou uložené v /etc/kubernetes/pki.
- Klíče jsou RSA 4096, EcdsaCurve: P384
Poznámka
Kořenové certifikáty jsou platné 10 let. Všechny ostatní certifikáty, které nejsou rootem, jsou krátkodobé a platí čtyři dny.
Obnovení a správa certifikátů
Jiné než kořenové certifikáty se automaticky prodloužily. Všechny certifikáty řídicí roviny pro Kubernetes s výjimkou následujících certifikátů se spravují:
- Certifikát serveru Kubelet
- Klientský certifikát Kubeconfig
Osvědčeným postupem zabezpečení je použití jednotného přihlašování služby Active Directory pro ověřování uživatelů.
Odvolání certifikátu
Odvolání certifikátu by mělo být vzácné a mělo by se provádět v době prodloužení platnosti certifikátu.
Jakmile budete mít sériové číslo certifikátu, který chcete odvolat, použijte k definování a zachování informací o odvolání vlastní prostředek Kubernetes. Každý objekt odvolání se může skládat z jedné nebo několika položek odvolání.
Pokud chcete provést odvolání, použijte jednu z následujících možností:
- Sériové číslo
- Group (Skupina)
- Název DNS
- IP adresa
Je notBefore
možné zadat čas pro odvolání pouze certifikátů vystavených před určitým časovým razítkem.
notBefore
Pokud není zadaný čas, budou odvolány všechny stávající a budoucí certifikáty odpovídající odvolání.
Poznámka
kubelet
Odvolání certifikátů serveru není v současné době k dispozici.
Pokud při odvolání použijete sériové číslo, můžete pomocí Repair-AksHciClusterCerts
příkazu PowerShellu popsaného níže uvést cluster do funkčního stavu. Pokud použijete některé z dalších polí uvedených výše, nezapomeňte zadat notBefore
čas.
apiVersion: certificates.microsoft.com/v1
kind: RenewRevocation
metadata:
name: my-renew-revocation
namespace: kube-system
spec:
description: My list of renew revocations
revocations:
- description: Revoked certificates by serial number
kind: serialnumber
notBefore: "2020-04-17T17:22:05Z"
serialNumber: 77fdf4b1033b387aaace6ce1c18710c2
- description: Revoked certificates by group
group: system:nodes
kind: Group
- description: Revoked certificates by DNS
dns: kubernetes.default.svc.
kind: DNS
- description: Revoked certificates by DNS Suffix
dns: .cluster.local
kind: DNS
- description: Revoked certificates by IP
ip: 170.63.128.124
kind: IP