Azure Container Apps Önizlemesinde bir uygulamanın güvenliğini sağlama

Azure Container Apps, uygulamanıza hassas yapılandırma değerlerini güvenli bir şekilde depolamanızı sağlar. Uygulama düzeyinde tanımlandığı zaman kapsayıcılar, ölçek kuralları ve Dapr aracılığıyla güvenli değerler kullanılabilir.

  • Gizli dizilerin kapsamı bir uygulamanın belirli bir düzeltmesi dışındadır.
  • Gizli dizileri eklemek, kaldırmak veya değiştirmek yeni düzeltmeler oluşturmaz.
  • Her uygulama düzeltmesi bir veya daha fazla gizli diziye başvurur.
  • Birden çok düzeltme, aynı gizli dizelere başvurur.

Gizli bilgiler güncelleştirildiğinde veya silindiğinde, değişikliklere iki şekilde yanıt veabilirsiniz:

  1. Yeni bir düzeltme dağıtın.
  2. Mevcut bir düzeltmeyi yeniden başlatın.

Güncelleştirilmiş veya kaldırılan gizli bir gizli bilgi düzeltmeyi otomatik olarak yeniden başlatmaz.

  • Gizli bir gizli dosyayı smeden önce, artık eski gizli ize başvurulmadan yeni bir düzeltme dağıtın.
  • Gizli bir değeri değiştirirsanız, yeni değeri tüketmek için düzeltmeyi yeniden başlatmanız gerekir.

Gizli dizileri tanımlama

Gizli diziler bölümünde uygulama düzeyinde resources.properties.configuration.secrets tanımlanır.

"resources": [
{
    ...
    "properties": {
        "configuration": {
            "secrets": [
            {
                "name": "queue-connection-string",
                "value": "<MY-CONNECTION-STRING-VALUE>"
            }],
        }
    }
}

Burada, kuyruk depolama hesabına bağlantı dizesi dizisinde secrets bildirildi. Bu yapılandırmayı kullanmak için değerini <MY-CONNECTION-STRING-VALUE> bağlantı dizenizin değeriyle değiştirirsiniz.

Gizli dizileri kullanma

Uygulama gizli dizilerine özelliği aracılığıyla secretref başvurabilirsiniz. Gizli dizi değerleri, değerin uygulama düzeyinde bildirilen gizli dizi adıyla secretref eşlenmiş olduğu uygulama düzeyindeki gizli dizilerle eşlenmiş.

Örnek

Aşağıdaki örnek, uygulama düzeyinde bir bağlantı dizesi bildirilen ve aracılığıyla yapılandırma boyunca kullanılan bir uygulamayı secretref gösterir.

Bu örnekte, uygulama bağlantı dizesi olarak bildirildi queue-connection-string ve yapılandırma bölümlerinin başka bir yerinde kullanılabilir hale gelir.

{
    "$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"
                                    }
                                ]
                            }
                        }
                    ]
                }
            }
        }
    }]
}

Burada adlı ortam connection-string değişkeni, değerini uygulama düzeyindeki gizli değişkenden queue-connection-string alır. Ayrıca, Azure Kuyruk Depolama ölçeklendirme kuralının yetkilendirme yapılandırması bağlantı queue-connection-string kurulurken kullanır.

ARM şablonunuzla gizli değerleri kaynak denetimine işlemekten kaçınmak için gizli değerleri ARM şablonu parametreleri olarak geçişin.

Sonraki adımlar