Często zadawane pytania dotyczące węzłów poufnego przetwarzania w usłudze Azure Kubernetes Service (AKS)

Ten artykuł zawiera często zadawane pytania dotyczące poufnych węzłów obliczeniowych opartych na technologii Intel SGX w usłudze Azure Kubernetes Service (AKS). Jeśli masz dodatkowe pytania, wyślij wiadomość e-mail na adres acconaks@microsoft.com.

Produkt

Czy poufne węzły obliczeniowe w usłudze AKS są dostępne do użytku produkcyjnego?

Tak, w przypadku węzłów enklawy Intel SGX.

Czy mogę włączyć przyspieszoną sieć za pomocą klastrów usługi AKS do przetwarzania poufnego platformy Azure?

Tak, węzły maszyn wirtualnych DCSv3 obsługują przyspieszoną sieć. Maszyny wirtualne DCSv2 nie.

Jaka wersja sterownika Intel SGX znajduje się w obrazie usługi AKS dla węzłów poufnych?

Obecnie maszyny wirtualne DCSv2/DCSv3 do przetwarzania poufnego platformy Azure są instalowane z procesorem Intel SGX DCAP 1.33.2

Czy mogę wstrzyknąć skrypty instalacji/dostosować sterowniki do węzłów aprowizowania przez usługę AKS?

Nie Węzły poufne obliczeniowe oparte na aKS-Engine obsługują poufne węzły obliczeniowe, które umożliwiają instalację niestandardową i mają pełną kontrolę nad płaszczyzną sterowania platformy Kubernetes.

Czy można uruchamiać węzły ACC z innymi standardowymi jednostkami SKU usługi AKS (utworzyć heterogeniczny klaster puli węzłów)?

Tak, można uruchamiać różne pule węzłów w ramach tego samego klastra usługi AKS, w tym węzłów ACC. Aby zastosować aplikacje enklawy w określonej puli węzłów, rozważ dodanie selektorów węzłów lub zastosowanie limitów EPC. Więcej informacji na temat przewodników Szybki start w węzłach poufnych można znaleźć tutaj.

Czy można uruchamiać węzły systemu Windows i kontenery systemu Windows z usługą ACC?

Obecnie nie jest to możliwe. Skontaktuj się z zespołem produktu pod adresem acconaks@microsoft.com , jeśli masz węzły systemu Windows lub kontener.

Czy nadal mogę planować i uruchamiać kontenery inne niż enklawy w poufnych węzłach obliczeniowych?

Tak. Maszyny wirtualne mają również zwykłą pamięć, która może uruchamiać standardowe obciążenia kontenerów. Przed podjęciem decyzji o modelach wdrażania należy wziąć pod uwagę model zabezpieczeń i zagrożeń aplikacji.

Jaka jest jednostka SKU maszyny wirtualnej, jaką należy wybrać dla węzłów poufnego przetwarzania?

Jednostki SKU DCSv2/DCsv3. Więcej informacji na temat dcSv2 i DCSv3 są dostępne w obsługiwanych regionach

Czy mogę aprowizować usługę AKS za pomocą pul węzłów DCSv2 za pośrednictwem witryny Azure Portal?

Tak. Interfejs wiersza polecenia platformy Azure może być również używany jako alternatywa, jak opisano tutaj.

Jaka wersja systemu Ubuntu i generowanie maszyn wirtualnych są obsługiwane?

18.04 w wersji 2. generacji.

Jakie są znane bieżące ograniczenia produktu?

  • Obsługuje tylko węzły maszyn wirtualnych z systemem Ubuntu 18.04 Gen 2
  • Brak obsługi węzłów systemu Windows ani obsługa kontenerów systemu Windows
  • Skalowanie automatyczne zasobnika poziomego opartego na pamięci EPC nie jest obsługiwane. Obsługiwane jest użycie procesora CPU i regularnego skalowania opartego na pamięci.
  • Usługa Dev Spaces w usłudze AKS dla poufnych aplikacji nie jest obecnie obsługiwana

Czy można aprowizować usługę AKS za pomocą pul węzłów DCSv2/DCSv3 za pośrednictwem witryny Azure Portal?

Tak. Interfejs wiersza polecenia platformy Azure może być również używany jako alternatywa, jak opisano tutaj.

Programowanie i wdrażanie

Czy mogę przenieść istniejące konteneryzowane aplikacje i uruchomić je w usłudze AKS za pomocą usługi Azure Confidential Computing?

Tak, udostępnisz oprogramowanie otoki SGX do uruchomienia w enklawie Intel SGX, przejrzyj stronę poufnych kontenerów, aby uzyskać więcej informacji na temat włączania platformy.

Czy należy używać obrazu podstawowego platformy Docker, aby rozpocząć pracę z aplikacjami enklawy?

Różne elementy włączania (niezależnych dostawców oprogramowania i projektów systemu operacyjnego) zapewniają sposoby włączania kontenerów poufnych. Przejrzyj stronę poufnych kontenerów, aby uzyskać więcej szczegółów i poszczególnych odwołań do implementacji.

Pojęcia dotyczące poufnego kontenera

Co to jest zaświadczenie i jak możemy zaświadczać o aplikacjach działających w enklawie?

Zaświadczanie to proces demonstrowania i weryfikowania, czy element oprogramowania został prawidłowo utworzone na określonej platformie sprzętowej. Gwarantuje również, że jego dowody są weryfikowalne w celu zapewnienia, że działa na bezpiecznej platformie i nie zostały naruszone. Dowiedz się więcej na temat sposobu zaświadczania dla aplikacji enklawy.

Co zrobić, jeśli rozmiar kontenera jest większy niż dostępna pamięć EPC?

Pamięć EPC ma zastosowanie do części aplikacji, która jest zaprogramowana do wykonania w enklawie. Całkowity rozmiar kontenera nie jest właściwym sposobem porównania go z maksymalną dostępną pamięcią EPC. W rzeczywistości maszyny DCSv2 z SGX zezwalają na maksymalną pamięć maszyny wirtualnej wynoszącą 32 GB, gdzie nieufna część aplikacji będzie używana. Jeśli jednak kontener zużywa więcej niż dostępna pamięć EPC, może to mieć wpływ na wydajność części programu uruchomionego w enklawie.

Aby lepiej zarządzać pamięcią EPC w węzłach roboczych, rozważ zarządzanie limitami opartymi na pamięci EPC za pośrednictwem platformy Kubernetes. Postępuj zgodnie z poniższym przykładem jako odwołanie.

Uwaga

Poniższy przykład ściąga publiczny obraz kontenera z usługi Docker Hub. Zalecamy skonfigurowanie wpisu tajnego ściągania w celu uwierzytelniania przy użyciu konta usługi Docker Hub zamiast tworzenia anonimowego żądania ściągnięcia. Aby zwiększyć niezawodność podczas pracy z zawartością publiczną, zaimportuj obraz i zarządzaj nim w prywatnym rejestrze kontenerów platformy Azure. Dowiedz się więcej o pracy z obrazami publicznymi.

apiVersion: batch/v1
kind: Job
metadata:
  name: sgx-test
  labels:
    app: sgx-test
spec:
  template:
    metadata:
      labels:
        app: sgx-test
    spec:
      containers:
      - name: sgxtest
        image: oeciteam/sgx-test: 1.0
        resources:
          limits:
            sgx.intel.com/sgx_epc_mem_in_MiB: 10 # This limit will automatically place the job into confidential computing node. Alternatively, you can target deployment to node pools
      restartPolicy: Never
  backoffLimit: 0

Co się stanie, jeśli moja enklawa zużywa więcej niż maksymalną dostępną pamięć EPC?

Łączna dostępna pamięć EPC jest współdzielona między aplikacjami enklawy w tych samych maszynach wirtualnych lub węzłach roboczych. Jeśli aplikacja używa pamięci EPC więcej niż jest dostępna, może to mieć wpływ na wydajność aplikacji. Z tego powodu zalecamy ustawienie tolerancji dla aplikacji w pliku yaml wdrożenia, aby lepiej zarządzać dostępną pamięcią EPC na węzły procesu roboczego, jak pokazano w powyższych przykładach. Alternatywnie możesz zawsze wybrać przejście w górę na maszynach wirtualnych puli węzłów roboczych lub dodać więcej węzłów.

Dlaczego nie mogę wykonać rozwidlenia () i exec do uruchamiania wielu procesów w mojej aplikacji enklawy?

Obecnie maszyny wirtualne jednostki SKU DCsv2 do przetwarzania poufnego platformy Azure obsługują jedną przestrzeń adresową dla programu wykonywanego w enklawie. Pojedynczy proces jest bieżącym ograniczeniem zaprojektowanym wokół wysokich zabezpieczeń. Jednak poufne osoby obsługujące kontenery mogą mieć alternatywne implementacje, aby przezwyciężyć to ograniczenie.

Czy muszę zainstalować woluminy sterowników w pliku yaml wdrożenia?

Nie Produkt udostępnia dodatek ACC, który zawiera (confcom) pomoże Ci w tym. Przeczytaj więcej na temat szczegółów wdrożenia tutaj.

Czy można zmienić bieżącą wersję dver intel SGX DCAP w usłudze AKS?

Nie Aby wykonać dowolne instalacje niestandardowe, zalecamy wybranie wdrożeń węzłów procesu roboczego poufnego przetwarzania usługi AKS-Engine.

Czy tylko podpisane i zaufane obrazy zostaną załadowane w enklawie na potrzeby poufnego przetwarzania?

Nie natywnie podczas inicjowania enklawy, ale tak za pomocą sygnatury procesu zaświadczania można zweryfikować. Zapoznaj się tutaj.

Czy podpisywanie kontenerów umożliwia ochronę integralności kodu w kontenerach poufnych?

Kontenery poufne umożliwiają podpisywanie kodu enklawy, ale nie samego kontenera platformy Docker. Za pomocą kodu enklawy (który jest zazwyczaj podstawowym kodem aplikacji w języku Java, Python itp.), można zweryfikować za pomocą zaświadczania szczegółów MRSIGNER kodu enklawy, zanim będzie można ufać kodowi i środowisku wykonywania za pośrednictwem przepływu zaświadczania.

Następne kroki

Przejrzyj stronę poufnych kontenerów, aby uzyskać więcej informacji na temat poufnych kontenerów.