Aproveitando o API Gateway para Soberania de Dados e Conformidade de Dados
November 28, 2022
Contexto e Desafios
Com a crescente popularidade de smartphones, IoT e redes móveis de alta velocidade, uma grande quantidade de dados sensíveis foi gerada, como fotos, transações financeiras, localizações geográficas, sequenciamento de DNA, registros médicos e ensaios clínicos. A análise estatística baseada nesses dados sensíveis pode retratar com precisão indivíduos, empresas ou grupos de pessoas, ameaçando a privacidade pessoal e a segurança nacional.
Cada vez mais, os órgãos legislativos de diversos países estão cientes da gravidade e urgência desse problema. Eles introduziram muitas leis e regulamentações para regular a coleta e a transferência transfronteiriça de dados. O Regulamento Geral de Proteção de Dados (GDPR) na Europa e a Lei de Portabilidade e Responsabilidade de Seguros de Saúde (HIPAA) nos EUA são pioneiros dessas leis. Muitos países em desenvolvimento também estão se mobilizando:
- Malásia: Lei de Proteção de Dados Pessoais de 2010 (PDPA), em vigor desde novembro de 2013.
- China: A Lei de Segurança Cibernética da República Popular da China, a Lei de Segurança de Dados da República Popular da China e a Lei de Proteção de Informações Pessoais da República Popular da China foram promulgadas sucessivamente de 2017 a 2021.
- Brasil: Lei Geral de Proteção de Dados (LGPD), em vigor desde setembro de 2020.
- Tailândia: Lei de Proteção de Dados Pessoais da Tailândia (PDPA), em vigor desde junho de 2022.
Assim, os dados gerados por terminais e usuários, armazenados e mantidos pelos fabricantes, são supervisionados por múltiplas agências de aplicação da lei. Portanto, as empresas, especialmente as grandes multinacionais, enfrentam muitos problemas novos e urgentes:
- Quais dados podem ser coletados? Quais não podem?
- Como e onde os dados são armazenados?
- Os dados podem ser transferidos através das fronteiras?
Será um projeto massivo organizar e formular soluções para todos eles. Aqui, focaremos principalmente em uma questão:
Para os dados do cliente transmitidos por meio da API, como determinar a soberania dos dados no nível do gateway da API para garantir que os dados estejam sendo processados e armazenados legalmente?
Por exemplo, um usuário americano em uma viagem de negócios à Europa usa seu celular para fazer uma transferência bancária. Nesse momento, os dados da transação devem ser processados e armazenados por um servidor mais distante nos Estados Unidos, e não por um servidor mais próximo na Europa.
Na segunda metade deste artigo, apresentaremos uma solução técnica específica para esse exemplo. Antes disso, vamos primeiro entender o que são soberania e conformidade de dados.
O que são Soberania e Conformidade de Dados?
Soberania de Dados
Um país não apenas tem soberania sobre o espaço físico, como território, espaço aéreo e águas territoriais, mas também tem soberania sobre seus dados e ciberespaço nacional.
Tomemos o Regulamento Geral de Proteção de Dados (GDPR) como exemplo, que é um regulamento da UE para a privacidade e proteção de dados pessoais. Há um dos requisitos mais básicos no GDPR. "Todas as ações de coleta de dados do usuário exigem o consentimento do usuário, e o usuário tem o direito de limpar e remover os dados pessoais armazenados a qualquer momento."
Portanto, se uma empresa deseja transferir dados europeus para outras regiões, deve garantir que os requisitos de soberania de dados do terceiro país atendam aos da UE. Em relação à necessidade de os dados estarem em conformidade com as leis locais, há de fato muitas preocupações nos negócios multinacionais.
Outra preocupação é a Lei Patriota dos EUA, que exige que todos os dados armazenados nos EUA, ou dados armazenados por empresas americanas, estejam sob a supervisão dos Estados Unidos. O Departamento de Justiça dos EUA e a Agência Central de Inteligência (CIA) têm o direito de solicitar que as empresas forneçam dados. Em 2013, o Departamento de Justiça dos EUA solicitou que a Microsoft divulgasse algumas informações de e-mail armazenadas em seus servidores na Irlanda. A Microsoft rejeitou o pedido do Departamento de Justiça dos EUA porque isso violaria os requisitos regulatórios da União Europeia. Então, o Departamento de Justiça dos EUA levou a Microsoft ao tribunal, mas a Microsoft venceu o caso. Posteriormente, para evitar riscos à soberania dos dados, muitas empresas nos Estados Unidos colocaram seus data centers diretamente na Europa, pensando que isso seria seguro. No entanto, recentemente, houve alguns casos em que os juízes decidiram que os EUA têm autoridade para solicitar dados de empresas americanas na Europa. Isso é a jurisdição de longo alcance dos Estados Unidos.
A soberania dos dados trouxe desafios significativos para os negócios globais das empresas, e como lidar adequadamente com a questão da soberania dos dados nas empresas tornou-se particularmente importante.
Conformidade de Dados
Para empresas multinacionais, a sincronização de dados é relativamente simples se não houver requisitos de soberania de dados. Os dados de um usuário nos Estados Unidos podem ser facilmente sincronizados com servidores na Ásia e no Reino Unido, como mostrado no diagrama abaixo. Dessa forma, quando um americano viaja para a Ásia, ele também pode acessar vários dados gerados quando estava nos EUA.
Com os requisitos de conformidade da soberania de dados, muitos dados não podem ser sincronizados e acessados entre países. As empresas precisam distinguir os usuários e isolar seus dados associados. Um método comum é dividir os usuários com base em regiões.
Tomemos o Kindle da Amazon como exemplo: os e-books comprados por usuários nos EUA não podem ser baixados para o Kindle com uma conta chinesa. Isso ocorre porque os dados entre diferentes países (regiões) são completamente isolados. A arquitetura do sistema é a seguinte:
Então, o que deve ser feito tecnicamente se um usuário no Reino Unido quiser acessar a Amazon UK com uma conta dos EUA? Vamos dar uma olhada no diagrama de arquitetura abaixo. A maioria dos produtos existentes de gateway de API propõe soluções semelhantes.
Solução Existente no Nível do Gateway de API
Podemos resumir o cerne dessa solução em uma frase:
O gateway de API no Reino Unido identifica o usuário. Se a API descobrir que o usuário está registrado nos EUA, ele será roteado para os servidores dos EUA para processamento.
No entanto, também há alguns desafios técnicos ocultos por trás disso, bem como riscos de conformidade:
-
O gateway de API precisa de capacidades de agendamento de rota de granularidade fina, obtém dados do cabeçalho HTTP, argumentos da solicitação e corpo da solicitação, e coopera com consultas a bancos de dados externos para determinar qual servidor deve lidar com o usuário.
-
A rede entre as regiões precisa estar conectada para encaminhar a solicitação. A sala de servidores do Reino Unido e a sala de servidores dos EUA precisam estar conectadas.
-
O gateway de API na sala de servidores do Reino Unido pode já ter descarregado o certificado SSL, lido o conteúdo da API e registrado os dados no disco local ou em outros serviços por meio de logs de acesso, logs de auditoria, sistemas de observabilidade, etc.
Existe uma maneira de resolver esses problemas?
Rede Multinível: A Solução do Apache APISIX para Garantir a Conformidade da Transmissão de Dados da API
Aqui introduzimos o conceito de "rede multinível" no APISIX para garantir a conformidade e segurança dos dados transmitidos pela API no nível do Gateway de API. Uma rede multinível, como o nome sugere, divide o gateway de API em duas camadas, Camada 1 e Camada 2, como mostrado na figura abaixo:
- Gateway de API da Camada 1: responsável por descarregar o certificado SSL, agendamento de rota de granularidade fina e decidir qual gateway de API da Camada 2 deve lidar com as solicitações da API.
- Gateway de API da Camada 2: Este é o gateway de API original, que não precisa se preocupar com a conformidade dos dados.
Voltando à questão do início do artigo: como um usuário registrado nos Estados Unidos pode garantir a conformidade dos dados da API, independentemente do local de sua transação?
Primeiro, a solicitação da API será enviada para o gateway de API da Camada 1, que é essencialmente o Apache APISIX, mas adiciona o objeto rede multinível
, no qual plugins personalizados podem ser vinculados:
- O gateway de API da Camada 1 define o endereço, peso e outras informações dos clusters do gateway de API da Camada 2. Aqui configuramos o cluster dos EUA e o cluster do Reino Unido:
http://IP-do-Gateway-de-API-da-Camada-1/apisix/admin/multilayer_network/clusters/cluster-US
{
"desc": "descrição",
"http_port": 80,
"https_port": 443,
"gateways": [
{"host": "IP1", "weight": 1},
{"host": "IP2", "weight": 2}
]
}
http://IP-do-Gateway-de-API-da-Camada-1/apisix/admin/multilayer_network/clusters/cluster-UK
{
"desc": "descrição",
"http_port": 80,
"https_port": 443,
"gateways": [
{"host": "IP1", "weight": 1},
{"host": "IP2", "weight": 2}
]
}
- Defina as regras de roteamento na rede multinível e vincule com o plugin
bar
:
http://IP-do-Gateway-de-API-da-Camada-1/apisix/admin/multilayer_network/routes/bank-foo
{
"desc": "API bancária",
"hosts": ["foo.com"],
"uris": ["/*"],
"plugin_id": "bar"
}
- Defina plugins personalizados:
http://***/apisix/admin/multilayer_network/plugins/bar
{
"desc": "plugin",
"plugins": {
"jwt-auth": {
... ...
},
"foo-upstream-selector": {
"scheme": "HTTPS"
... ...
},
... ...
}
}
Aqui vinculamos dois plugins. O plugin jwt-auth é usado para completar a autenticação da solicitação. O foo-upstream-selector é usado para ler informações como ID do usuário, país/região e cluster ao qual o usuário pertence do banco de dados e especifica para qual cluster do gateway de API da Camada 2 ele deve rotear.
Essa arquitetura multinível garante a conformidade dos dados entre diferentes países.
Conclusão
Em resumo, o agendamento de rota de granularidade fina habilitado pela arquitetura multinível do gateway de API pode ajudar as empresas a processar dados de API de forma rápida e segura, ao mesmo tempo em que atende aos requisitos de conformidade de dados. Oferecemos essa funcionalidade pronta para uso no API7 Cloud e no API7 Enterprise. Bem-vindo a preencher o formulário para entrar em contato conosco.