Memasang volume rahasia di Azure Container Instances
Gunakan volume rahasia untuk menyediakan informasi sensitif ke kontainer dalam grup kontainer. Volume rahasia menyimpan rahasia Anda pada file dalam volume, dapat diakses oleh kontainer dalam grup kontainer. Dengan menyimpan rahasia dalam volume rahasia, Anda dapat menghindari penambahan data sensitif seperti kunci SSH atau info masuk database ke kode aplikasi Anda.
- Setelah disebarkan dengan rahasia dalam grup kontainer, volume rahasia baca-saja.
- Semua volume rahasia didukung oleh tmpfs, sistem berkas yang didukung RAM; kontennya tidak pernah ditulis ke penyimpanan non-volatil.
Catatan
Volume rahasia saat ini dibatasi untuk kontainer Linux. Pelajari cara melewati variabel lingkungan yang aman untuk kontainer Windows dan Linux dalam Mengatur variabel lingkungan. Meskipun kami sedang berupaya untuk membawa semua fitur ke kontainer Windows, Anda dapat menemukan perbedaan platform saat ini dalam ringkasan.
Memasang volume rahasia - Azure CLI
Untuk menyebarkan kontainer dengan satu atau beberapa rahasia dengan menggunakan Azure CLI, sertakan parameter --secrets
dan --secrets-mount-path
dalam perintah az container create. Contoh ini memasang volume rahasia yang terdiri dari dua file yang berisi rahasia, "mysecret1" dan "mysecret2," di /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
Output az container exec berikut menunjukkan membuka shell di kontainer yang sedang berjalan, mencantumkan file dalam volume rahasia, lalu menampilkan isinya:
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.
Memasang volume rahasia - YAML
Anda juga dapat menyebarkan grup kontainer dengan Azure CLI dan templat YAML. Menyebarkan oleh templat YAML adalah metode yang disukai ketika menyebarkan grup kontainer yang terdiri dari beberapa kontainer.
Saat Anda menyebarkan templat YAML, nilai rahasia harus dikodekan Base64 dalam templat. Namun, nilai rahasia muncul pada teksbersih dalam file di kontainer.
Templat YAML berikut mendefinisikan grup kontainer dengan satu kontainer yang memasang volume rahasia di /mnt/secrets
. Volume rahasia memiliki dua file yang berisi rahasia, "mysecret1" dan "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
Untuk menyebarkan dengan templat YAML, simpan YAML sebelumnya ke file bernama deploy-aci.yaml
, lalu jalankan perintah az container create dengan parameter --file
:
# Deploy with YAML template
az container create \
--resource-group myResourceGroup \
--file deploy-aci.yaml
Memasang volume rahasia - Azure Resource Manager
Selain penyebaran CLI dan YAML, Anda dapat menyebarkan grup kontainer menggunakan templat Azure Resource Manager.
Pertama, isi array volumes
di bagian grup kontainer properties
templat. Saat Anda menyebarkan templat Azure Resource Manager, nilai rahasia harus dikodekan Base64 dalam templat. Namun, nilai rahasia muncul pada teksbersih dalam file di kontainer.
Selanjutnya, untuk setiap kontainer dalam grup kontainer tempat Anda ingin memasang volume rahasia, isi array volumeMounts
di bagian properties
dari definisi kontainer.
Templat Azure Resource Manager berikut mendefinisikan grup kontainer dengan satu kontainer yang memasang volume rahasia di /mnt/secrets
. Volume rahasia memiliki dua rahasia, "mysecret1" dan "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"
}
}
]
}
}
]
}
Untuk menyebarkan templat Resource Manager, simpan JSON sebelumnya ke file bernama deploy-aci.json
, lalu jalankan perintah az deployment group create dengan parameter --template-file
:
# Deploy with Resource Manager template
az deployment group create \
--resource-group myResourceGroup \
--template-file deploy-aci.json
Langkah berikutnya
Volume
Pelajari cara memasang jenis volume lainnya di Azure Container Instances:
- Memasang berbagi file Azure di Azure Container Instances
- Memasang volume emptyDir di Azure Container Instances
- Memasang volume gitRepo dalam Azure Container Instances
Variabel lingkungan yang aman
Metode lain untuk memberikan informasi sensitif kepada kontainer (termasuk kontainer Windows) adalah melalui penggunaan variabel lingkungan yang aman.