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í.
- Tmpfs, systém souborů založený na paměti RAM, zálohuje všechny tajné svazky; jejich obsah se nikdy nezapisuje do nevolatilové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.yaml
a 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/secrets
adrese . 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.json
a 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:
- Připojení sdílené složky ve službě Azure Container Instances
- Připojení svazku emptyDir ve službě Azure Container Instances
- Připojení svazku gitRepo 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í.