Oktatóanyag: Üzembe helyezés előkészítése egy bizalmas tárolóhoz az Azure Container Instancesben

Az Azure Container Instancesben a kiszolgáló nélküli platformon bizalmas tárolók használatával futtathat tárolóalkalmazásokat hardveralapú és igazolt megbízható végrehajtási környezetben (T Enterprise kiadás). Ez a képesség segíthet a használatban lévő adatok védelmében, és biztonságos beágyazott lapozással biztosít memóriabeli titkosítást.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Hozzon létre egy Azure Resource Manager-sablont (ARM-sablont) egy bizalmas tárolócsoporthoz.
  • Hozzon létre egy bizalmas számítástechnikai kényszerítési (CCE) szabályzatot.
  • Helyezze üzembe a bizalmas tárolócsoportot az Azure-ban.

Előfeltételek

Az oktatóanyag elvégzéséhez meg kell felelnie a következő követelményeknek:

  • Azure CLI: Az Azure CLI 2.44.1-es vagy újabb verziójának telepítve kell lennie a helyi számítógépen. A verzió megkereséséhez futtassa a következőt az --version: Ha telepíteni vagy frissíteni szeretne, olvassa el az Azure CLI telepítését ismertető cikket.

  • Azure CLI-konferenciabővítmény: A bizalmas számítástechnikai kényszerítési szabályzatok létrehozásához telepítve kell lennie az Azure CLI-konferenciabővítmény 0.30+-os verziójával.

    az extension add -n confcom
    
  • Docker: Helyileg kell telepítenie a Dockert. A Docker csomagokat biztosít a Docker-környezet konfigurálásához macOS, Windows és Linux rendszereken.

    Ez az oktatóanyag feltételezi az alapvető Docker-fogalmak, például a tárolók, a tárolólemezképek és az alapszintű docker parancsok alapszintű megértését. A Docker és a tárolók alapszintű ismertetéséért lásd a Docker felhasználói útmutatóját.

Fontos

Mivel az Azure Cloud Shell nem tartalmazza a Docker démont, az oktatóanyag elvégzéséhez telepítenie kell az Azure CLI-t és a Docker-motort is a helyi számítógépre . Ehhez az oktatóanyaghoz nem használhatja az Azure Cloud Shellt.

ARM-sablon létrehozása tárolópéldány-tárolócsoporthoz

Ebben az oktatóanyagban egy "Helló világ!" alkalmazás alkalmazást helyez üzembe, amely hardverigazolási jelentést hoz létre. Először hozzon létre egy ARM-sablont egy tárolócsoport-erőforrással az alkalmazás tulajdonságainak meghatározásához. Ezt az ARM-sablont az Azure CLI-konferenciaeszközzel használva létrehozhat egy CCE-szabályzatot az igazoláshoz.

Ez az oktatóanyag ezt az ARM-sablont használja példaként. Az alkalmazás forráskódjának megtekintéséhez tekintse meg az Azure Container Instances Bizalmas "Helló világ!" alkalmazás című témakört.

A példasablon két tulajdonságot ad hozzá a Tárolópéldányok erőforrásdefinícióhoz a tárolócsoport bizalmassá tétele érdekében:

  • sku: Lehetővé teszi a bizalmas és a standard tárolócsoportok üzembe helyezésének kiválasztását. Ha nem adja hozzá ezt a tulajdonságot az erőforráshoz, a tárolócsoport egy szabványos üzembe helyezés lesz.
  • confidentialComputeProperties: Lehetővé teszi egy egyéni CCE-szabályzat átadását a tárolócsoport igazolásához. Ha nem adja hozzá ezt az objektumot az erőforráshoz, a tárolócsoporton belül futó szoftverösszetevők nem lesznek érvényesítve.

Feljegyzés

Az ccePolicy alatta lévő confidentialComputeProperties paraméter üres. Miután létrehozta a szabályzatot, az oktatóanyag későbbi részében kitölti.

Az előnyben részesített szövegszerkesztő használatával mentse ezt az ARM-sablont a helyi gépen 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/aci/aci-confidential-helloworld:v1",
        "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]"
      }
    }
  }

Egyéni CCE-szabályzat létrehozása

A létrehozott ARM-sablonnal és az Azure CLI-konferenciabővítménnyel létrehozhat egy egyéni CCE-szabályzatot. A CCE-szabályzat az igazoláshoz használatos. Az eszköz bemenetként használja az ARM-sablont a szabályzat létrehozásához. A szabályzat kikényszeríti az adott tárolólemezképeket, környezeti változókat, csatlakoztatásokat és parancsokat, amelyek a tárolócsoport indításakor érvényesíthetők. Az Azure CLI-konferenciabővítménnyel kapcsolatos további információkért tekintse meg a GitHub dokumentációját.

  1. A CCE-szabályzat létrehozásához futtassa a következő parancsot az ARM-sablon bemenetként való használatával:

    az confcom acipolicygen -a .\template.json --print-policy
    

    A parancs befejeződésekor a kimenetként létrehozott Base64-sztringnek a következő formátumban kell megjelennie. Ez a sztring az a CCE-szabályzat, amelyet a tulajdonság értékeként másol és illeszt be az ccePolicy ARM-sablonba.

    cGFja2FnZSBwb2xpY3kKCmFwaV9zdm4gOj0gIjAuOS4wIgoKaW1wb3J0IGZ1dHVyZS5rZXl3b3Jkcy5ldmVyeQppbXBvcnQgZnV0dXJlLmtleXdvcmRzLmluCgpmcmFnbWVudHMgOj0gWwpdCgpjb250YWluZXJzIDo9IFsKICAgIHsKICAgICAgICAiY29tbWFuZCI6IFsiL3BhdXNlIl0sCiAgICAgICAgImVudl9ydWxlcyI6IFt7InBhdHRlcm4iOiAiUEFUSD0vdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iLCAic3RyYXRlZ3kiOiAic3RyaW5nIiwgInJlcXVpcmVkIjogdHJ1ZX0seyJwYXR0ZXJuIjogIlRFUk09eHRlcm0iLCAic3RyYXRlZ3kiOiAic3RyaW5nIiwgInJlcXVpcmVkIjogZmFsc2V9XSwKICAgICAgICAibGF5ZXJzIjogWyIxNmI1MTQwNTdhMDZhZDY2NWY5MmMwMjg2M2FjYTA3NGZkNTk3NmM3NTVkMjZiZmYxNjM2NTI5OTE2OWU4NDE1Il0sCiAgICAgICAgIm1vdW50cyI6IFtdLAogICAgICAgICJleGVjX3Byb2Nlc3NlcyI6IFtdLAogICAgICAgICJzaWduYWxzIjogW10sCiAgICAgICAgImFsbG93X2VsZXZhdGVkIjogZmFsc2UsCiAgICAgICAgIndvcmtpbmdfZGlyIjogIi8iCiAgICB9LApdCmFsbG93X3Byb3BlcnRpZXNfYWNjZXNzIDo9IHRydWUKYWxsb3dfZHVtcF9zdGFja3MgOj0gdHJ1ZQphbGxvd19ydW50aW1lX2xvZ2dpbmcgOj0gdHJ1ZQphbGxvd19lbnZpcm9ubWVudF92YXJpYWJsZV9kcm9wcGluZyA6PSB0cnVlCmFsbG93X3VuZW5jcnlwdGVkX3NjcmF0Y2ggOj0gdHJ1ZQoKCm1vdW50X2RldmljZSA6PSB7ICJhbGxvd2VkIiA6IHRydWUgfQp1bm1vdW50X2RldmljZSA6PSB7ICJhbGxvd2VkIiA6IHRydWUgfQptb3VudF9vdmVybGF5IDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CnVubW91bnRfb3ZlcmxheSA6PSB7ICJhbGxvd2VkIiA6IHRydWUgfQpjcmVhdGVfY29udGFpbmVyIDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CmV4ZWNfaW5fY29udGFpbmVyIDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CmV4ZWNfZXh0ZXJuYWwgOj0geyAiYWxsb3dlZCIgOiB0cnVlIH0Kc2h1dGRvd25fY29udGFpbmVyIDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CnNpZ25hbF9jb250YWluZXJfcHJvY2VzcyA6PSB7ICJhbGxvd2VkIiA6IHRydWUgfQpwbGFuOV9tb3VudCA6PSB7ICJhbGxvd2VkIiA6IHRydWUgfQpwbGFuOV91bm1vdW50IDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CmdldF9wcm9wZXJ0aWVzIDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CmR1bXBfc3RhY2tzIDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CnJ1bnRpbWVfbG9nZ2luZyA6PSB7ICJhbGxvd2VkIiA6IHRydWUgfQpsb2FkX2ZyYWdtZW50IDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CnNjcmF0Y2hfbW91bnQgOj0geyAiYWxsb3dlZCIgOiB0cnVlIH0Kc2NyYXRjaF91bm1vdW50IDo9IHsgImFsbG93ZWQiIDogdHJ1ZSB9CnJlYXNvbiA6PSB7ImVycm9ycyI6IGRhdGEuZnJhbWV3b3JrLmVycm9yc30K
    
  2. Mentse az ARM-sablon helyi másolatának módosításait.

A sablon üzembe helyezése

A következő lépésekben az Azure Portal használatával helyezheti üzembe a sablont. Használhatja az Azure PowerShellt, az Azure CLI-t vagy a REST API-t is. Az egyéb üzembehelyezési módszerekről a Sablonok üzembe helyezése című témakörben tájékozódhat.

  1. Az Üzembe helyezés az Azure-ban gombra kattintva jelentkezzen be az Azure-ba, és kezdje el a Container Instances üzembe helyezését.

    Button to deploy the Resource Manager template to Azure.

  2. Válassza a Saját sablon készítése a szerkesztőben lehetőséget.

    Screenshot of the button for building your own template in the editor.

    A megjelenő JSON-sablon többnyire üres.

  3. Válassza a Fájl betöltése és a template.json feltöltése lehetőséget, amelyet a CCE-szabályzat előző lépésekben való hozzáadásával módosított.

    Screenshot of the button for loading a file.

  4. Válassza a Mentés lehetőséget.

  5. Válassza ki vagy adja meg a következő értékeket:

    • Előfizetés: válasszon ki egy Azure-előfizetést.
    • Erőforráscsoport: Válassza az Új létrehozása lehetőséget, adjon meg egy egyedi nevet az erőforráscsoportnak, majd kattintson az OK gombra.
    • Név: Fogadja el a példány létrehozott nevét, vagy adjon meg egy nevet.
    • Hely: Válasszon egy helyet az erőforráscsoportnak. Válasszon egy régiót, ahol a bizalmas tárolók támogatottak. Példa: Észak-Európa.
    • Kép: Fogadja el az alapértelmezett képnevet. Ez a linuxos mintarendszerkép hardverigazolást jelenít meg.

    Fogadja el a fennmaradó tulajdonságok alapértelmezett értékeit, majd válassza a Véleményezés + létrehozás lehetőséget.

    Screenshot of details for a custom ARM template deployment.

  6. Tekintse át a használati feltételeket. Ha elfogadja, válassza az Elfogadom a fenti feltételeket.

  7. Várja meg, amíg megjelenik az üzembe helyezés sikeres értesítése. Megerősíti, hogy sikeresen létrehozta a példányt.

    Screenshot of a portal notification for successful deployment.

Üzembe helyezett erőforrások áttekintése

Az alábbi lépésekben az Azure Portalon tekintheti át a tárolópéldány tulajdonságait. Használhat olyan eszközt is, mint az Azure CLI.

  1. A portálon keresse meg a tárolópéldányokat, majd válassza ki a létrehozott tárolópéldányt.

  2. Az Áttekintés lapon jegyezze fel a példány állapotát és IP-címét.

    Screenshot of the overview page for a container group instance.

  3. Ha a példány állapota fut, lépjen a böngésző IP-címére.

    Screenshot of a browser view of an app deployed via Azure Container Instances.

    Az Azure Container Instances emblémája alatti igazolási jelentés jelenléte megerősíti, hogy a tároló T Enterprise kiadás támogató hardveren fut.

    Ha olyan hardveren helyezi üzembe az üzembe helyezést, amely nem támogatja a T Enterprise kiadás (például olyan régió kiválasztásával, ahol a bizalmas tárolópéldányok nem érhetők el), nem jelenik meg igazolási jelentés.

Most, hogy üzembe helyezett egy bizalmas tárolócsoportot a tárolópéldányokon, további információt kaphat a szabályzatok kikényszerítéséről: