Samouczek: przygotowywanie wdrożenia dla poufnego kontenera w usłudze Azure Container Instances
W usłudze Azure Container Instances można używać kontenerów poufnych na platformie bezserwerowej do uruchamiania aplikacji kontenerów w środowisku opartym na sprzęcie i zaświadczanym zaufanym środowisku wykonywania (TEE). Ta funkcja może pomóc w ochronie danych w użyciu i zapewnia szyfrowanie w pamięci za pomocą bezpiecznego zagnieżdżonego stronicowania.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Utwórz szablon usługi Azure Resource Manager (szablon usługi ARM) dla poufnej grupy kontenerów.
- Generowanie zasad wymuszania poufnego przetwarzania (CCE).
- Wdrażanie poufnej grupy kontenerów na platformie Azure.
Wymagania wstępne
Aby ukończyć ten samouczek, musisz spełnić następujące wymagania:
Interfejs wiersza polecenia platformy Azure: na komputerze lokalnym musi być zainstalowany interfejs wiersza polecenia platformy Azure w wersji 2.44.1 lub nowszej. Aby znaleźć swoją wersję, uruchom polecenie
az --version
. Jeśli konieczna będzie instalacja lub uaktualnienie interfejsu, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.Rozszerzenie confcom interfejsu wiersza polecenia platformy Azure: aby wygenerować zasady wymuszania poufnego przetwarzania, musisz mieć zainstalowane rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 0.30 lub nowszej.
az extension add -n confcom
Docker: potrzebujesz platformy Docker zainstalowanej lokalnie. Platforma Docker udostępnia pakiety, które konfigurują środowisko platformy Docker w systemach macOS, Windows i Linux.
W tym samouczku założono podstawową wiedzę na temat podstawowych pojęć platformy Docker, takich jak kontenery, obrazy kontenerów i podstawowe
docker
polecenia. Aby uzyskać podstawowe informacje na temat platformy Docker i kontenerów, zapoznaj się z artykułem Docker overview (Przegląd platformy Docker).
Ważne
Ponieważ usługa Azure Cloud Shell nie zawiera demona platformy Docker, musisz zainstalować zarówno interfejs wiersza polecenia platformy Azure, jak i aparat platformy Docker na komputerze lokalnym, aby ukończyć ten samouczek. W tym samouczku nie można użyć usługi Azure Cloud Shell.
Tworzenie szablonu usługi ARM dla grupy kontenerów usługi Container Instances
W tym samouczku wdrożysz aplikację Hello World, która generuje raport zaświadczania o sprzęcie. Zacznij od utworzenia szablonu usługi ARM z zasobem grupy kontenerów w celu zdefiniowania właściwości tej aplikacji. Następnie użyjesz tego szablonu usługi ARM z narzędziami confcom interfejsu wiersza polecenia platformy Azure, aby wygenerować zasady CCE na potrzeby zaświadczania.
W tym samouczku użyto tego szablonu usługi ARM jako przykładu . Aby wyświetlić kod źródłowy tej aplikacji, zobacz Azure Confidential Container Instances Hello World.
Przykładowy szablon dodaje dwie właściwości do definicji zasobu Container Instances, aby grupa kontenerów została poufna:
sku
: umożliwia wybranie między wdrożeniami grup kontenerów poufnych i standardowych. Jeśli nie dodasz tej właściwości do zasobu, grupa kontenerów jest standardowym wdrożeniem.confidentialComputeProperties
: umożliwia przekazanie niestandardowych zasad CCE na potrzeby zaświadczania grupy kontenerów. Jeśli nie dodasz tego obiektu do zasobu, składniki oprogramowania uruchamiane w grupie kontenerów nie będą weryfikowane.
Uwaga
Parametr ccePolicy
w obszarze confidentialComputeProperties
jest pusty. Wypełnisz je podczas generowania zasad w dalszej części samouczka.
Użyj preferowanego edytora tekstów, aby zapisać ten szablon usługi ARM na komputerze lokalnym jako template.json.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"type": "string",
"defaultValue": "helloworld",
"metadata": {
"description": "Name for the container group"
}
},
"location": {
"type": "string",
"defaultValue": "North Europe",
"metadata": {
"description": "Location for all resources."
}
},
"image": {
"type": "string",
"defaultValue": "mcr.microsoft.com/acc/samples/aci/helloworld:2.8",
"metadata": {
"description": "Container image to deploy. Should be of the form repoName/imagename:tag for images stored in public Docker Hub, or a fully qualified URI for other registries. Images from private registries require additional registry credentials."
}
},
"port": {
"type": "int",
"defaultValue": 80,
"metadata": {
"description": "Port to open on the container and the public IP address."
}
},
"cpuCores": {
"type": "int",
"defaultValue": 1,
"metadata": {
"description": "The number of CPU cores to allocate to the container."
}
},
"memoryInGb": {
"type": "int",
"defaultValue": 1,
"metadata": {
"description": "The amount of memory to allocate to the container in gigabytes."
}
},
"restartPolicy": {
"type": "string",
"defaultValue": "Never",
"allowedValues": [
"Always",
"Never",
"OnFailure"
],
"metadata": {
"description": "The behavior of Azure runtime if container has stopped."
}
}
},
"resources": [
{
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2023-05-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"properties": {
"confidentialComputeProperties": {
"ccePolicy": ""
},
"containers": [
{
"name": "[parameters('name')]",
"properties": {
"image": "[parameters('image')]",
"ports": [
{
"port": "[parameters('port')]",
"protocol": "TCP"
}
],
"resources": {
"requests": {
"cpu": "[parameters('cpuCores')]",
"memoryInGB": "[parameters('memoryInGb')]"
}
}
}
}
],
"sku": "Confidential",
"osType": "Linux",
"restartPolicy": "[parameters('restartPolicy')]",
"ipAddress": {
"type": "Public",
"ports": [
{
"port": "[parameters('port')]",
"protocol": "TCP"
}
]
}
}
}
],
"outputs": {
"containerIPv4Address": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name'))).ipAddress.ip]"
}
}
}
Tworzenie niestandardowych zasad CCE
Za pomocą utworzonego szablonu usługi ARM i rozszerzenia confcom interfejsu wiersza polecenia platformy Azure można wygenerować niestandardowe zasady CCE. Zasady CCE są używane do zaświadczania. Narzędzie pobiera szablon usługi ARM jako dane wejściowe w celu wygenerowania zasad. Zasady wymuszają określone obrazy kontenerów, zmienne środowiskowe, instalacji i polecenia, które można następnie zweryfikować po uruchomieniu grupy kontenerów. Aby uzyskać więcej informacji na temat rozszerzenia interfejsu wiersza polecenia platformy Azure, zobacz dokumentację w witrynie GitHub.
Aby wygenerować zasady CCE, uruchom następujące polecenie, używając szablonu usługi ARM jako danych wejściowych:
az confcom acipolicygen -a .\template.json
Po zakończeniu tego polecenia ciąg Base64 wygenerowany jako dane wyjściowe zostanie automatycznie wyświetlony we
ccePolicy
właściwości szablonu usługi ARM.
Wdrażanie szablonu
W poniższych krokach użyjesz witryny Azure Portal do wdrożenia szablonu. Możesz również użyć programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST. Aby dowiedzieć się więcej o innych metodach wdrażania, zobacz Wdrażanie szablonów.
Wybierz przycisk Wdróż na platformie Azure, aby zalogować się na platformie Azure i rozpocząć wdrażanie usługi Container Instances.
Wybierz pozycję Utwórz własny szablon w edytorze.
Wyświetlony kod JSON szablonu jest w większości pusty.
Wybierz pozycję Załaduj plik i przekaż template.json, które zostały zmodyfikowane przez dodanie zasad CCE w poprzednich krokach.
Wybierz pozycję Zapisz.
Wybierz lub wprowadź następujące wartości:
- Subskrypcja: wybierz subskrypcję platformy Azure.
- Grupa zasobów: wybierz pozycję Utwórz nową, wprowadź unikatową nazwę grupy zasobów, a następnie wybierz przycisk OK.
- Nazwa: zaakceptuj wygenerowaną nazwę wystąpienia lub wprowadź nazwę.
- Lokalizacja: Wybierz lokalizację dla grupy zasobów. Wybierz region, w którym są obsługiwane poufne kontenery. Przykład: Europa Północna.
- Obraz: Zaakceptuj domyślną nazwę obrazu. Ten przykładowy obraz systemu Linux przedstawia zaświadczenie sprzętowe.
Zaakceptuj wartości domyślne pozostałych właściwości, a następnie wybierz pozycję Przejrzyj i utwórz.
Przejrzyj warunki i postanowienia. Jeśli zgadzasz się, wybierz pozycję Zgadzam się na powyższe warunki i postanowienia.
Poczekaj, aż zostanie wyświetlone powiadomienie Wdrożenie zakończyło się pomyślnie . Potwierdza to, że wystąpienie zostało pomyślnie utworzone.
Przeglądanie wdrożonych zasobów
W poniższych krokach użyjesz witryny Azure Portal, aby przejrzeć właściwości wystąpienia kontenera. Możesz również użyć narzędzia, takiego jak interfejs wiersza polecenia platformy Azure.
W portalu wyszukaj pozycję Container Instances, a następnie wybierz utworzone wystąpienie kontenera.
Na stronie Przegląd zanotuj stan wystąpienia i jego adresu IP.
Gdy stan wystąpienia to Uruchomione, przejdź do adresu IP w przeglądarce.
Obecność raportu zaświadczania poniżej logo usługi Azure Container Instances potwierdza, że kontener jest uruchomiony na sprzęcie obsługującym środowisko TEE.
Jeśli wdrażasz na sprzęcie, który nie obsługuje usługi TEE (na przykład wybierając region, w którym poufne wystąpienia kontenerów nie są dostępne), nie zostanie wyświetlony raport zaświadczania.
Powiązana zawartość
Po wdrożeniu poufnej grupy kontenerów w usłudze Container Instances możesz dowiedzieć się więcej na temat wymuszania zasad: