Megosztás a következőn keresztül:


Üzembehelyezési adatok titkosítása

Amikor Azure Container Instances (ACI) erőforrásokat futtat a felhőben, az ACI szolgáltatás összegyűjti és megőrzi a tárolókhoz kapcsolódó adatokat. Az ACI automatikusan titkosítja ezeket az adatokat, amikor az a felhőben marad. 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 ezeket az adatokat saját kulccsal titkosítsa, így nagyobb mértékben szabályozhatja az ACI-üzemelő példányokhoz kapcsolódó adatokat.

ACI-adattitkosítás

Az ACI-ben lévő adatok titkosítása és visszafejtése 256 bites AES-titkosítással történik. Az összes ACI-telepítés 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 a lefedettség 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 is megmaradó naplókat, hogy továbbra is láthassa őket. A titkosítás nem befolyásolja a tárolócsoport teljesítményét, és a titkosításnak nincs további költsége.

A tárolóadatok titkosításához a Microsoft által felügyelt kulcsokra támaszkodhat, vagy saját kulcsokkal kezelheti a titkosítást. 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
Kulcsforgatási felelősség Microsoft Vevő
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 standard Azure Key Vaultban tárolt, ügyfél által felügyelt kulccsal
  • Titkosítsa az adatokat egy, a hálózat által védett Azure Key Vaultban tárolt, ügyfél által felügyelt kulccsal, amelyen engedélyezve van a Megbízható szolgáltatások szolgáltatás.

Adatok titkosítása egy standard Azure Key Vaultban tárolt, ügyfél által felügyelt kulccsal

Előfeltételek

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 biztosít az Azure Container Instances szolgáltatásnak.

Fontos

A következő parancs sikeres futtatásához és a szolgáltatásnév létrehozásához győződjön meg arról, hogy rendelkezik jogosultságokkal a szolgáltatásnevek létrehozásához 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 meg kell jelennie egy "displayName" beállítású szolgáltatásnévnek: "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őjé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 az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával.

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 csoportban 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 kulcsokkal titkosít egy ACI-üzembehelyezési sablont, javasoljuk, hogy a következő két tulajdonság legyen beállítva a kulcstartón, a Helyreállítható törlés és a Törlés tiltása. Ezek a tulajdonságok alapértelmezés szerint nem engedélyezettek, 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 keresse meg az erőforrást az Azure Portalon. Az erőforrás panel bal oldali navigációs menüjében, a Beállítások csoportban válassza a Kulcsok lehetőséget. A "Kulcsok" nézetében válassza a "Létrehozás/importálás" lehetőséget egy új kulcs létrehozásához. Használjon egyedi nevet ehhez a kulcshoz, valamint a követelményeknek megfelelő egyéb beállításokat.

Új kulcs létrehozása

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.

  • Miután létrejött a kulcs, a kulcstartó erőforráspaneljén, a Beállítások területen válassza a Hozzáférési szabályzatok lehetőséget.
  • A kulcstartó "Hozzáférési szabályzatok" lapján válassza az Add Access Policy (Hozzáférési szabályzat hozzáadása) lehetőséget.
  • Kulcsengedélyek beállítása a Kulcs lekérése és feloldása beállításhozKulcsengedélyek beállítása
  • Az egyszerűség kiválasztásához válassza az Azure Container Instance Service lehetőséget
  • Válassza a Hozzáadás elemet az alján

A hozzáférési szabályzatnak most meg kell jelennie a kulcstartó hozzáférési szabályzataiban.

Új hozzáférési szabályzat

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.

Miután beállította a kulcstartókulcsot és a hozzáférési szabályzatot, adja hozzá az alábbi tulajdonságokat az ACI-telepítési sablonhoz. További információ az ACI-erőforrások sablonnal való üzembe helyezéséről az oktatóanyagban: Többtárolós csoport üzembe helyezése Resource Manager-sablonnal.

  • Alatta resourcesállítsa be a következőt apiVersion 2019-12-01: .
  • Az üzembehelyezési sablon tárolócsoport-tulajdonságok szakaszában adjon hozzá egy encryptionProperties, a következő értékeket tartalmazó értéket:
    • vaultBaseUrl: a kulcstartó DNS-neve, amely a Key Vault-erőforrás áttekintő paneljén található a Portálon
    • keyName: a korábban létrehozott kulcs neve
    • keyVersion: a kulcs aktuális verziója. Ez a mező a kulcsra való lépéssel (a kulcstartó erőforrás Beállítások szakaszában található "Kulcsok" alatt) található.
  • A tárolócsoport tulajdonságai alatt adjon hozzá egy sku értéket Standardtartalmazó tulajdonságot. A sku tulajdonságra az API 2019-12-01-es verziójában van szükség.

Az alábbi 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]",    
        "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 sablonjából alakítottunk ki: Többtárolós csoport üzembe helyezése Resource Manager-sablonnal.

{
  "$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-címtá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 az ahhoz kapcsolódó összes adat titkosítva lesz a megadott kulccsal.

Adatok titkosítása ügyfél által felügyelt kulccsal egy hálózati védelemmel ellátott Azure Key Vaultban a megbízható szolgáltatások engedélyezésével

Key Vault-erőforrás létrehozása

Azure Key Vault létrehozása az Azure Portal, az Azure CLI vagy az 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 csoportban 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 kulcsokkal titkosít egy ACI-üzembehelyezési sablont, javasoljuk, hogy a következő két tulajdonság legyen beállítva a kulcstartón, a Helyreállítható törlés és a Törlés tiltása. Ezek a tulajdonságok alapértelmezés szerint nem engedélyezettek, 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 keresse meg az erőforrást az Azure Portalon. Az erőforrás panel bal oldali navigációs menüjében, a Beállítások csoportban válassza a Kulcsok lehetőséget. A "Kulcsok" nézetében válassza a "Létrehozás/importálás" lehetőséget egy új kulcs létrehozásához. Használjon egyedi nevet ehhez a kulcshoz, valamint a követelményeknek megfelelő egyéb beállításokat. A következő lépésekhez mindenképpen rögzítse a kulcs nevét és verzióját.

Képernyőkép a kulcslétrehozás beállításairól, a PNG-ről.

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ésben 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élokra való 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-tűzfalat az Azure Key Vaulthoz, és engedélyezik az Azure Trusted Servicest, 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 történő titkosítása a 2022-09-01 API 2022-09-01-es vagy újabb verziójá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. Miután beállította a kulcstartókulcsot és a hozzáférési szabályzatot, adja hozzá az alábbi tulajdonságokat az ACI-telepítési sablonhoz. További információ az ACI-erőforrások sablonnal való üzembe helyezéséről az oktatóanyagban: Többtárolós csoport üzembe helyezése Resource Manager-sablonnal.

  • Alatta resourcesállítsa be a következőt apiVersion 2022-09-01: .
  • Az üzembehelyezési sablon tárolócsoport-tulajdonságok szakaszában adjon hozzá egy encryptionProperties, a következő értékeket tartalmazó értéket:
    • vaultBaseUrl: a kulcstartó DNS-neve. Ez a tulajdonság a Key Vault-erőforrás áttekintő paneljén található a Portálon
    • keyName: a korábban létrehozott kulcs neve
    • keyVersion: a kulcs aktuális verziója. Ez a tulajdonság a kulcsra való kattintással (a kulcstartó-erőforrás Beállítások szakaszának "Kulcsok" területén) található.
    • identity: ez a tulajdonság 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éket Standardtartalmazó tulajdonságot. A sku tulajdonságra az API 2022-09-01-es verziójában van szükség.
  • Az erőforrások között 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 van állítva
    • userAssignedIdentities: az objektumban használt azonos felhasználó által hozzárendelt identitás resourceURI-ja encryptionProperties .

Az alábbi 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 sablonjából alakítottunk ki: Többtárolós csoport üzembe helyezése Resource Manager-sablonnal.

{
  "$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, feltöltheti azt a Cloud Shell-címtá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 az ahhoz kapcsolódó összes adat titkosítva lesz a megadott kulccsal.