Zainstaluj tajny wolumin w usłudze Azure Container Instances
Użyj woluminu tajnego, aby dostarczyć poufne informacje do kontenerów w grupie kontenerów. Wolumin tajny przechowuje wpisy tajne w plikach w woluminie dostępnym dla kontenerów w grupie kontenerów. Przechowywanie wpisów tajnych w woluminie tajnym pozwala uniknąć dodawania poufnych danych, takich jak klucze SSH lub poświadczenia bazy danych do kodu aplikacji.
- Po wdrożeniu z wpisami tajnymi w grupie kontenerów wolumin tajny jest tylko do odczytu.
- Tmpfs, system plików oparty na pamięci RAM, zwraca wszystkie woluminy tajne; ich zawartość nigdy nie jest zapisywana w magazynie niezawolanym.
Uwaga
Woluminy tajne są obecnie ograniczone do kontenerów systemu Linux. Dowiedz się, jak przekazywać bezpieczne zmienne środowiskowe dla kontenerów systemu Windows i Linux w temacie Ustawianie zmiennych środowiskowych. Podczas pracy nad wprowadzeniem wszystkich funkcji do kontenerów systemu Windows można znaleźć bieżące różnice między platformami w omówieniu.
Instalowanie woluminu wpisu tajnego — interfejs wiersza polecenia platformy Azure
Aby wdrożyć kontener z co najmniej jednym wpisem tajnym przy użyciu interfejsu wiersza polecenia platformy Azure, dołącz --secrets
parametry i --secrets-mount-path
w poleceniu az container create . W tym przykładzie instaluje wolumin tajny składający się z dwóch plików zawierających wpisy tajne: "mysecret1" i "mysecret2", w folderze /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
Następujące dane wyjściowe az container exec pokazują otwarcie powłoki w uruchomionym kontenerze, wyświetlenie listy plików w woluminie tajnym, a następnie wyświetlenie ich zawartości:
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.
Instalowanie woluminu wpisu tajnego — YAML
Grupy kontenerów można również wdrożyć za pomocą interfejsu wiersza polecenia platformy Azure i szablonu YAML. Wdrażanie przy użyciu szablonu YAML jest preferowaną metodą wdrażania grup kontenerów składających się z wielu kontenerów.
Podczas wdrażania przy użyciu szablonu YAML wartości wpisów tajnych muszą być zakodowane w formacie Base64 w szablonie. Jednak wartości wpisów tajnych są wyświetlane w postaci zwykłego tekstu w plikach w kontenerze.
Poniższy szablon YAML definiuje grupę kontenerów z jednym kontenerem, który instaluje wolumin tajny na ./mnt/secrets
Wolumin tajny zawiera dwa pliki zawierające wpisy tajne: "mysecret1" i "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
Aby wdrożyć przy użyciu szablonu YAML, zapisz poprzedni kod YAML w pliku o nazwie deploy-aci.yaml
, a następnie wykonaj polecenie az container create za pomocą parametru --file
:
# Deploy with YAML template
az container create \
--resource-group myResourceGroup \
--file deploy-aci.yaml
Instalowanie woluminu wpisu tajnego — Resource Manager
Oprócz wdrożenia interfejsu wiersza polecenia i yaML można wdrożyć grupę kontenerów przy użyciu szablonu usługi Azure Resource Manager.
Najpierw wypełnij tablicę volumes
w sekcji grupy properties
kontenerów szablonu. Podczas wdrażania przy użyciu szablonu usługi Resource Manager wartości wpisów tajnych muszą być zakodowane w formacie Base64 w szablonie. Jednak wartości wpisów tajnych są wyświetlane w postaci zwykłego tekstu w plikach w kontenerze.
Następnie dla każdego kontenera w grupie kontenerów, w której chcesz zainstalować wolumin tajny , wypełnij tablicę volumeMounts
w properties
sekcji definicji kontenera.
Poniższy szablon usługi Resource Manager definiuje grupę kontenerów z jednym kontenerem, który instaluje wolumin tajny w obiekcie /mnt/secrets
. Wolumin tajny zawiera dwa wpisy tajne: "mysecret1" i "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"
}
}
]
}
}
]
}
Aby wdrożyć przy użyciu szablonu usługi Resource Manager, zapisz poprzedni kod JSON w pliku o nazwie deploy-aci.json
, a następnie wykonaj polecenie az deployment group create za pomocą parametru --template-file
:
# Deploy with Resource Manager template
az deployment group create \
--resource-group myResourceGroup \
--template-file deploy-aci.json
Następne kroki
Woluminy
Dowiedz się, jak zainstalować inne typy woluminów w usłudze Azure Container Instances:
- Instalowanie udziału plików platformy Azure w usłudze Azure Container Instances
- Zainstaluj wolumin pustyDir w usłudze Azure Container Instances
- Zainstaluj wolumin gitRepo w usłudze Azure Container Instances
Zabezpieczanie zmiennych środowiskowych
Inną metodą dostarczania poufnych informacji do kontenerów (w tym kontenerów systemu Windows) jest użycie bezpiecznych zmiennych środowiskowych.