Políticas de Gateway (Policies)
Voltar para Learn
FAACCapítulo 22

Fundamentos e Arquitetura de APIs Corporativas

Políticas de Gateway (Policies)

Como construir pipelines seguros, previsíveis, observáveis e governáveis para controlar o tráfego de APIs

Edição aprofundada - material de estudo e consulta profissional

Pipeline luminoso de policies processando uma chamada de API

Políticas como executável de controle, proteção e mediação

Pipeline programável de policies entre a entrada e a resposta do API Gateway
Figura de abertura - Policies transformam o em um programável de controle e mediação.

Princípio central

Uma policy é código de infraestrutura: ordem, dependências, efeitos colaterais e tratamento de falha determinam seu comportamento.

Edição aprofundada - material de estudo e consulta profissional

Apresentação do capítulo

O capítulo anterior apresentou o como um intermediário especializado que encerra conexões, aplica controles, seleciona rotas e cria uma nova relação com o . Este capítulo aprofunda o mecanismo que torna esse comportamento programável: as políticas de . Uma policy representa uma unidade de decisão ou transformação executada em determinado ponto do fluxo. Autenticação, validação de , , , transformação de , roteamento e observabilidade podem ser implementados por políticas encadeadas.

Em uma demonstração simples, policies parecem blocos independentes que podem ser arrastados ou escritos em , , ou uma linguagem gráfica. Em produção, porém, elas formam um programa distribuído. A ordem altera o resultado; uma política produz contexto consumido pela seguinte; chamadas externas introduzem latência e disponibilidade; leitura do pode consumir ; podem multiplicar efeitos; e uma falha pode encerrar a requisição antes de o ser alcançado.

Políticas também são parte do modelo de segurança. Um erro de precedência pode permitir tráfego antes da autorização, registrar em claro, aplicar quota ao identificador errado ou transformar uma mensagem assinada e invalidar sua integridade. Por isso, policy design exige os mesmos cuidados de engenharia de software: responsabilidades claras, testes, revisão, versionamento, observabilidade, e controle de mudanças.

O objetivo deste capítulo é construir um modelo mental independente de produto e relacioná-lo a implementações como Axway , Azure Management e baseados em filtros. Ao final, o leitor deverá conseguir desenhar um , justificar sua ordem, prever efeitos de falha, identificar dependências externas e diagnosticar em qual policy uma chamada foi alterada ou rejeitada.

Como estudar este capítulo

Para cada policy, registre cinco elementos: entrada, condição de execução, efeito, estado produzido e comportamento em falha. Depois analise como ela interage com as policies anteriores e posteriores. Esse método transforma uma cadeia visual em um programa compreensível.

Objetivos de aprendizagem

  • Explicar policy como unidade executável de decisão, controle ou transformação no data plane.
  • Distinguir seções , , e , reconhecendo equivalentes em diferentes produtos.
  • Analisar ordem, dependências, , variáveis de contexto e efeitos colaterais.
  • Projetar políticas de autenticação, autorização, validação, limitação, , transformação e roteamento.
  • Compreender , , , fallback e idempotência.
  • Reconhecer riscos de leitura de , buffering, manipulação de e chamadas externas.
  • Construir tratamento de erros consistente sem esconder a causa técnica.
  • Aplicar , métricas, , correlação e auditoria em nível de policy.
  • Organizar reutilização, herança, escopos, fragments, templates e parâmetros.
  • Aplicar CI/CD, testes, revisão, segregação de funções e a políticas de .

Estrutura do capítulo

  • 22.1 O que é uma policy
  • 22.2 Modelo de execução e seções
  • 22.3 Ordem, contexto e
  • 22.4 Escopos, herança e precedência
  • 22.5 Policies de autenticação e identidade
  • 22.6 Autorização e decisões externas
  • 22.7 Validação de mensagens e contratos
  • 22.8 , quotas e
  • 22.9 Transformação de , e
  • 22.10 Roteamento e seleção de
  • 22.11 e coerência
  • 22.12 Resiliência e chamadas externas
  • 22.13 Tratamento de erros
  • 22.14 Observabilidade e auditoria
  • 22.15 Reutilização e governança
  • 22.16 Testes, CI/CD e
  • Resumo, checklist, exercícios, glossário e referências

22.1 O que é uma policy

Uma policy é uma regra executada pelo sobre uma requisição, resposta, conexão ou contexto. Ela pode observar dados, produzir variáveis, permitir ou negar continuidade, modificar a mensagem, chamar um serviço externo, alterar o destino ou gerar uma resposta sem encaminhar a requisição. Em produtos gráficos, a policy pode ser representada por filtros conectados; em plataformas declarativas, por elementos de configuração executados em sequência.

A policy não deve ser confundida com a política organizacional abstrata. Uma regra como “somente aplicações parceiras com contrato ativo podem acessar a ” é uma política de negócio ou segurança. Para executá-la, o pode combinar várias policies técnicas: validar certificado, extrair client_id, consultar um , verificar status do contrato, registrar decisão e aplicar quota. O é a implementação operacional da regra.

Policies podem ser locais, quando usam apenas o contexto já disponível, ou remotas, quando consultam , introspection , banco, , serviço de autorização ou sistema antifraude. Policies remotas aumentam poder, mas também introduzem dependência de rede, , , autenticação entre componentes e risco de indisponibilidade em cascata.

Tabela 1 - Uma policy deve ter objetivo explícito e efeito observável.
ClasseExemplosEfeito dominante
SegurançaJWT, mTLS, API key, autorização.Permitir, negar ou enriquecer identidade.
TráfegoRate limit, quota, spike arrest.Controlar volume e concorrência.
MediaçãoHeaders, payload, protocolo.Alterar representação ou contexto.
RoteamentoBackend, versão, região, canary.Escolher destino e estratégia.
OperaçãoLogs, métricas, tracing, auditoria.Produzir evidências e telemetria.
ResiliênciaTimeout, retry, circuit breaker.Conter falhas e proteger dependências.

22.2 Modelo de execução e seções

Plataformas de costumam dividir o em fases. No , a requisição é recebida e pode ser autenticada, validada, limitada e transformada. Na fase de , o prepara e executa a chamada ao . No , processa a resposta, remove dados, adiciona , normaliza erros ou armazena . Em falhas, uma seção ou equivalente produz tratamento específico.

Essas fases são lógicas, não universais. Um produto pode representar tudo como uma árvore de filtros, outro como seções declarativas e outro como filtros conectados ao listener. O arquiteto deve mapear o conceito para o produto sem assumir equivalência perfeita. O ponto decisivo é saber onde a mensagem está, se o já foi chamado e qual contexto permanece disponível.

Uma policy pode realizar e produzir resposta imediatamente. Uma validação de inválido pode retornar 401; um rate limit excedido pode retornar 429; um hit pode devolver 200 sem acessar o . Portanto, “o recebeu a chamada” não significa que o foi chamado. de cada fase precisam tornar essa decisão visível.

Fases inbound, backend, outbound e on-error do pipeline de policies
Figura 1 - O possui fases, mas qualquer uma pode encerrar ou desviar o fluxo.

22.3 Ordem, contexto e

A ordem de execução é parte da semântica. Correlacionar a requisição antes de qualquer rejeição garante que respostas 401 e 429 também tenham ID. Autenticar antes de autorizar fornece identidade à policy de decisão. Validar tamanho do antes de fazer parsing evita gastar CPU com mensagens abusivas. Aplicar transformação antes da validação pode ser correto quando o normaliza um formato legado, mas perigoso quando esconde uma entrada inválida.

Policies trocam informações por um contexto de execução. Esse contexto pode conter método, , , certificado, identidade, variáveis, resposta parcial, erro corrente e métricas. Variáveis devem ter nomes previsíveis, tipo conhecido e escopo documentado. Reutilizar nomes genéricos como , user ou result em fragments diferentes aumenta colisões e torna o difícil.

é útil para rejeitar cedo e poupar . Entretanto, a resposta precisa preservar observabilidade, quando aplicável, de segurança e formato de erro. Caso contrário, chamadas rejeitadas pelo se comportam de modo diferente das respostas produzidas pelo , confundindo consumidores e monitores.

Ordem de correlação, autenticação, autorização, limites, transformação e roteamento
Figura 2 - A sequência precisa refletir dependências e objetivos de proteção.

Pergunta de revisão

Se duas policies forem trocadas de posição, o comportamento muda? Se a resposta for sim, essa dependência deve estar documentada e coberta por teste. Se a equipe não souber responder, o ainda não está suficientemente compreendido.

22.4 Escopos, herança e precedência

Políticas podem ser aplicadas em escopos diferentes: global, workspace, produto, , versão, operação ou instância específica. Escopos amplos reduzem duplicação e garantem controles mínimos, enquanto escopos estreitos permitem comportamento especializado. O risco aparece quando herança e precedência não são claras. Uma pode imaginar que substituiu uma policy global quando, na realidade, apenas acrescentou outra etapa.

Herança deve ser usada para invariantes corporativos: correlação, mínimos, proteção de segredos, essenciais e controles obrigatórios. Regras de negócio, roteamento específico e transformação de normalmente pertencem a escopos mais próximos da . Quanto mais lógica de negócio for colocada globalmente, maior o blast radius de uma mudança.

Fragments e templates precisam receber parâmetros explícitos e evitar dependências ocultas de variáveis globais. Uma alteração em reutilizado pode afetar centenas de . Por isso, referências devem ser versionadas, testadas por consumidores e liberadas gradualmente.

Tabela 2 - O escopo correto equilibra consistência e autonomia.
EscopoUso adequadoRisco
GlobalControles corporativos invariantes.Mudança com grande blast radius.
Produto / workspacePolíticas comuns a um domínio ou canal.Acoplamento entre APIs diferentes.
APIContrato e segurança daquela interface.Duplicação se não houver fragments.
OperaçãoExceções específicas e semântica fina.Configuração fragmentada e difícil de auditar.

22.5 Policies de autenticação e identidade

Policies de autenticação verificam a credencial apresentada e estabelecem uma identidade confiável. Isso pode envolver , , certificado cliente, opaco, ou credenciais customizadas. O resultado não deve ser apenas um booleano. O precisa produzir contexto normalizado: sujeito, cliente, emissor, audience, , método de autenticação e nível de garantia.

Na validação , a policy deve verificar assinatura, algoritmo permitido, issuer, audience, expiração e requeridas. Apenas decodificar o não autentica ninguém. Para opacos, a policy pode consultar introspection, com controlado e curto. Para , a identidade não deve ser derivada somente do CN sem regras de confiança, e cadeia do certificado.

Credenciais não devem ser registradas em . Quando o propaga identidade ao por , ele deve remover equivalentes enviados pelo consumidor e escrever valores confiáveis. O precisa aceitar esses apenas de uma rede ou identidade de autenticada; caso contrário, o consumidor pode forjar o contexto.

Pseudocódigo - estabelecimento e propagação de identidade

# Fluxo conceitual de autenticação remover_header_nao_confiavel("X-Authenticated-Subject") credencial = extrair_credencial( ) identidade = validar(credencial) se identidade.invalida: retornar 401 .subject = identidade.subject .client_id = identidade.client_id adicionar_header_backend("X-Authenticated-Subject", .subject)

22.6 Autorização e decisões externas

Autorização responde se a identidade pode realizar a ação sobre o recurso naquele contexto. Policies simples verificam , roles ou . Casos avançados consultam um Policy Decision Point, enviando atributos do sujeito, recurso, ação e ambiente. A policy do atua como : coleta dados, solicita decisão, aplica allow ou deny e registra evidência.

Uma chamada externa de autorização precisa de contrato estável, autenticação mútua, , e decisão de ou . Para operações sensíveis, é a regra segura: se o não responde, o acesso é negado. Para telemetria não crítica, uma policy pode falhar de forma degradada. Essa escolha deve ser explícita e aprovada pelo risco, não decidida acidentalmente pelo comportamento padrão da ferramenta.

Decisões podem ser cacheadas quando atributos e validade permitem. A chave do precisa incluir todos os elementos que influenciam a decisão. Cachear apenas por usuário, ignorando recurso, ação ou tenant, cria autorização incorreta. A invalidação também precisa considerar mudança de papel, revogação e encerramento de contrato.

Tabela 3 - Autorização deve equilibrar expressividade, latência e disponibilidade.
EstratégiaVantagemCuidado técnico
Scopes/roles locaisBaixa latência e simplicidade.Pode ser insuficiente para contexto dinâmico.
PDP externoCentraliza decisões complexas.Disponibilidade, timeout e cache.
Policy híbridaPré-filtro local e decisão externa.Consistência entre duas camadas.

22.7 Validação de mensagens e contratos

Policies de validação verificam método, Content-Type, tamanho, , campos obrigatórios, parâmetros e restrições. A validação precoce protege o e torna erros consistentes. pode fornecer parte do contrato, mas nem toda regra de negócio deve ser transferida ao . Validações complexas, dependentes de estado do domínio, pertencem ao serviço responsável.

Validar ou exige parsing e pode consumir memória. O deve impor limite de tamanho antes de carregar o . Em grandes, uploads e downloads, buffering completo pode destruir desempenho. Policies que precisam ler o devem documentar se preservam o para etapas posteriores.

Validação em modo detect ou -only pode ajudar na migração, mas não deve virar estado permanente. Se a organização coleta violações sem bloquear, precisa de prazo e critério para ativar enforcement. Caso contrário, o contrato declarado e o tráfego real continuam divergentes.

Tabela 4 - O gateway protege o contrato; o backend preserva a verdade do domínio.
CamadaExemplosLocal preferencial
SintaxeJSON bem formado, XML válido.Gateway.
ContratoSchema, tipos, required, tamanho.Gateway e testes do backend.
Semântica simplesFaixas, enums, formatos.Gateway ou backend conforme ownership.
Regra de domínioSaldo, elegibilidade, transição de estado.Backend de domínio.

22.8 , quotas e

restringe a quantidade de eventos em uma janela; quota controla consumo acumulado em período maior; regula a velocidade ou concorrência para proteger capacidade. Embora os termos variem entre produtos, a policy precisa definir unidade, chave, algoritmo, janela, resposta e escopo distribuído.

A posição no muda o objetivo. Limitar por antes da autenticação reduz ataques volumétricos. Limitar por client_id depois da autenticação aplica plano comercial ou contrato. Limitar por operação protege caros. Muitas plataformas combinam camadas, mas cada contador aumenta custo e dependência de estado compartilhado.

Em distribuídos, contadores locais podem permitir que o total agregado ultrapasse o limite. Contadores globais exigem serviço compartilhado e introduzem latência. A arquitetura deve declarar se o limite é aproximado ou estrito. A resposta 429 deve incluir orientação como -After quando possível e não revelar detalhes internos desnecessários.

Aprofundamento posterior

O Capítulo 27 será dedicado a , Quotas e . Aqui, o foco é entender como essas políticas participam do e interagem com identidade, estado distribuído e tratamento de erro.

22.9 Transformação de , e

Policies de transformação adaptam consumidores e : adicionam ou removem , reescrevem caminhos, convertem query parameters, alteram Content-Type ou transformam e . Elas são úteis para modernizar legados e manter contratos estáveis, mas podem criar acoplamento invisível. O passa a depender de uma mensagem que nenhum consumidor envia diretamente.

de segurança e identidade exigem regras especiais. O deve remover valores não confiáveis antes de inserir seus próprios. -by- não devem ser propagados como end-to-end. Host e precisam ser tratados conscientemente, pois uma reescrita incorreta pode alcançar virtual host errado ou causar falha de certificado.

Transformações de têm custo de CPU e memória e podem alterar assinatura, ou idempotency key. Se uma mensagem é assinada pelo consumidor, qualquer alteração invalida a assinatura, a menos que o modelo preveja nova assinatura pelo . Transformações devem ser pequenas, testadas e observáveis; lógica de negócio extensa no vira um monólito de integração difícil de evoluir.

Exemplo conceitual de policies declarativas

< > <set- name="X-Correlation-ID" exists-action="skip"> <value>@(Guid.NewGuid().ToString())</value> </set- > <rewrite- template="/clientes/{id}" /> <set- -service base- =" :// .interno" /> </ >

22.10 Roteamento e seleção de

Policies de roteamento escolhem , versão, região, , tenant ou implementação canary. A decisão pode usar caminho, , , peso, saúde, latência ou configuração externa. Roteamento é diferente de autorização: um consumidor pode estar autorizado e ainda ser enviado ao incorreto se regras de precedência forem ambíguas.

Canary e blue-green exigem afinidade quando a experiência precisa permanecer consistente entre chamadas. O deve registrar qual variante foi escolhida e propagar identificador para . Fallback entre regiões precisa considerar residência de dados, consistência e idempotência. Enviar automaticamente uma escrita para outra região após pode duplicar transações.

Descoberta de pode depender de , service registry ou configuração estática. Policies não devem fazer resolução customizada a cada requisição sem e limites. O plano de controle deve distribuir destinos de forma segura, enquanto o data plane continua processando tráfego mesmo durante indisponibilidade temporária do management plane.

Tabela 5 - Roteamento precisa ser explicável em logs e traces.
DecisãoSinal de entradaEvidência necessária
VersãoPath, header ou query.Versão solicitada e rota aplicada.
CanaryPeso, cookie ou client_id.Variante selecionada e motivo.
RegiãoLocalidade, saúde e política.Região escolhida e fallback.
TenantClaim ou host.Tenant validado e backend isolado.

22.11 e coerência

Policies de podem reduzir latência e carga do , mas exigem compreensão da semântica e do contrato de dados. A chave precisa incluir método, normalizada e todas as variações relevantes, como tenant, idioma, Accept e autorização. Cachear resposta privada sem separar consumidores pode causar vazamento grave.

O deve respeitar -Control, Vary e regras de invalidação quando aplicáveis. Em autenticadas, o geralmente precisa ser privado por consumidor ou limitado a dados realmente públicos. Um hit também deve produzir e métricas; caso contrário, o parecerá saudável porque recebe menos tráfego, enquanto consumidores podem estar recebendo conteúdo obsoleto.

não corrige lento de forma universal. Ele altera consistência e comportamento em falha. Stale-while-revalidate e fallback com dado antigo podem ser válidos para catálogo, mas inadequados para saldo ou autorização. A policy precisa refletir criticidade do domínio.

22.12 Resiliência e chamadas externas

limita quanto o espera. repete uma operação sob condições específicas. interrompe chamadas quando a dependência apresenta falhas persistentes. Fallback produz resposta alternativa ou usa outra origem. Esses mecanismos devem ser desenhados em conjunto com o orçamento total de latência e a idempotência do método.

em pode ser seguro em muitos casos, mas não automaticamente. Um mal desenhado pode disparar efeito colateral. em pode duplicar transações sem idempotency key e deduplicação no . Também é necessário evitar multiplicação entre camadas: cliente, , mesh e podem repetir simultaneamente e transformar uma falha pequena em tempestade.

Chamadas auxiliares feitas por policies - introspection, , vault, antifraude - precisam de menores que o orçamento principal. O deve distinguir falha da de negócio e falha da dependência de policy. Sem essa distinção, uma indisponibilidade do serviço de autorização aparece como 500 genérico e dificulta resposta operacional.

Coordenação entre timeout, retry, circuit breaker e fallback
Figura 3 - Resiliência exige coordenação entre mecanismos e camadas.

22.13 Tratamento de erros e respostas padronizadas

Policies de erro convertem falhas internas em respostas estáveis ao consumidor. Elas devem preservar o status correto, um código de erro de negócio ou plataforma, mensagem segura, correlation ID e documentação. O tratamento não pode transformar qualquer falha em 200 nem esconder diferença entre autenticação, autorização, limitação, e indisponibilidade.

Uma resposta padronizada deve evitar detalhes sensíveis como stack , nome de , caminho de arquivo, SQL, interno ou conteúdo de . Ao mesmo tempo, internos precisam manter causa, policy, tempo e dependência envolvida. O consumidor recebe uma visão segura; a operação recebe evidência suficiente.

Erros produzidos antes do precisam aplicar comuns, inclusive quando necessário. Caso contrário, o navegador pode esconder o erro real por falha de . Também é importante impedir que a policy de erro falhe ao tentar ler variáveis que não foram criadas, gerando uma segunda exceção que mascara a primeira.

Exemplo de resposta de erro padronizada
{
  "type": "https://api.empresa.example/errors/rate-limit",
  "title": "Limite de requisições excedido",
  "status": 429,
  "detail": "Tente novamente após o período indicado.",
  "correlationId": "8f4d9c2a-..."
}

22.14 Observabilidade e auditoria em nível de policy

Observabilidade de precisa responder quais policies executaram, quanto tempo consumiram e qual decisão tomaram. Um access com status e duração total é necessário, mas insuficiente. Policies remotas devem medir latência e resultado. Rate limit deve registrar chave anonimizada e contador. Roteamento deve registrar selecionado. Autenticação deve registrar método e motivo de falha sem expor credencial.

distribuído deve criar ou preservar e gerar spans para chamadas ao e dependências de policy. Uma policy de transformação pode adicionar atributos úteis, mas cardinalidade precisa ser controlada. client_id, , operação, versão e resultado são dimensões úteis; completo e identificadores pessoais não devem virar labels de métricas.

Auditoria difere de operacional. Ela registra mudanças administrativas e decisões sensíveis com integridade, retenção e acesso controlado. Quem alterou uma policy global, quem aprovou, qual versão foi implantada e quais foram afetadas são informações essenciais para investigação e conformidade.

Tabela 6 - Logs, métricas, traces e auditoria atendem perguntas diferentes.
EvidênciaExemploUso
Access logAPI, operação, status, duração.Diagnóstico de tráfego.
MétricaFalhas por policy, latência externa.Alertas e capacidade.
TraceSpans de gateway, PDP e backend.Análise ponta a ponta.
AuditoriaAutor, versão, aprovação e deploy.Governança e conformidade.

22.15 Reutilização, fragments e governança

Reutilização reduz duplicação, mas precisa ser controlada como biblioteca. Fragments devem ter contrato, versão, owner, exemplos, testes e changelog. Um de validação , por exemplo, deve declarar issuers, audiences, algoritmos, variáveis produzidas e formato de erro. Sem isso, cada passa a depender de comportamento implícito.

Governança deve separar policies obrigatórias, recomendadas e opcionais. Obrigatórias podem ser aplicadas globalmente ou verificadas no . Recomendadas são templates adaptáveis. Opcionais atendem casos específicos. Exceções precisam de justificativa e prazo; caso contrário, a plataforma acumula configurações permanentes que ninguém compreende.

Segregação de funções evita que uma única pessoa altere autenticação, publique e aprove sua própria mudança em produção. Repositório Git, pull , validação automática, ambientes e promoção controlada transformam policy em infraestrutura como código. O portal ou editor visual pode continuar existindo, mas mudanças manuais precisam ser reconciliadas com a fonte de verdade.

22.16 Testes, CI/CD e

Testes de policy devem cobrir caminho feliz, credencial ausente, inválido, permissão insuficiente, limite excedido, indisponível, externo e resposta malformada. Testes unitários ou simulados validam expressões e fragments; testes de integração executam o real; testes de carga revelam custo de parsing, chamadas remotas e estado distribuído.

O de CI/CD pode validar sintaxe, , referências, segredos, policies proibidas, ordem mínima e presença de observabilidade. Depois, implanta em ambiente de teste, executa casos automatizados e promove artefato imutável. Canary no próprio reduz risco, mas precisa de rápido e métricas comparáveis.

No , identifique primeiro se a chamada chegou ao listener e qual /operação foi selecionada. Em seguida, percorra o : correlation ID, autenticação, autorização, rate limit, transformação, rota, chamada ao , e . Evite começar pelo quando o respondeu sem encaminhar a requisição.

Tabela 7 - O diagnóstico deve localizar a decisão exata dentro do pipeline.
SintomaHipóteses de policyEvidência
401 inesperadoIssuer, audience, relógio, header removido.Trace de autenticação sem token em claro.
403 intermitenteCache de decisão, tenant ou atributo dinâmico.PDP decision ID e chave de cache.
429 em poucos pedidosChave incorreta ou contador global.Identificador de limite e escopo.
502/504Rota, timeout, retry ou backend.Backend escolhido e tempos por tentativa.
Payload vazioBody consumido por transformação.Logs da policy e tamanho antes/depois.

Estudos de caso

Estudo de caso 1 - válido, autorização incorreta: o valida assinatura e expiração do , mas não verifica audience. Um emitido para outra é aceito. A correção não é apenas acrescentar uma condição; é revisar o corporativo, adicionar testes negativos, identificar afetadas e promover nova versão de forma controlada.

Estudo de caso 2 - Tempestade de : cliente, e service mesh repetem a mesma chamada. Durante degradação do , cada requisição original gera várias tentativas, esgotando conexões. O redesenho define um único owner de , orçamento total, condições por método e baseado em erro e latência.

Estudo de caso 3 - de identidade forjado: o confia em X-User-ID, mas o preserva o valor enviado pelo cliente quando não existe . O atacante injeta o . A correção remove sempre o externo, produz novo valor apenas após autenticação e restringe o a conexões vindas do .

Resumo do capítulo

Policies são o programa executado pelo data plane. Elas observam, decidem, transformam, chamam dependências e podem encerrar o fluxo. O comportamento final depende da ordem, do contexto, dos escopos, da herança e do tratamento de falhas.

Um robusto autentica e autoriza com critérios explícitos, valida mensagens sem assumir regras de domínio, controla tráfego com chaves corretas, transforma apenas o necessário, roteia de forma explicável e aplica e resiliência conforme a semântica da operação.

Policies precisam ser tratadas como código: fonte versionada, revisão, testes, CI/CD, observabilidade, auditoria, e ownership. O editor visual é apenas uma forma de autoria; não elimina dependências nem efeitos colaterais.

O eficiente percorre o com correlation ID e evidências por etapa. A pergunta central deixa de ser “o falhou?” e passa a ser “qual policy tomou qual decisão, com quais entradas e em quanto tempo?”.

Próximo passo do curso

O Capítulo 23 aprofundará a arquitetura e o funcionamento do Axway , relacionando conceitos deste capítulo a Policy Studio, filtros, circuitos, grupos, instâncias, , configuração e operação da plataforma.

Checklist de revisão de policies

  • Cada policy possui objetivo, owner, entrada, saída e comportamento em falha documentados.
  • A ordem do reflete dependências e é coberta por testes.
  • e variáveis de identidade não podem ser forjados pelo consumidor.
  • , segredos e dados pessoais são removidos de .
  • Chamadas externas têm , autenticação, métricas e decisão / .
  • Limites usam chave, escopo e contador coerentes com o objetivo.
  • Transformações preservam contrato, , assinatura e idempotência.
  • possuem orçamento, condição e owner únicos.
  • Erros mantêm status correto, formato seguro e correlation ID.
  • Fragments são versionados, testados e têm blast radius conhecido.
  • Mudanças passam por Git, revisão, validação, promoção e .
  • , métricas, e auditoria permitem reconstruir decisões.

Exercícios

  • Desenhe um para protegida por e explique a ordem das policies.
  • Compare aplicar rate limit antes e depois da autenticação.
  • Explique por que uma policy de leitura do pode afetar etapas posteriores.
  • Proponha tratamento para indisponibilidade de um externo.
  • Descreva riscos de em uma operação .
  • Defina uma chave segura de para multi-tenant autenticada.
  • Explique como impedir de identidade forjado.
  • Proponha global, e operação para policies distintas.
  • Crie uma matriz de testes para expirado, audience incorreta e escopo ausente.
  • Descreva um roteiro de para erro 502 produzido no .

Glossário

Tabela 8 - Vocabulário essencial do capítulo.
TermoDefinição
Backend sectionFase que prepara ou executa a chamada ao upstream.
Circuit breakerMecanismo que interrompe chamadas quando uma dependência está degradada.
ContextEstado disponível durante a execução do pipeline.
Fail-closedNegar a operação quando o mecanismo de decisão falha.
Fail-openPermitir ou degradar a operação quando um controle falha.
FragmentTrecho reutilizável de configuração de policies.
InboundFase de processamento da requisição recebida.
On-errorFluxo executado quando ocorre falha no pipeline.
OutboundFase de processamento da resposta.
PDPComponente que calcula decisão de autorização.
PEPPonto que aplica uma decisão de autorização.
Policy expressionExpressão avaliada em runtime para produzir condição ou valor.
Short-circuitEncerramento antecipado do fluxo com resposta própria.
Spike arrestControle de rajadas para suavizar picos de tráfego.
ThrottlingRegulação da velocidade ou concorrência de requisições.

Referências técnicas

  • . 9110 - Semantics.
  • . 9209 - The -Status Field.
  • Microsoft Learn. Policies in Azure Management.
  • Microsoft Learn. Azure Management policy reference e policy expressions.
  • Microsoft Learn. Referências de validate-content, choose, , -lookup e set-variable.
  • Axway Documentation Portal. , Policy Studio e filtros de políticas.
  • Envoy Documentation. filters, external authorization e .
  • . Security Top 10 - 2023 Edition.
  • OpenTelemetry. e semantic conventions para .

Nota de atualização

A sintaxe, disponibilidade e escopos das policies variam por produto, edição e versão. Antes de aplicar exemplos, valide a documentação oficial da plataforma implantada e execute testes em ambiente autorizado.