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:
- Teste no ambiente de desenvolvimento
- Validação no ambiente de pré-produção
- 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:
- Implementar controle de versão para políticas como código (consultar CONTRIBUTING.md)
- Desenvolver efeitos de política personalizados (como regras de tipo "modificar" para correção automática de configurações)
- 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.