Üzembehelyezési adatok titkosítása
Ha Azure Container Instances (ACI) erőforrásokat futtat a felhőben, az ACI szolgáltatás gyűjti és megőrzi a tárolókhoz kapcsolódó adatokat. Az ACI automatikusan titkosítja ezeket az adatokat, amikor azokat a felhőben megőrzik. Ez a titkosítás védi az adatokat, hogy megfeleljen a szervezet biztonsági és megfelelőségi kötelezettségvállalásainak. Az ACI azt is lehetővé teszi, hogy titkosítsa ezeket az adatokat a saját kulcsával, így nagyobb mértékben szabályozhatja az ACI-üzemelő példányokhoz kapcsolódó adatokat.
Tudnivalók az ACI-adattitkosításról
Az ACI-ben lévő adatok titkosítása és visszafejtése 256 bites AES-titkosítással történik. Minden ACI-üzemelő példány esetében engedélyezve van, és nem kell módosítania az üzembe helyezést vagy a tárolókat a titkosítás előnyeinek kihasználásához. Ez magában foglalja az üzembe helyezés metaadatait, a környezeti változókat, a tárolókba átadott kulcsokat, valamint a tárolók leállítása után a naplókat, hogy továbbra is láthassa őket. A titkosítás nincs hatással a tárolócsoport teljesítményére, és nincs további költség a titkosításhoz.
Támaszkodhat a Microsoft által felügyelt kulcsokra a tárolóadatok titkosításához, vagy kezelheti a titkosítást saját kulcsaival. Az alábbi táblázat az alábbi lehetőségeket hasonlítja össze:
Microsoft által felügyelt kulcsok | Felhasználó által kezelt kulcsok | |
---|---|---|
Titkosítási/visszafejtési műveletek | Azure | Azure |
Kulcstároló | Microsoft-kulcstároló | Azure Key Vault |
Kulcsrotálási felelősség | Microsoft | Ügyfél |
Kulcshozzáférés | Csak Microsoft | Microsoft, ügyfél |
Ez a cikk két folyamatot tekint át az adatok ügyfél által felügyelt kulccsal történő titkosításához:
- Adatok titkosítása egy ügyfél által felügyelt kulccsal, amely egy standard Azure-Key Vault
- Titkosítsa az adatokat egy ügyfél által felügyelt kulccsal, amely egy hálózat által védett Azure-Key Vault van tárolva, és engedélyezve van a Megbízható szolgáltatások szolgáltatás.
Adatok titkosítása egy ügyfél által felügyelt kulccsal, amely egy standard Azure-Key Vault
Előfeltételek
Használja a Bash-környezetet az Azure Cloud Shell. További információ: Rövid útmutató a Bashhez az Azure Cloud Shell-ben.
Ha helyileg szeretné futtatni a PARANCSSOR-referenciaparancsokat, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
Szolgáltatásnév létrehozása az ACI-hez
Az első lépés annak biztosítása, hogy az Azure-bérlő rendelkezik egy szolgáltatásnévvel, amely engedélyeket ad a Azure Container Instances szolgáltatásnak.
Fontos
A következő parancs futtatásához és a szolgáltatásnév sikeres létrehozásához győződjön meg arról, hogy rendelkezik szolgáltatásnév-létrehozási engedéllyel a bérlőben.
Az alábbi CLI-parancs beállítja az ACI SP-t az Azure-környezetben:
az ad sp create --id 6bb8e274-af5d-4df2-98a3-4fd78b4cafd9
A parancs futtatásának kimenetében egy olyan szolgáltatásnévnek kell megjelennie, amely a következőhöz van beállítva: "displayName": "Azure Container Instance Service".
Ha nem tudja sikeresen létrehozni a szolgáltatásnevet:
- győződjön meg arról, hogy rendelkezik erre vonatkozó engedélyekkel a bérlőben
- ellenőrizze, hogy létezik-e már szolgáltatásnév a bérlőben az ACI-ben való üzembe helyezéshez. Ezt a szolgáltatásnév futtatásával
az ad sp show --id 6bb8e274-af5d-4df2-98a3-4fd78b4cafd9
és használatával teheti meg.
Key Vault-erőforrás létrehozása
Azure Key Vault létrehozása Azure Portal, Azure CLI vagy Azure PowerShell használatával.
A kulcstartó tulajdonságaihoz használja az alábbi irányelveket:
- Név: Egy egyedi nevet kell megadnia.
- Előfizetés: Válassza ki az előfizetést.
- Az Erőforráscsoport területen válasszon ki egy meglévő erőforráscsoportot, vagy hozzon létre újat, és adjon meg egy erőforráscsoportnevet.
- A Hely legördülő menüből válassza ki a helyet.
- A többi beállítást az alapértelmezett értékre hagyhatja, vagy további követelmények alapján választhat.
Fontos
Ha ügyfél által felügyelt kulcsokat használ egy ACI-alapú üzembehelyezési sablon titkosításához, javasoljuk, hogy az alábbi két tulajdonságot állítsa be a kulcstartón: Helyreállítható törlés és Törlés tiltása. Ezek a tulajdonságok alapértelmezés szerint nincsenek engedélyezve, de egy új vagy meglévő kulcstartón a PowerShell vagy az Azure CLI használatával engedélyezhetők.
Új kulcs létrehozása
A kulcstartó létrehozása után lépjen az erőforrásra a Azure Portal. Az erőforrás panel bal oldali navigációs menüjében, a Beállítások területen kattintson a Kulcsok elemre. A "Kulcsok" nézetében kattintson a "Létrehozás/importálás" elemre egy új kulcs létrehozásához. Használja a kulcs egyedi nevét, valamint a követelményeknek megfelelő egyéb beállításokat.
Hozzáférési szabályzat beállítása
Hozzon létre egy új hozzáférési szabályzatot, amely lehetővé teszi az ACI szolgáltatás számára a kulcs elérését.
- A kulcs létrehozása után a kulcstartó erőforráspaneljén, a Beállítások területen kattintson a Hozzáférési szabályzatok elemre.
- A kulcstartó "Hozzáférési szabályzatok" lapján kattintson a Hozzáférési szabályzat hozzáadása elemre.
- A Kulcsengedélyek beállítása a lekérése és feloldása beállításra
- Az Egyszerű kiválasztása beállításnál válassza az Azure Container Instance Service lehetőséget
- Kattintson az alul található Hozzáadás gombra
A hozzáférési szabályzatnak most meg kell jelennie a kulcstartó hozzáférési szabályzataiban.
A JSON üzembehelyezési sablon módosítása
Fontos
Az üzembehelyezési adatok ügyfél által felügyelt kulccsal történő titkosítása a jelenleg futó legújabb API-verzióban (2019-12-01) érhető el. Adja meg ezt az API-verziót az üzembehelyezési sablonban. Ha bármilyen problémája van ezzel kapcsolatban, forduljon az Azure ügyfélszolgálatához.
A kulcstartókulcs és a hozzáférési szabályzat beállítása után adja hozzá az alábbi tulajdonságokat az ACI üzembehelyezési sablonjához. További információ az ACI-erőforrások sablonnal való üzembe helyezéséről az Oktatóanyag: Többtárolós csoport üzembe helyezése Resource Manager sablon használatával.
- A alatt
resources
állítsa be a következőtapiVersion
:2019-12-01
. - Az üzembe helyezési sablon tárolócsoport-tulajdonságok szakaszában adjon hozzá egy
encryptionProperties
, amely a következő értékeket tartalmazza:vaultBaseUrl
: a kulcstartó DNS-neve, amely a Portál kulcstartó-erőforrásának áttekintési paneljén találhatókeyName
: a korábban létrehozott kulcs nevekeyVersion
: a kulcs aktuális verziója. Ez a kulcs magára a kulcsra való kattintással érhető el (a kulcstartó-erőforrás Beállítások szakaszában található "Kulcsok" területen)
- A tárolócsoport tulajdonságai alatt adjon hozzá egy
sku
értéketStandard
tartalmazó tulajdonságot. Asku
tulajdonságra az API 2019-12-01-es verziójában van szükség.
Az alábbi sablonrészlet ezeket a további tulajdonságokat mutatja be az üzembehelyezési adatok titkosításához:
[...]
"resources": [
{
"name": "[parameters('containerGroupName')]",
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2019-12-01",
"location": "[resourceGroup().location]",
"properties": {
"encryptionProperties": {
"vaultBaseUrl": "https://example.vault.azure.net",
"keyName": "acikey",
"keyVersion": "xxxxxxxxxxxxxxxx"
},
"sku": "Standard",
"containers": {
[...]
}
}
}
]
Az alábbiakban egy teljes sablont talál, amelyet az Oktatóanyag: Többtárolós csoport üzembe helyezése Resource Manager sablonnal című témakörben talál.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"containerGroupName": {
"type": "string",
"defaultValue": "myContainerGroup",
"metadata": {
"description": "Container Group name."
}
}
},
"variables": {
"container1name": "aci-tutorial-app",
"container1image": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
"container2name": "aci-tutorial-sidecar",
"container2image": "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar"
},
"resources": [
{
"name": "[parameters('containerGroupName')]",
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2019-12-01",
"location": "[resourceGroup().location]",
"properties": {
"encryptionProperties": {
"vaultBaseUrl": "https://example.vault.azure.net",
"keyName": "acikey",
"keyVersion": "xxxxxxxxxxxxxxxx"
},
"sku": "Standard",
"containers": [
{
"name": "[variables('container1name')]",
"properties": {
"image": "[variables('container1image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
},
"ports": [
{
"port": 80
},
{
"port": 8080
}
]
}
},
{
"name": "[variables('container2name')]",
"properties": {
"image": "[variables('container2image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
}
}
}
],
"osType": "Linux",
"ipAddress": {
"type": "Public",
"ports": [
{
"protocol": "tcp",
"port": "80"
},
{
"protocol": "tcp",
"port": "8080"
}
]
}
}
}
],
"outputs": {
"containerIPv4Address": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups/', parameters('containerGroupName'))).ipAddress.ip]"
}
}
}
Erőforrások üzembe helyezése
Ha az asztalon hozta létre és szerkesztette a sablonfájlt, feltöltheti azt a Cloud Shell könyvtárba a fájl húzásával.
Hozzon létre egy erőforráscsoportot az az group create paranccsal.
az group create --name myResourceGroup --location eastus
Helyezze üzembe a sablont az az deployment group create paranccsal.
az deployment group create --resource-group myResourceGroup --template-file deployment-template.json
Néhány másodpercen belül meg kell kapnia az Azure kezdeti válaszát. Az üzembe helyezés befejeződése után az ACI szolgáltatás által megőrzött összes adat titkosítva lesz a megadott kulccsal.
Adatok titkosítása ügyfél által felügyelt kulccsal egy hálózattal védett Azure-Key Vault megbízható szolgáltatásokkal engedélyezve
Key Vault-erőforrás létrehozása
Azure-Key Vault létrehozása Azure Portal, Azure CLI vagy Azure PowerShell használatával. Első lépésként ne alkalmazzon hálózati korlátozásokat, hogy a szükséges kulcsokat hozzáadhassuk a tárolóhoz. A következő lépésekben hálózati korlátozásokat adunk hozzá, és engedélyezzük a megbízható szolgáltatásokat.
A kulcstartó tulajdonságaihoz kövesse az alábbi irányelveket:
- Név: Egy egyedi nevet kell megadnia.
- Előfizetés: Válassza ki az előfizetést.
- Az Erőforráscsoport területen válasszon ki egy meglévő erőforráscsoportot, vagy hozzon létre újat, és adja meg az erőforráscsoport nevét.
- A Hely legördülő menüből válassza ki a helyet.
- A többi beállítást az alapértelmezett értékükre hagyhatja, vagy további követelmények alapján választhat.
Fontos
Ha ügyfél által kezelt kulcsokat használ egy ACI-üzembehelyezési sablon titkosításához, javasoljuk, hogy a következő két tulajdonságot állítsa be a kulcstartón: Helyreállítható törlés és Ne ürítse ki. Ezek a tulajdonságok alapértelmezés szerint nincsenek engedélyezve, de egy új vagy meglévő kulcstartón a PowerShell vagy az Azure CLI használatával engedélyezhetők.
Új kulcs létrehozása
A kulcstartó létrehozása után lépjen az erőforráshoz Azure Portal. Az erőforrás paneljének bal oldali navigációs menüjében, a Beállítások területen kattintson a Kulcsok elemre. A "Kulcsok" nézetében kattintson a "Létrehozás/importálás" elemre egy új kulcs létrehozásához. Ehhez a kulcshoz bármilyen egyedi nevet, valamint a követelményeknek megfelelő egyéb beállításokat használhat. A következő lépésekhez mindenképpen rögzítse a kulcs nevét és verzióját.
Felhasználó által hozzárendelt felügyelt identitás létrehozása a tárolócsoporthoz
Hozzon létre egy identitást az előfizetésében az az identity create paranccsal. Használhatja ugyanazt az erőforráscsoportot, amelyet a kulcstartó létrehozásához használ, vagy használhat egy másikat.
az identity create \
--resource-group myResourceGroup \
--name myACIId
Az identitás a következő lépésekben való használatához használja az az identity show parancsot az identitás szolgáltatásnév-azonosítójának és erőforrás-azonosítójának változókban való tárolásához.
# Get service principal ID of the user-assigned identity
spID=$(az identity show \
--resource-group myResourceGroup \
--name myACIId \
--query principalId --output tsv)
Hozzáférési szabályzat beállítása
Hozzon létre egy új hozzáférési szabályzatot, amely lehetővé teszi a felhasználó által hozzárendelt identitás számára a kulcs titkosítási célú elérését és kicsomagolását.
az keyvault set-policy \
--name mykeyvault \
--resource-group myResourceGroup \
--object-id $spID \
--key-permissions get unwrapKey
Az Azure Key Vault hálózati engedélyeinek módosítása
Az alábbi parancsok beállítanak egy Azure Firewall az Azure-Key Vault számára, és engedélyezik az Azure Megbízható szolgáltatások, például az ACI-hozzáférést.
az keyvault update \
--name mykeyvault \
--resource-group myResourceGroup \
--default-action Deny
az keyvault update \
--name mykeyvault \
--resource-group myResourceGroup \
--bypass AzureServices
A JSON üzembehelyezési sablon módosítása
Fontos
Az üzembehelyezési adatok ügyfél által felügyelt kulccsal való titkosítása a 2022-09-01 API-verzióban vagy újabb verzióban érhető el. A 2022-09-01 API-verzió csak ARM-en vagy REST-en keresztül érhető el. Ha bármilyen problémája van ezzel kapcsolatban, forduljon az Azure ügyfélszolgálatához. A Key Vault kulcs- és hozzáférési szabályzatának beállítása után adja hozzá a következő tulajdonságokat az ACI üzembehelyezési sablonjához. Az ACI-erőforrások sablonnal történő üzembe helyezéséről további információt a Többtárolós csoport üzembe helyezése Resource Manager sablonnal című oktatóanyagban talál.
- A alatt
resources
állítsa a következőreapiVersion
:2022-09-01
. - Az üzembe helyezési sablon tárolócsoport-tulajdonságok szakaszában adjon hozzá egy
encryptionProperties
, amely a következő értékeket tartalmazza:vaultBaseUrl
: a kulcstartó DNS-neve. Ez a Key Vault-erőforrás áttekintési paneljén található a PortálonkeyName
: a korábban létrehozott kulcs nevekeyVersion
: a kulcs aktuális verziója. Ez a kulcsra való kattintással érhető el (a Key Vault-erőforrás Beállítások szakaszának "Kulcsok" területén)identity
: ez a korábban létrehozott felügyelt identitáspéldány erőforrás-URI-ja
- A tárolócsoport tulajdonságai alatt adjon hozzá egy
sku
értéketStandard
tartalmazó tulajdonságot. Asku
tulajdonságot az API 2022-09-01-es verziójában kell megadni. - Az erőforrások területen adja hozzá a
identity
felügyelt identitás ACI-vel való használatához szükséges objektumot, amely a következő értékeket tartalmazza:type
: a használt identitás típusa (felhasználó által hozzárendelt vagy rendszer által hozzárendelt). Ez az eset a "UserAssigned" értékre lesz állítvauserAssignedIdentities
: az objektumbanencryptionProperties
fentebb használt, felhasználó által hozzárendelt identitás resourceURI azonosítója.
A következő sablonrészlet az üzembehelyezési adatok titkosításához szükséges további tulajdonságokat mutatja be:
[...]
"resources": [
{
"name": "[parameters('containerGroupName')]",
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2019-12-01",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/XXXXXXXXXXXXXXXXXXXXXX/resourcegroups/XXXXXXXXXXXXXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId": {}
}
},
"properties": {
"encryptionProperties": {
"vaultBaseUrl": "https://example.vault.azure.net",
"keyName": "acikey",
"keyVersion": "xxxxxxxxxxxxxxxx",
"identity": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXX/resourcegroups/XXXXXXXXXXXXXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId"
},
"sku": "Standard",
"containers": {
[...]
}
}
}
]
Az alábbiakban egy teljes sablont talál, amelyet az Oktatóanyag: Többtárolós csoport üzembe helyezése Resource Manager sablonnal című témakörben talál.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"containerGroupName": {
"type": "string",
"defaultValue": "myContainerGroup",
"metadata": {
"description": "Container Group name."
}
}
},
"variables": {
"container1name": "aci-tutorial-app",
"container1image": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
"container2name": "aci-tutorial-sidecar",
"container2image": "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar"
},
"resources": [
{
"name": "[parameters('containerGroupName')]",
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2022-09-01",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/XXXXXXXXXXXXXXXXXXXXXX/resourcegroups/XXXXXXXXXXXXXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId": {}
}
},
"properties": {
"encryptionProperties": {
"vaultBaseUrl": "https://example.vault.azure.net",
"keyName": "acikey",
"keyVersion": "xxxxxxxxxxxxxxxx",
"identity": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXX/resourcegroups/XXXXXXXXXXXXXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId"
},
"sku": "Standard",
"containers": [
{
"name": "[variables('container1name')]",
"properties": {
"image": "[variables('container1image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
},
"ports": [
{
"port": 80
},
{
"port": 8080
}
]
}
},
{
"name": "[variables('container2name')]",
"properties": {
"image": "[variables('container2image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
}
}
}
],
"osType": "Linux",
"ipAddress": {
"type": "Public",
"ports": [
{
"protocol": "tcp",
"port": "80"
},
{
"protocol": "tcp",
"port": "8080"
}
]
}
}
}
],
"outputs": {
"containerIPv4Address": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups/', parameters('containerGroupName'))).ipAddress.ip]"
}
}
}
Erőforrások üzembe helyezése
Ha az asztalon hozta létre és szerkesztette a sablonfájlt, a fájl húzásával feltöltheti azt a Cloud Shell könyvtárba.
Hozzon létre egy erőforráscsoportot az az group create paranccsal.
az group create --name myResourceGroup --location eastus
Helyezze üzembe a sablont az az deployment group create paranccsal.
az deployment group create --resource-group myResourceGroup --template-file deployment-template.json
Néhány másodpercen belül meg kell kapnia az Azure kezdeti válaszát. Az üzembe helyezés befejeződése után az ACI szolgáltatás által megőrzött összes adat titkosítva lesz a megadott kulccsal.