Kurz: Příprava nasazení pro důvěrný kontejner ve službě Azure Container Instances
Ve službě Azure Container Instances můžete pomocí důvěrných kontejnerů na bezserverové platformě spouštět kontejnerové aplikace v hardwarovém a ověřeném důvěryhodném spouštěcím prostředí (TEE). Tato funkce může pomoct chránit užitá data a poskytuje šifrování v paměti prostřednictvím zabezpečeného vnořeného stránkování.
V tomto kurzu se naučíte:
- Vytvořte šablonu Azure Resource Manageru (šablonu ARM) pro důvěrnou skupinu kontejnerů.
- Vygenerujte zásady vynucení důvěrných výpočetních operací (CCE).
- Nasaďte důvěrnou skupinu kontejnerů do Azure.
Požadavky
K dokončení tohoto kurzu musíte splnit následující požadavky:
Azure CLI: Na místním počítači musíte mít nainstalované Rozhraní příkazového řádku Azure CLI verze 2.44.1 nebo novější. Pokud chcete najít svou verzi, spusťte
az --version
příkaz . Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace rozhraní příkazového řádku Azure CLI.Rozšíření Confcom pro Azure CLI: Abyste mohli generovat důvěrné zásady vynucení výpočetních prostředků, musíte mít nainstalované rozšíření Azure CLI confcom verze 0.30 nebo novější.
az extension add -n confcom
Docker: Potřebujete Docker nainstalovaný místně. Docker poskytuje balíčky, které nakonfigurují prostředí Dockeru v systému macOS, Windows a Linux.
V tomto kurzu se předpokládá základní znalost základních konceptů Dockeru, jako jsou kontejnery, image kontejnerů a základní
docker
příkazy. Základní informace o Dockeru a kontejnerech najdete v článku Docker Overview (Přehled Dockeru).
Důležité
Vzhledem k tomu, že Azure Cloud Shell neobsahuje démona Dockeru, musíte nainstalovat Azure CLI i Modul Dockeru do místního počítače , abyste mohli absolvovat tento kurz. Pro účely tohoto kurzu nemůžete použít Azure Cloud Shell.
Vytvoření šablony ARM pro skupinu kontejnerů Container Instances
V tomto kurzu nasadíte aplikaci Hello World, která generuje sestavu ověření hardwaru. Začnete vytvořením šablony ARM s prostředkem skupiny kontejnerů, která definuje vlastnosti této aplikace. Tuto šablonu ARM pak použijete s nástroji azure CLI confcom k vygenerování zásad CCE pro ověření identity.
Tento kurz používá tuto šablonu ARM jako příklad. Pokud chcete zobrazit zdrojový kód pro tuto aplikaci, přečtěte si téma Azure Confidential Container Instances Hello World.
Ukázková šablona přidá do definice prostředku Container Instances dvě vlastnosti, aby byla skupina kontejnerů důvěrná:
sku
: Umožňuje vybrat mezi důvěrnými a standardními nasazeními skupin kontejnerů. Pokud tuto vlastnost do prostředku nepřidáte, skupina kontejnerů bude standardním nasazením.confidentialComputeProperties
: Umožňuje předat vlastní zásady CCE pro ověření vaší skupiny kontejnerů. Pokud tento objekt do prostředku nepřidáte, softwarové komponenty, které běží v rámci skupiny kontejnerů, nebudou ověřeny.
Poznámka:
Parametr ccePolicy
v části confidentialComputeProperties
je prázdný. Vyplníte ho, až zásady vygenerujete později v kurzu.
Pomocí upřednostňovaného textového editoru uložte tuto šablonu ARM na místní počítač 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/public/acc/samples/aci/helloworld:2.7",
"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]"
}
}
}
Vytvoření vlastní zásady CCE
Pomocí šablony ARM, kterou jste vytvořili a rozšíření Confcom pro Azure CLI, můžete vygenerovat vlastní zásady CCE. Zásady CCE se používají k ověření identity. Nástroj vezme šablonu ARM jako vstup pro vygenerování zásady. Zásada vynucuje konkrétní image kontejneru, proměnné prostředí, připojení a příkazy, které se pak dají ověřit při spuštění skupiny kontejnerů. Další informace o rozšíření Confcom v Azure CLI najdete v dokumentaci na GitHubu.
Pokud chcete vygenerovat zásadu CCE, spusťte následující příkaz pomocí šablony ARM jako vstupu:
az confcom acipolicygen -a .\template.json
Po dokončení tohoto příkazu se řetězec Base64 vygenerovaný jako výstup automaticky zobrazí ve
ccePolicy
vlastnosti šablony ARM.
Nasazení šablony
V následujících krocích nasadíte šablonu pomocí webu Azure Portal. Můžete také použít Azure PowerShell, Azure CLI nebo rozhraní REST API. Další informace o dalších metodách nasazení najdete v tématu Nasazení šablon.
Vyberte tlačítko Nasadit do Azure, abyste se přihlásili k Azure a zahájili nasazení služby Container Instances.
Vyberte Vytvořit vlastní šablonu v editoru.
Formát JSON šablony, který se zobrazí, je většinou prázdný.
Vyberte Načíst soubor a nahrajte template.json, které jste upravili přidáním zásad CCE v předchozích krocích.
Zvolte Uložit.
Vyberte a zadejte následující hodnoty:
- Předplatné: Vyberte předplatné Azure.
- Skupina prostředků: Vyberte Vytvořit nový, zadejte jedinečný název skupiny prostředků a pak vyberte OK.
- Název: Přijměte vygenerovaný název instance nebo zadejte název.
- Umístění: Vyberte umístění pro skupinu prostředků. Zvolte oblast, ve které se podporují důvěrné kontejnery. Příklad: Severní Evropa.
- Obrázek: Přijměte výchozí název image. Tato ukázková image Linuxu zobrazuje ověření hardwaru.
Přijměte výchozí hodnoty pro zbývající vlastnosti a pak vyberte Zkontrolovat a vytvořit.
Přečtěte si podmínky a ujednání. Pokud souhlasíte, vyberte Souhlasím s podmínkami a ujednáními uvedenými výše.
Počkejte, až se zobrazí oznámení o úspěšném nasazení. Potvrdí, že jste instanci úspěšně vytvořili.
Kontrola nasazených prostředků
V následujících krocích pomocí webu Azure Portal zkontrolujete vlastnosti instance kontejneru. Můžete také použít nástroj, jako je Azure CLI.
Na portálu vyhledejte službu Container Instances a pak vyberte instanci kontejneru, kterou jste vytvořili.
Na stránce Přehled si poznamenejte stav instance a její IP adresy.
Pokud je instance spuštěná, přejděte v prohlížeči na IP adresu.
Přítomnost sestavy ověření identity pod logem Azure Container Instances potvrzuje, že kontejner běží na hardwaru, který podporuje TEE.
Pokud nasadíte na hardware, který nepodporuje TEE (například výběrem oblasti, ve které nejsou k dispozici důvěrné instance kontejnerů), nezobrazí se žádná sestava ověření identity.
Související obsah
Teď, když jste nasadili důvěrnou skupinu kontejnerů ve službě Container Instances, najdete další informace o tom, jak se zásady vynucují: