Montera en hemlighetsvolym i Azure Container Instances
Använd en hemlig volym för att tillhandahålla känslig information till containrarna i en containergrupp. Den hemliga volymen lagrar dina hemligheter i filer i volymen, som är tillgängliga för containrarna i containergruppen. Genom att lagra hemligheter i en hemlig volym kan du undvika att lägga till känsliga data som SSH-nycklar eller databasautentiseringsuppgifter i programkoden.
- När den har distribuerats med hemligheter i en containergrupp är en hemlig volym skrivskyddad.
- Alla hemliga volymer backas upp av tmpfs, ett RAM-säkerhetskopierat filsystem. Innehållet skrivs aldrig till icke-flyktig lagring.
Kommentar
Hemliga volymer är för närvarande begränsade till Linux-containrar. Lär dig hur du skickar säkra miljövariabler för både Windows- och Linux-containrar i Ange miljövariabler. Medan vi arbetar med att ta alla funktioner till Windows-containrar kan du hitta aktuella plattformsskillnader i översikten.
Montera hemlig volym – Azure CLI
Om du vill distribuera en container med en eller flera hemligheter med hjälp av Azure CLI tar du med parametrarna --secrets
och --secrets-mount-path
i kommandot az container create . I det här exemplet monteras en hemlig volym som består av två filer som innehåller hemligheter, "mysecret1" och "mysecret2", på /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
Följande az containerexec-utdata visar hur du öppnar ett gränssnitt i den container som körs, listar filerna i den hemliga volymen och visar sedan innehållet:
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.
Montera hemlig volym – YAML
Du kan också distribuera containergrupper med Azure CLI och en YAML-mall. Att distribuera med YAML-mall är den bästa metoden när du distribuerar containergrupper som består av flera containrar.
När du distribuerar med en YAML-mall måste de hemliga värdena vara Base64-kodade i mallen. De hemliga värdena visas dock i klartext i filerna i containern.
Följande YAML-mall definierar en containergrupp med en container som monterar en hemlig volym på /mnt/secrets
. Den hemliga volymen har två filer som innehåller hemligheter, "mysecret1" och "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
Om du vill distribuera med YAML-mallen sparar du föregående YAML i en fil med namnet deploy-aci.yaml
och kör sedan kommandot az container create med parametern --file
:
# Deploy with YAML template
az container create \
--resource-group myResourceGroup \
--file deploy-aci.yaml
Montera hemlig volym – Resource Manager
Förutom CLI- och YAML-distribution kan du distribuera en containergrupp med hjälp av en Azure Resource Manager-mall.
Fyll först i matrisen volumes
i avsnittet containergrupp properties
i mallen. När du distribuerar med en Resource Manager-mall måste de hemliga värdena vara Base64-kodade i mallen. De hemliga värdena visas dock i klartext i filerna i containern.
För varje container i containergruppen där du vill montera den hemliga volymen fyller du sedan i matrisen volumeMounts
properties
i avsnittet i containerdefinitionen.
Följande Resource Manager-mall definierar en containergrupp med en container som monterar en hemlig volym på /mnt/secrets
. Den hemliga volymen har två hemligheter, "mysecret1" och "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"
}
}
]
}
}
]
}
Om du vill distribuera med Resource Manager-mallen sparar du föregående JSON i en fil med namnet deploy-aci.json
och kör sedan kommandot az deployment group create med parametern --template-file
:
# Deploy with Resource Manager template
az deployment group create \
--resource-group myResourceGroup \
--template-file deploy-aci.json
Nästa steg
Volymer
Lär dig hur du monterar andra volymtyper i Azure Container Instances:
- Montera en Azure-filresurs i Azure Container Instances
- Montera en emptyDir-volym i Azure Container Instances
- Montera en gitRepo-volym i Azure Container Instances
Säkra miljövariabler
En annan metod för att tillhandahålla känslig information till containrar (inklusive Windows-containrar) är att använda säkra miljövariabler.