Armazene segredos ao nível da aplicação para Funções do Azure em Azure Container Apps

Os segredos ao nível da aplicação são valores de configuração que o seu código de função e os bindings consomem em tempo de execução. Ao contrário das chaves de acesso Functions, que protegem endpoints HTTP, os segredos ao nível da aplicação são as credenciais que a sua aplicação precisa para se ligar a outros serviços.

Exemplos comuns incluem:

  • Ligações de infraestrutura - AzureWebJobsStorage cadeias de ligação, disparadores e ligações para Event Hubs, Service Bus, Cosmos DB e SQL.
  • Credenciais empresariais - chaves de API de terceiros, palavras-passe de base de dados, tokens de plataforma SaaS.
  • Configuração personalizada - qualquer valor sensível que o seu código lê das variáveis do ambiente.

Escolha uma opção de armazenamento

O Azure Container Apps dá-lhe duas formas de armazenar segredos ao nível da aplicação:

Option Melhor para Gestão centralizada Rotação automática Registo de auditoria
Segredos de Aplicações de Contêiner Desenvolvimento/teste, cargas simples de trabalho de aplicação única Não - restrito a um aplicativo No Apenas registos de atividade
Referências do Key Vault Produção, multiaplicativo, conformidade Sim – em todas as aplicações Sim (URI sem versão) Diagnóstico completo do Key Vault

Sugestão

Comece com os segredos das Apps de Container para simplificar. Mude para referências do Key Vault quando precisar de gestão centralizada, rotação automática ou auditoria de nível de conformidade.

Pré-requisitos

Usar os segredos das Aplicações de Contentores

O Container Apps armazena segredos no array da configuration.secrets aplicação e encripta valores em repouso. Podes referenciar segredos em variáveis de ambiente, regras de escala, montagens de volume e componentes Dapr.

Guarde um segredo

  1. Acede à tua aplicação de contêiner de Funções no portal Azure.

  2. Em Definições, selecione Segredos.

  3. Selecione Adicionar e insira os seguintes valores:

    Property Value
    Nome Um nome secreto como database-password. Use apenas letras minúsculas, números e hífens.
    Type Segredo de Container Apps
    Value O teu valor secreto.
  4. Selecione Adicionar.

Referenciar o segredo numa variável de ambiente

Depois de guardares um segredo, faz referência nele numa variável de ambiente para que o teu código de função o possa ler.

  1. Na tua aplicação contentor de Funções, em Aplicação, seleciona Revisões e réplicas.

  2. Selecione Criar nova revisão.

  3. No separador Contentor , selecione o seu contentor e depois selecione Editar.

  4. Selecione o separador Variáveis de Ambiente e depois selecione Adicionar.

  5. Insira os seguintes valores:

    Property Value
    Nome DATABASE_PASSWORD
    Source Referência a um segredo
    Value database-password
  6. Selecione Guardar e depois selecione Criar para implementar a nova revisão.

Verifica o segredo

Confirme que a sua função consegue ler o valor secreto invocando a função e verificando que ela corre sem erros relacionados com a falta de configuração.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Importante

As Aplicações Container injetam o valor secreto na variável de ambiente em tempo de execução. O teu código lê a variável de ambiente e não acede diretamente à loja secreta.

Limitations

Os segredos das Aplicações Container têm as seguintes limitações:

  • Sem centralização – cada aplicação de contentores armazena os seus próprios segredos separadamente.
  • Não há rotação automática – tens de atualizar manualmente os valores secretos.
  • Sem validade – segredos não expiram automaticamente.
  • Auditoria limitada - apenas registos básicos de atividade; Sem auditoria detalhada de acesso secreto.
  • Sem versionamento – sem histórico de versões secreto incorporado.
  • Comportamento de atualização - alterar um segredo não desencadeia uma nova revisão. Deve criar uma nova revisão ou reiniciar as revisões existentes para detetar alterações.

Utilize referências do Key Vault

As referências do Key Vault permitem que a sua aplicação container extraia segredos diretamente do Azure Key Vault usando uma identidade gerida. Esta abordagem proporciona gestão centralizada, rotação automática e auditoria de nível de conformidade.

Passo 1: Configurar identidade gerida

A tua aplicação container precisa de uma identidade gerida para autenticar no Key Vault sem credenciais.

  1. Acede à tua aplicação de contêiner de Funções no portal Azure.

  2. Em Configurações, selecione Identidade.

  3. No separador Sistema atribuído, configure Status para Ligado.

  4. Seleciona Guardar e depois Sim para confirmar.

Passo 2: Conceder o acesso ao Key Vault

Atribui o papel Key Vault Utilizador de Segredos à identidade gerida para que possa ler segredos.

  1. Vá para o Key Vault no portal Azure.

  2. Em Configurações, selecione Controle de acesso (IAM).

  3. Selecione Adicionar>Adicionar atribuição de função.

  4. Na aba Role, selecione Key Vault Secrets User.

  5. Selecione Avançar.

  6. No separador Membros, selecione Identidade gerida e, em seguida, selecione Selecionar membros.

  7. No painel Selecionar identidades geridas, selecione a sua subscrição, escolha Aplicação Container para o tipo de identidade gerida, selecione a Aplicação Container de Funções e depois selecione a opção Selecionar.

  8. Selecione Verificar + atribuir.

Passo 3: Guardar um segredo no Key Vault

  1. No seu Key Vault, em Objects, selecione Secrets.

  2. Selecione Gerar/Importar.

  3. Insira os seguintes valores:

    Property Value
    Opções de carregamento Manual
    Nome Um nome secreto, por exemplo DatabasePassword.
    Value O teu valor secreto.
  4. Selecione Criar.

  5. Seleciona o teu segredo recém-criado e depois seleciona a versão atual.

  6. Copie o URI do identificador secreto . Use o URI sem versão (sem o segmento da versão final) para permitir a rotação automática.

Passo 4: Referenciar o segredo do Key Vault nas Aplicações de Contentores

Cria um segredo das Aplicações Container que faça referência ao segredo do Key Vault, depois liga-o a uma variável de ambiente.

  1. Vai à tua aplicação de contêiner de funções. Em Definições, selecione Segredos.

  2. Selecione Adicionar.

  3. Em Adicionar segredo, introduza os seguintes valores:

    Property Value
    Nome database-password
    Type Key Vault referência
    URL secreta do Key Vault O URI do Identificador Secreto que copiou.
    Identidade Sistema atribuído (ou identidade atribuída pelo utilizador).
  4. Selecione Adicionar.

  5. Em Aplicação, selecione Revisões e réplicas. Crie uma nova revisão com a variável de ambiente DATABASE_PASSWORD referenciando o database-password secreto.

Passo 5: Verificar a referência ao Key Vault

Invoca a tua função e confirma que está a correr sem erros relacionados com falta de configuração.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Rotação secreta automática

Quando faz referência a um segredo do Key Vault com um URI sem versão, o Container Apps recupera automaticamente a versão mais recente:

  • URI sem versão: https://myvault.vault.azure.net/secrets/mysecret - usa sempre a versão mais recente.
  • URI versionado: https://myvault.vault.azure.net/secrets/mysecret/ec96f020... - fixado a uma versão específica.

Com URIs sem versão, o Container Apps verifica novas versões em 30 minutos e reinicia automaticamente as revisões ativas para captar o novo valor.