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 clusteru kubelet , 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 

Další kroky