Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Container Instances'ta, kapsayıcı uygulamalarını donanım tabanlı ve güvenilir bir güvenilir yürütme ortamında (TEE) çalıştırmak için sunucusuz platformdaki gizli kapsayıcıları kullanabilirsiniz. Bu özellik kullanımdaki verilerin korunmasına yardımcı olabilir ve Güvenli İç İçe Disk Belleği aracılığıyla bellek içi şifreleme sağlar.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Gizli kapsayıcı grubu için bir Azure Resource Manager şablonu (ARM şablonu) oluşturun.
- Gizli bilgi işlem uygulama (CCE) ilkesi oluşturun.
- Gizli kapsayıcı grubunu Azure'a dağıtın.
Önkoşullar
Bu öğreticiyi tamamlamak için aşağıdaki gereksinimleri karşılamanız gerekir:
Azure CLI: Yerel bilgisayarınızda Azure CLI sürüm 2.44.1 veya üzeri yüklü olmalıdır. Sürümünüzü bulmak için komutunu çalıştırın
az --version. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI'yı yükleme.Azure CLI confcom uzantısı: Gizli bilgi işlem uygulama ilkeleri oluşturmak için Azure CLI confcom uzantısı sürüm 0.30+ yüklü olmalıdır.
az extension add -n confcomDocker: Docker'ın yerel olarak yüklenmesi gerekir. Docker, macOS, Windows ve Linux üzerinde Docker ortamını yapılandıran paketler sağlar.
Bu öğretici, kapsayıcılar, kapsayıcı görüntüleri ve temel
dockerkomutlar gibi temel Docker kavramlarının anlaşıldığını varsayar. Docker ve kapsayıcı temel bilgileri ile ilgili giriş yapmak için Docker’a genel bakış bölümüne bakın.
Önemli
Azure Cloud Shell Docker daemon'ını içermediğinden, bu öğreticiyi tamamlamak için yerel bilgisayarınıza hem Azure CLI hem de Docker Altyapısı'nı yüklemeniz gerekir. Bu öğretici için Azure Cloud Shell'i kullanamazsınız.
Kapsayıcı Örnekleri kapsayıcı grubu için ARM şablonu oluşturma
Bu öğreticide, donanım kanıtlama raporu oluşturan bir Merhaba Dünya uygulaması dağıtacaksınız. Bu uygulamanın özelliklerini tanımlamak için kapsayıcı grubu kaynağıyla bir ARM şablonu oluşturarak başlarsınız. Ardından bu ARM şablonunu Azure CLI confcom araçlarıyla kullanarak kanıtlama için bir CCE ilkesi oluşturursunuz.
Bu öğreticide örnek olarak bu ARM şablonu kullanılmaktadır. Bu uygulamanın kaynak kodunu görüntülemek için bkz. Azure Confidential Container Instances Hello World.
Örnek şablon, kapsayıcı grubunu gizli hale getirmek için Kapsayıcı Örnekleri kaynak tanımına iki özellik ekler:
-
sku: Gizli ve standart kapsayıcı grubu dağıtımları arasında seçim yapmaya olanak tanır. Bu özelliği kaynağa eklemezseniz kapsayıcı grubu standart bir dağıtımdır. -
confidentialComputeProperties: Kapsayıcı grubunuzun kanıtlaması için özel bir CCE ilkesi kullanmanızı sağlar. Bu nesneyi kaynağa eklemezseniz, kapsayıcı grubu içinde çalışan yazılım bileşenleri doğrulanmaz.
Not
altındaki ccePolicyconfidentialComputeProperties parametresi boş. Öğretici sırasında politikayı daha sonra oluşturarak dolduracaksınız.
Bu ARM şablonunu yerel makinenize template.json olarak kaydetmek için tercih ettiğiniz metin düzenleyicisini kullanın.
{
"$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]"
}
}
}
Özel CCE ilkesi oluşturma
Oluşturduğunuz ARM şablonu ve Azure CLI confcom uzantısı ile özel bir CCE ilkesi oluşturabilirsiniz. CCE ilkesi kanıtlama için kullanılır. Araç, ARM şablonunu politika oluşturmak için giriş olarak alır. İlke, kapsayıcı grubu başlatıldığında doğrulanabilen belirli kapsayıcı görüntülerini, ortam değişkenlerini, bağlantı noktalarını ve komutları zorunlu kılar. Azure CLI confcom uzantısı hakkında daha fazla bilgi için GitHub belgelerine bakın.
CCE ilkesini oluşturmak için, giriş olarak ARM şablonunu kullanarak aşağıdaki komutu çalıştırın:
az confcom acipolicygen -a .\template.jsonBu komut tamamlandığında, çıkış olarak oluşturulan bir Base64 dizesi ARM şablonunun
ccePolicyözelliğinde otomatik olarak görünür.
Şablonu dağıtma
Aşağıdaki adımlarda, şablonu dağıtmak için Azure portalını kullanırsınız. Azure PowerShell, Azure CLI veya REST API'yi de kullanabilirsiniz. Diğer dağıtım yöntemleri hakkında bilgi edinmek için bkz . Şablonları dağıtma.
Azure'da oturum açmak ve Kapsayıcı Örnekleri dağıtımına başlamak için Azure'a Dağıt düğmesini seçin.
Düzenleyicide kendi şablonunuzu oluşturun'u seçin.
Görüntülenen JSON şablonu çoğunlukla boş.
Dosya yükle öğesini seçin ve önceki adımlarda CCE ilkesini ekleyerek değiştirdiğiniz template.json'u karşıya yükleyin.
Kaydet'i seçin.
Aşağıdaki değerleri seçin veya girin:
- Abonelik: Bir Azure aboneliği seçin.
- Kaynak grubu: Yeni oluştur'u seçin, kaynak grubu için benzersiz bir ad girin ve tamam'ı seçin.
- Ad: Örnek için oluşturulan adı kabul edin veya bir ad girin.
- Konum: Kaynak grubu için bir konum seçin. Gizli kapsayıcıların desteklendiği bir bölge seçin. Örnek: Kuzey Avrupa.
- Resim: Varsayılan görüntü adını kabul edin. Bu örnek Linux görüntüsü bir donanım kanıtlaması görüntüler.
Kalan özellikler için varsayılan değerleri kabul edin ve gözden geçir + oluştur'u seçin.
Hüküm ve koşulları gözden geçirin. Kabul ediyorsanız, yukarıda belirtilen hüküm ve koşulları kabul ediyorum'ı seçin.
Dağıtım başarılı bildirimi görünene kadar bekleyin. Örneği başarıyla oluşturduğunuzu onaylar.
Dağıtılan kaynakları gözden geçirme
Aşağıdaki adımlarda Azure portalını kullanarak kapsayıcı örneğinin özelliklerini gözden geçireceksiniz. Azure CLI gibi bir araç da kullanabilirsiniz.
Portalda Kapsayıcı Örnekleri'ni arayın ve oluşturduğunuz kapsayıcı örneğini seçin.
Genel Bakış sayfasında, örneğin durumunu ve IP adresini not edin.
Örneğin durumunun Çalışıyor olması durumunda, tarayıcınızdan IP adresine gidin.
Azure Container Instances logosunun altındaki kanıtlama raporunun varlığı, kapsayıcının TEE'yi destekleyen donanımlarda çalıştığını doğrular.
TEE'yi desteklemeyen bir donanıma dağıtım yaparsanız (örneğin, Gizli Kapsayıcı Örneklerinin kullanılamadığı bir bölge seçerek), kanıtlama raporu görüntülenmez.
İlgili içerik
Artık Kapsayıcı Örnekleri üzerinde gizli bir konteyner grubu dağıttığınıza göre, politikaların nasıl uygulandığı hakkında daha fazla bilgi edinebilirsiniz.