Sdílet prostřednictvím


Připojení tajného svazku ve službě Azure Container Instances

Tajný svazek slouží k poskytování citlivých informací kontejnerům ve skupině kontejnerů. Tajný svazek ukládá vaše tajné kódy do souborů v rámci svazku, které jsou přístupné kontejnery ve skupině kontejnerů. Uložením tajných kódů do tajného svazku se můžete vyhnout přidávání citlivých dat, jako jsou klíče SSH nebo přihlašovací údaje k databázi do kódu aplikace.

  • Po nasazení s tajnými kódy ve skupině kontejnerů je tajný svazek jen pro čtení.
  • Všechny svazky tajných kódů jsou podporovány systémem souborů založeným na paměti RAM. Jejich obsah se nikdy nezapisuje do nestálého úložiště.

Poznámka:

Svazky tajných kódů jsou aktuálně omezené na kontejnery Linuxu. Naučte se předávat zabezpečené proměnné prostředí pro kontejnery Windows i Linuxu v nastavení proměnných prostředí. Při práci na přenesení všech funkcí do kontejnerů Windows najdete aktuální rozdíly v platformě v přehledu.

Připojení svazku tajných kódů – Azure CLI

Pokud chcete nasadit kontejner s jedním nebo více tajnými kódy pomocí Azure CLI, zahrňte do --secrets příkazu az container create parametry a --secrets-mount-path parametry. Tento příklad připojí tajný svazek skládající se ze dvou souborů obsahujících tajné kódy mysecret1 a mysecret2 v :/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

Následující příkaz az container exec output ukazuje otevření prostředí ve spuštěném kontejneru, výpis souborů v rámci tajného svazku a zobrazení jejich obsahu:

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.

Připojit tajný svazek – YAML

Skupiny kontejnerů můžete nasadit také pomocí Azure CLI a šablony YAML. Nasazení pomocí šablony YAML je upřednostňovanou metodou při nasazování skupin kontejnerů sestávajících z více kontejnerů.

Když nasadíte pomocí šablony YAML, hodnoty tajných kódů musí být v šabloně kódované base64. Tajné hodnoty se však zobrazí ve formátu prostého textu v souborech v kontejneru.

Následující šablona YAML definuje skupinu kontejnerů s jedním kontejnerem, který připojí tajný svazek na /mnt/secrets. Svazek tajného kódu obsahuje dva soubory obsahující tajné kódy mysecret1 a 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

Pokud chcete provést nasazení pomocí šablony YAML, uložte předchozí YAML do souboru s názvem deploy-aci.yamla pak spusťte příkaz az container create s parametrem --file :

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

Připojit tajný svazek – Resource Manager

Kromě nasazení rozhraní příkazového řádku a YAML můžete nasadit skupinu kontejnerů pomocí šablony Azure Resource Manageru.

Nejprve naplňte volumes pole v části skupiny properties kontejnerů šablony. Když nasadíte pomocí šablony Resource Manageru, musí být v šabloně kódované hodnoty tajných kódů Base64. Tajné hodnoty se však zobrazí ve formátu prostého textu v souborech v kontejneru.

Dále pro každý kontejner ve skupině kontejnerů, ve které chcete připojit tajný svazek, naplňte volumeMounts pole v properties části definice kontejneru.

Následující šablona Resource Manageru definuje skupinu kontejnerů s jedním kontejnerem, který připojí tajný svazek na /mnt/secretsadrese . Tajný svazek má dvě tajné kódy: "mysecret1" a "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"
            }
          }
        ]
      }
    }
  ]
}

Pokud chcete provést nasazení pomocí šablony Resource Manageru, uložte předchozí JSON do souboru s názvem deploy-aci.jsona pak spusťte příkaz az deployment group create s parametrem --template-file :

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

Další kroky

Množství

Zjistěte, jak připojit jiné typy svazků ve službě Azure Container Instances:

Zabezpečené proměnné prostředí

Další metodou poskytování citlivých informací kontejnerům (včetně kontejnerů Windows) je použití zabezpečených proměnných prostředí.