Zabezpečení aplikace ve službě Azure Container Apps Preview
Azure Container Apps umožňuje vaší aplikaci bezpečně ukládat citlivé konfigurační hodnoty. Po nadefinování na úrovni aplikace jsou zabezpečené hodnoty dostupné pro kontejnery, uvnitř pravidel škálování a prostřednictvím Dapr.
- Tajné kódy jsou vymezené na aplikaci, a to mimo konkrétní revizi aplikace.
- Přidání, odebrání nebo změna tajných kódů negeneruje nové revize.
- Každá revize aplikace může odkazovat na jeden nebo více tajných kódů.
- Na stejné tajné klíče může odkazovat více revizí.
Při aktualizaci nebo odstranění tajného klíče můžete na změny reagovat jedním ze dvou způsobů:
- Nasaďte novou revizi.
- Restartujte existující revizi.
Aktualizovaný nebo odebraný tajný kód automaticky znovu nespustí revizi.
- Před odstraněním tajného klíče nasaďte novou revizi, která už na starý tajný kód nebude odkazovat.
- Pokud změníte hodnotu tajného klíče, budete muset revizi restartovat, aby se nová hodnota spotřebovává.
Definování tajných kódů
Tajné kódy jsou definované na úrovni aplikace v resources.properties.configuration.secrets části .
"resources": [
{
...
"properties": {
"configuration": {
"secrets": [
{
"name": "queue-connection-string",
"value": "<MY-CONNECTION-STRING-VALUE>"
}],
}
}
}
V tomto případě je v poli deklarován připojovací řetězec k účtu úložiště secrets front. Pokud chcete použít tuto konfiguraci, <MY-CONNECTION-STRING-VALUE> nahraďte hodnotou připojovacího řetězce.
Použití tajných kódů
Na tajné kódy aplikací se odkazuje prostřednictvím secretref vlastnosti . Hodnoty tajných kódů se mapují na tajné kódy na úrovni aplikace, kde hodnota odpovídá názvu tajného klíče secretref deklarovaného na úrovni aplikace.
Příklad
Následující příklad ukazuje aplikaci, která deklaruje připojovací řetězec na úrovni aplikace a používá se v celé konfiguraci prostřednictvím secretref .
V tomto příkladu je připojovací řetězec aplikace deklarován jako a queue-connection-string je dostupný jinde v oddílech konfigurace.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "String"
},
"environment_id": {
"type": "String"
},
"queue-connection-string": {
"type": "String"
}
},
"variables": {},
"resources": [
{
"name": "queuereader",
"type": "Microsoft.Web/containerApps",
"apiVersion": "2021-03-01",
"kind": "containerapp",
"location": "[parameters('location')]",
"properties": {
"kubeEnvironmentId": "[parameters('environment_id')]",
"configuration": {
"activeRevisionsMode": "single",
"secrets": [
{
"name": "queue-connection-string",
"value": "[parameters('queue-connection-string')]"
}]
},
"template": {
"containers": [
{
"image": "myregistry/myQueueApp:v1",
"name": "myQueueApp",
"env": [
{
"name": "QueueName",
"value": "myqueue"
},
{
"name": "ConnectionString",
"secretref": "queue-connection-string"
}
]
}
],
"scale": {
"minReplicas": 0,
"maxReplicas": 10,
"rules": [
{
"name": "myqueuerule",
"azureQueue": {
"queueName": "demoqueue",
"queueLength": 100,
"auth": [
{
"secretRef": "queue-connection-string",
"triggerParameter": "connection"
}
]
}
}
]
}
}
}
}]
}
Proměnná prostředí s názvem tady získá hodnotu z tajného klíče connection-string na úrovni queue-connection-string aplikace. Služba Azure Queue Storage konfigurace autorizace pravidla škálování používá metodu jako queue-connection-string připojení.
Abyste se vyhnuli potvrzování hodnot tajných kódu do správy zdrojového kódu pomocí šablony ARM, předejte hodnoty tajných kódu jako parametry šablony ARM.