Controle de Conformidade de Recursos no Contoso Chat com Azure Policy

O Contoso Chat, assistente inteligente RAG do varejo construído sobre serviços de nuvem Azure, requer implementação rigorosa de normas de segurança empresarial e conformidade. Este artigo detalha como utilizar Azure Policy para automatizar o controle de conformidade dos recursos do Contoso Chat, abordando desafios como configurações de recursos dispersas e verificações de conformidade atrasadas, garantindo que aplicações de AI operem dentro de um framwork seguro.

Desafios de Conformidade e Solução com Azure Policy

No fluxo de desenvolvimento e implantação do Contoso Chat, são utilizados mais de 15 tipos de recursos de nuvem, incluindo Azure OpenAI, Cosmos DB e Container Apps, distribuídos em múltiplos ambientes. Os métodos tradicionais de inspeção manual apresentam problemas como dificuldade em detectar deriva de configuração e baixa eficiência nas verificações de conformidade. Azure Policy, componente essencial do Azure Resource Manager, avalia automaticamente a conformidade dos recursos através de regras pré-definidas, transformando o processo de "auditoria pós-facto" em "prevenção proativa".

Cenários de Aplicação Principais

  • Controle de Linha Base de Implantação de Recursos: Garantir que todos os ambientes de Container Apps tenham monitoramento de logs habilitado
  • Proteção de Dados Sensíveis: Limitar o acesso de rede pública aos bancos de dados Cosmos DB
  • Conformidade de Serviços de IA: Validar configurações de segurança de conteúdo em implantações de modelos Azure OpenAI
  • Estratégias de Otimização de Custos: Proibir a criação de serviços Azure AI Search que excedam as cotas

Definição e Implementação de Políticas

1. Estrutura de Arquivos de Definição de Política

As definições de Azure Policy do Contoso Chat seguem o princípio de infraestrutura como código, armazenadas no diretório infra/core/,主要包括:

  • Arquivos JSON de regras de política (ex: restricao-acesso-rede.json)
  • Modelos de definição de parâmetros (parametros.json)
  • Scripts de atribuição de políticas (atribuir-politicas.sh)

Estrutura típica de regra de política:

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.DocumentDB/databaseAccounts"
      },
      {
        "field": "Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess",
        "equals": "Enabled"
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}

2. Exemplos de Implementação de Políticas Essenciais

2.1 Controle de Acesso à Rede do Cosmos DB

Os dados de usuários do Contoso Chat são armazenados no Cosmos DB, com a seguinte política proibindo acesso de rede pública:

{
  "policyRule": {
    "if": {
      "field": "Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess",
      "notEquals": "Disabled"
    },
    "then": {
      "effect": "deny"
    }
  }
}
2.2 Verificação de Configuração de Logs de Container Apps

Para atender requisitos de auditoria, todos os Container Apps devem ter integração com Application Insights, conforme definição da política:

{
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.App/containerApps"
        },
        {
          "field": "Microsoft.App/containerApps/logging.logAnalyticsConfiguration.enabled",
          "equals": false
        }
      ]
    },
    "then": {
      "effect": "audit"
    }
  }
}

3. Atribuição e Avaliação de Políticas

Utilize Azure CLI para atribuir políticas ao grupo de recursos do Contoso Chat:

az policy assignment create \
  --name "politica-acesso-rede-contoso-chat" \
  --scope "/subscriptions/{subId}/resourceGroups/rg-contoso-chat" \
  --policy "/infra/core/database/cosmos/restricao-acesso-rede.json"

Os resultados da avaliação de conformidade podem ser visualizados no Azure Portal ou através do notebook monitorar-conformidade.ipynb, com recursos não conformes acionando correções automáticas ou alertas de auditoria.

Integração no Fluxo de Desenvolvimento e Implantação

1. Integração com Ferramenta de Implantação AZD

O Contoso Chat utiliza Azure Developer CLI (azd) para implentação com um clique, adicionando etapas de verificação de política no azure.yaml:

hooks:
  postprovision:
    - shell: bash
      run: ./infra/scripts/atribuir-politicas.sh

2. Visualização de Conformidade

Pós-implantação, monitore o status dos recursos em tempo real através do painel de conformidade do Azure Policy, ou consulte o método de geração de relatórios de conformidade personalizado em docs/workshop/docs/05-Deploy/03.md.

Práticas Recomendadas e Sugestões de Expansão

Ciclo de Vida de Desenvolvimento de Políticas

Seguindo o Dev-Workflow do Contoso Chat, as regras de política devem passar por:

  1. Teste no ambiente de desenvolvimento
  2. Validação no ambiente de pré-produção
  3. Implantação gradativa no ambiente de produção

Biblioteca de Exemplos de Políticas Personalizadas

A equipe do Contoso Chat mantém um repositório de modelos de políticas em infra/politicamostras/, incluindo:

  • Políticas de controle de custos de serviços de IA
  • Regras de imposição de tags de recursos
  • Verificações de configuração de grupos de segurança de rede

Integração com Ferramentas de Varredura de Segurança

Combinando as melhores práticas de segurança recomendadas em SEGURANCA.md, pode-se integrar verificações de conformidade de política ao fluxo CI/CD através de GitHub Action:

- name: Executar Verificação de Política Azure
  uses: azure/politica-verificacao-acao@v1
  with:
    caminhoDefinicaoPolitica: './infra/politicas'
    nomeGrupoRecursos: 'rg-contoso-chat'

Resumo e Próximos Passos

Com a implementação do Azure Policy no Contoso Chat, alcançou-se 100% de taxa de conformidade na implantação de recursos, reduzindo em 70% o tempo de resposta a eventos de segurança. Recomenda-se focar nos seguintes passos:

  1. Implementar controle de versão para políticas como código (consultar CONTRIBUTING.md)
  2. Desenvolver efeitos de política personalizados (como regras de tipo "modificar" para correção automática de configurações)
  3. Integrar alertas do Azure Monitor para construir painel de monitoramento de SLA de conformidade

Para mais exemplos de configuração do Azure Policy, consulte a documentação oficial da Azure para orientação prática.

Tags: Azure Policy Contoso Chat Conformidade de Recursos Azure Cloud RAG

Publicado em 6-6 23:30 por Thomas