Titkos kötet csatlakoztatása Azure Container Instances

Titkos kötet használatával bizalmas információkat szolgáltathat egy tárolócsoport tárolóinak. A titkos kötet a köteten belüli fájlokban tárolja a titkos kódokat, amelyeket a tárolócsoport tárolói érhetnek el. A titkos kulcsok titkos kötetben való tárolásával elkerülheti, hogy bizalmas adatokat, például SSH-kulcsokat vagy adatbázis-hitelesítő adatokat adjon hozzá az alkalmazás kódjához.

  • Miután titkos kódokkal üzembe helyezte egy tárolócsoportban, a titkos kötet írásvédett lesz.
  • Minden titkos kötetet a tmpfs, egy RAM-alapú fájlrendszer nyújt; a tartalmuk soha nem kerül nem felejtő tárolóba.

Megjegyzés

A titkos kötetek jelenleg Linux-tárolókra vannak korlátozva. A Környezeti változók beállítása című témakörből megtudhatja, hogyan adhat át biztonságos környezeti változókat Windows- és Linux-tárolókhoz is. Miközben azon dolgozunk, hogy az összes szolgáltatást a Windows-tárolókba is elérhetővé tegyük, az áttekintésben megtalálhatja a platform aktuális különbségeit.

Titkos kötet csatlakoztatása – Azure CLI

Ha egy vagy több titkos kóddal rendelkező tárolót szeretne üzembe helyezni az Azure CLI használatával, adja meg a --secrets és --secrets-mount-path a paramétereket az az container create parancsban. Ez a példa egy titkos kötetet csatlakoztat, amely két titkos fájlt tartalmaz: "mysecret1" és "mysecret2", a következő helyen /mnt/secrets:

az container create \
    --resource-group myResourceGroup \
    --name secret-volume-demo \
    --image mcr.microsoft.com/azuredocs/aci-helloworld \
    --secrets mysecret1="My first secret FOO" mysecret2="My second secret BAR" \
    --secrets-mount-path /mnt/secrets

Az alábbi az container exec kimenet egy rendszerhéj megnyitását mutatja a futó tárolóban, amely felsorolja a titkos köteten belüli fájlokat, majd megjeleníti a tartalmukat:

az container exec \
  --resource-group myResourceGroup \
  --name secret-volume-demo --exec-command "/bin/sh"
/usr/src/app # ls /mnt/secrets
mysecret1
mysecret2
/usr/src/app # cat /mnt/secrets/mysecret1
My first secret FOO
/usr/src/app # cat /mnt/secrets/mysecret2
My second secret BAR
/usr/src/app # exit
Bye.

Titkos kód csatlakoztatása – YAML

Tárolócsoportokat az Azure CLI-vel és egy YAML-sablonnal is üzembe helyezhet. A YAML-sablonnal történő üzembe helyezés az előnyben részesített módszer több tárolóból álló tárolócsoportok üzembe helyezésekor.

YAML-sablonnal történő üzembe helyezéskor a titkos értékeknek Base64 kódolásúnak kell lenniük a sablonban. A titkos kódok azonban egyszerű szövegként jelennek meg a tárolóban lévő fájlokban.

Az alábbi YAML-sablon egy tárolócsoportot határoz meg egy tárolóval, amely egy titkos kötetet csatlakoztat a következő helyen /mnt/secrets: . A titkos kötet két titkos fájlt tartalmaz: "mysecret1" és "mysecret2".

apiVersion: '2019-12-01'
location: eastus
name: secret-volume-demo
properties:
  containers:
  - name: aci-tutorial-app
    properties:
      environmentVariables: []
      image: mcr.microsoft.com/azuredocs/aci-helloworld:latest
      ports: []
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 1.5
      volumeMounts:
      - mountPath: /mnt/secrets
        name: secretvolume1
  osType: Linux
  restartPolicy: Always
  volumes:
  - name: secretvolume1
    secret:
      mysecret1: TXkgZmlyc3Qgc2VjcmV0IEZPTwo=
      mysecret2: TXkgc2Vjb25kIHNlY3JldCBCQVIK
tags: {}
type: Microsoft.ContainerInstance/containerGroups

A YAML-sablonnal való üzembe helyezéshez mentse az előző YAML-fájlt egy nevű deploy-aci.yamlfájlba, majd hajtsa végre az az container create parancsot a --file paraméterrel:

# Deploy with YAML template
az container create \
  --resource-group myResourceGroup \
  --file deploy-aci.yaml

Titkos kötet csatlakoztatása – Resource Manager

A parancssori felület és a YAML üzembe helyezése mellett azure Resource Manager-sablon használatával is üzembe helyezhet tárolócsoportokat.

Először töltse ki a volumes tömböt a sablon tárolócsoport properties szakaszában. Ha Resource Manager sablonnal telepíti az üzembe helyezést, a titkos kódértékeket Base64-kódolásúnak kell lennie a sablonban. A titkos kódok azonban egyszerű szövegként jelennek meg a tárolóban lévő fájlokban.

Ezután töltse ki a volumeMounts tömböt a tárolódefiníció szakaszában properties azon tárolócsoport minden tárolójára, amelyben csatlakoztatni szeretné a titkos kötetet.

Az alábbi Resource Manager sablon egy tárolócsoportot határoz meg egy tárolóval, amely egy titkos kötetet csatlakoztat a következő helyen/mnt/secrets: . A titkos kötet két titkos kóddal rendelkezik: "mysecret1" és "mysecret2".

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "container1name": "aci-tutorial-app",
    "container1image": "microsoft/aci-helloworld:latest"
  },
  "resources": [
    {
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2021-03-01",
      "name": "secret-volume-demo",
      "location": "[resourceGroup().location]",
      "properties": {
        "containers": [
          {
            "name": "[variables('container1name')]",
            "properties": {
              "image": "[variables('container1image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              },
              "ports": [
                {
                  "port": 80
                }
              ],
              "volumeMounts": [
                {
                  "name": "secretvolume1",
                  "mountPath": "/mnt/secrets"
                }
              ]
            }
          }
        ],
        "osType": "Linux",
        "ipAddress": {
          "type": "Public",
          "ports": [
            {
              "protocol": "tcp",
              "port": "80"
            }
          ]
        },
        "volumes": [
          {
            "name": "secretvolume1",
            "secret": {
              "mysecret1": "TXkgZmlyc3Qgc2VjcmV0IEZPTwo=",
              "mysecret2": "TXkgc2Vjb25kIHNlY3JldCBCQVIK"
            }
          }
        ]
      }
    }
  ]
}

A Resource Manager sablonnal való üzembe helyezéshez mentse az előző JSON-t egy nevű deploy-aci.jsonfájlba, majd hajtsa végre az az deployment group create parancsot a --template-file paraméterrel:

# Deploy with Resource Manager template
az deployment group create \
  --resource-group myResourceGroup \
  --template-file deploy-aci.json

Következő lépések

Kötetek

Megtudhatja, hogyan csatlakoztathat más kötettípusokat a Azure Container Instances:

Biztonságos környezeti változók

A tárolók (köztük a Windows-tárolók) bizalmas információinak biztosítására egy másik módszer a biztonságos környezeti változók használata.