As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configuração de um espaço de dados mínimo viável para compartilhar dados entre organizações
Ramy Hcini, Michael Miller e Jorge Hernandez Suarez, Amazon Web Services
Ismail Abdellaoui e Malte Gasseling, Think-it
Resumo
Os espaços de dados são redes federadas para troca de dados com confiança e controle sobre os dados como princípios fundamentais. Eles permitem que as organizações compartilhem, troquem e colaborem em dados em grande escala, oferecendo uma solução econômica e independente de tecnologia.
Os espaços de dados têm o potencial de impulsionar significativamente os esforços para um futuro sustentável usando a solução de problemas baseada em dados com uma end-to-end abordagem que envolve todas as partes interessadas relevantes.
Este padrão orienta você pelo exemplo de como duas empresas podem usar a tecnologia de espaço de dados na Amazon Web Services (AWS) para impulsionar sua estratégia de redução de emissões de carbono. Nesse cenário, a empresa X fornece dados de emissões de carbono, que a empresa Y consome. Consulte a seção Informações adicionais para obter os seguintes detalhes da especificação do espaço de dados:
Participantes
Caso de negócios
Autoridade do espaço de dados
Componentes do espaço de dados
Serviços do espaço de dados
Dados a serem trocados
Modelo de dados
Conector Tractus-X EDC
O padrão inclui etapas para o seguinte:
Implantação da infraestrutura necessária para um espaço de dados básico com dois participantes em AWS execução.
Troca de dados sobre emissões de carbono usando os conectores de forma segura.
Este padrão implanta um cluster do Kubernetes que hospedará conectores de espaço de dados e seus serviços por meio do Amazon Elastic Kubernetes Service (Amazon EKS).
O ambiente de gerenciamento e o plano de dados do Eclipse Dataspace Components (EDC)
Além disso, o serviço de identidade é implantado no Amazon Elastic Compute Cloud EC2 (Amazon) para replicar um cenário real de um espaço de dados mínimo viável (MVDS).
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS para implantar a infraestrutura de sua escolha Região da AWS
Um usuário AWS Identity and Access Management (IAM) com acesso ao Amazon S3 que será usado temporariamente como usuário técnico (o conector EDC atualmente não suporta o uso de funções). Recomendamos que você crie um usuário do IAM especificamente para essa demonstração e que esse usuário tenha permissões limitadas associadas a ela.)
AWS Command Line Interface (AWS CLI) instalado e configurado em sua escolha Região da AWS
eksctl
na sua estação de trabalho Git
na sua estação de trabalho Um AWS Certificate Manager certificado (ACM) SSL/TLS
Um nome DNS que apontará para um Application Load Balancer (o nome DNS deve estar coberto pelo certificado ACM)
HashiCorp Vault
(Para obter informações sobre como usar AWS Secrets Manager para gerenciar segredos, consulte a seção Informações adicionais.)
Versões do produto
Limitações
Seleção de conectores: essa implantação usa um conector baseado em EDC. No entanto, certifique-se de considerar os pontos fortes e as funcionalidades dos conectores EDC
e FIWARE True para tomar uma decisão informada que se alinhe às necessidades específicas da implantação. Compilação do conector EDC: a solução de implantação escolhida se baseia no chart do Helm Tractus-X EDC Connector
, uma opção de implantação bem estabelecida e amplamente testada. A decisão de usar esse gráfico é motivada por seu uso comum e pela inclusão de extensões essenciais na compilação fornecida. Embora o PostgreSQL HashiCorp e o Vault sejam componentes padrão, você tem a flexibilidade de personalizar sua própria construção de conectores, se necessário. Acesso ao cluster privado: o acesso ao cluster do EKS implantado é restrito aos canais privados. A interação com o cluster é realizada exclusivamente por meio do uso de
kubectle o IAM. O acesso público aos recursos do cluster pode ser habilitado usando balanceadores de carga e nomes de domínio, que devem ser implementados seletivamente para expor serviços específicos a uma rede mais ampla. No entanto, não recomendamos fornecer acesso público.Foco na segurança: a ênfase é colocada na abstração das configurações de segurança de acordo com as especificações padrão para que você possa se concentrar nas etapas envolvidas na troca de dados do conector EDC. Embora as configurações de segurança padrão sejam mantidas, é fundamental habilitar comunicações seguras antes de expor o cluster à rede pública. Essa precaução garante uma base sólida para o manuseio seguro de dados.
Custo da infraestrutura: uma estimativa do custo da infraestrutura pode ser encontrada usando o AWS Calculadora de Preços
. Um cálculo simples mostra que os custos podem chegar a USD 162,92 por mês para a infraestrutura implantada.
Arquitetura
A arquitetura MVDS compreende duas nuvens privadas virtuais (VPCs), uma para o serviço de identidade Dynamic Attribute Provisioning System (DAPS) e outra para o Amazon EKS.
Arquitetura do DAPS
O diagrama a seguir mostra o DAPS em execução em EC2 instâncias controladas por um grupo de Auto Scaling. Um Application Load Balancer e uma tabela de rotas expõem os servidores DAPS. O Amazon Elastic File System (Amazon EFS) sincroniza dados entre instâncias do DAPS.

Arquitetura Amazon EKS
Os espaços de dados são projetados para serem soluções independentes de tecnologia, e existem várias implementações. Este padrão usa um cluster do Amazon EKS para implantar os componentes técnicos do espaço de dados. O diagrama a seguir mostra a implantação de um cluster do EKS. Os nós de processamento são instalados em sub-redes privadas. Os pods do Kubernetes acessam a instância do Amazon Relational Database Service (Amazon RDS) para PostgreSQL, que também está nas sub-redes privadas. Os pods do Kubernetes armazenam dados compartilhados no Amazon S3.

Ferramentas
AWS serviços
AWS CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los em todo o ciclo de vida em todas Contas da AWS as regiões.
O Amazon Elastic Compute Cloud (Amazon EC2) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
Amazon Elastic File System (Amazon EFS) ajuda você a criar e configurar sistemas de arquivos compartilhados na Nuvem AWS.
O Amazon Elastic Kubernetes Service (Amazon EKS) ajuda você a executar o AWS Kubernetes sem precisar instalar ou manter seu próprio plano de controle ou nós do Kubernetes.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
O ELB (ELB) distribui o tráfego de entrada do aplicativo ou da rede em vários destinos. Por exemplo, você pode distribuir o tráfego entre EC2 instâncias, contêineres e endereços IP em uma ou mais zonas de disponibilidade.
Outras ferramentas
O eksctl é utilitário de linha de comando para criar e gerenciar clusters do Kubernetes no Amazon EKS.
O Git
é um sistema de controle de versão distribuído e de código aberto. HashiCorp O Vault
fornece armazenamento seguro com acesso controlado para credenciais e outras informações confidenciais. O Helm
é um gerenciador de pacotes de código aberto para o Kubernetes que auxilia na instalação e no gerenciamento de aplicações no cluster do Kubernetes. kubectl
é uma interface de linha de comando que ajuda você na execução de comandos em clusters do Kubernetes. O Postman
é uma plataforma de API.
Repositório de código
Os arquivos YAML de configuração do Kubernetes e os scripts Python para esse padrão estão disponíveis no repositório. GitHub aws-patterns-edc
Práticas recomendadas
Amazon EKS e isolamento das infraestruturas dos participantes
Os namespaces no Kubernetes separarão a infraestrutura do provedor da empresa X da infraestrutura do consumidor da empresa Y neste padrão. Para obter mais informações, consulte EKS Best Practices Guide
Em uma situação mais realista, cada participante teria um cluster do Kubernetes separado executado em sua própria Conta da AWS. A infraestrutura compartilhada (DAPS neste padrão) seria acessível pelos participantes do espaço de dados e estaria completamente separada das infraestruturas dos participantes.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Clonar o repositório. | Para clonar o repositório na sua estação de trabalho, execute o seguinte comando:
A estação de trabalho deve ter acesso ao seu Conta da AWS. | DevOps engenheiro |
Provisione o cluster do Kubernetes e configure namespaces. | Para implantar um cluster do EKS padrão simplificado em sua conta, execute o seguinte comando
O comando cria a VPC e as sub-redes públicas e privadas que abrangem três zonas de disponibilidade diferentes. Depois que a camada de rede é criada, o comando cria duas Para obter mais informações e exemplos de resultados, consulte o guia eksctl Depois de provisionar o cluster privado, adicione o novo cluster do EKS à sua configuração local do Kubernetes executando o seguinte comando:
Esse padrão usa o Para confirmar se os nós do EKS estão em funcionamento e em estado de prontidão, execute o seguinte comando:
| DevOps engenheiro |
Configure os namespaces. | Para criar namespaces para o provedor e o consumidor, execute os seguintes comandos:
Neste padrão, é importante usar | DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Implante o DAPS usando AWS CloudFormation. | Para facilitar o gerenciamento das operações do DAPS, o servidor DAPS é instalado nas EC2 instâncias. Para instalar o DAPS, use o modelo do AWS CloudFormation
Você pode implantar o AWS CloudFormation modelo fazendo login Console de gerenciamento da AWS e usando o AWS CloudFormation console
O nome do ambiente é de sua própria escolha. Recomendamos usar um termo significativo, como Para esse padrão, O modelo implanta as EC2 instâncias em sub-redes privadas. Isso significa que as instâncias não podem ser acessadas diretamente por meio de SSH (Secure Shell) pela Internet. As instâncias são provisionadas com a função e o AWS Systems Manager agente do IAM necessários para permitir o acesso às instâncias em execução por meio do Gerenciador de sessões, um recurso de. AWS Systems Manager Recomendamos usar o Gerenciador de Sessões para acesso. Como alternativa, você pode provisionar um bastion host para permitir o acesso SSH da Internet. Ao usar a abordagem bastion host, a EC2 instância pode levar mais alguns minutos para começar a ser executada. Depois que o AWS CloudFormation modelo for implantado com sucesso, aponte o nome DNS para o nome DNS do Application Load Balancer. Para confirmar, execute o seguinte comando:
A saída deve ser semelhante ao seguinte:
| DevOps engenheiro |
Registre os conectores dos participantes no serviço DAPS. | Em qualquer uma das EC2 instâncias provisionadas para o DAPS, registre os participantes:
A escolha dos nomes não afeta as próximas etapas. Recomendamos usar Os comandos de registro também configurarão automaticamente o serviço DAPS com as informações necessárias obtidas dos certificados e chaves criados. Enquanto estiver conectado a um servidor DAPS, reúna as informações necessárias para as etapas posteriores da instalação:
Recomendamos copiar e colar o texto em arquivos com nomes semelhantes prefixados com Você deve ter o cliente IDs para o provedor e o consumidor e deve ter quatro arquivos em seu diretório de trabalho em sua estação de trabalho:
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Clone o repositório Tractus-X EDC e use a versão 0.4.1. | A construção do conector Tractus-X EDC requer que os serviços PostgreSQL (banco de dados de ativos) e HashiCorp Vault (gerenciamento de segredos) sejam implantados e disponibilizados. Há muitas versões diferentes dos charts do Helm Tractus-X EDC. Este padrão especifica a versão 0.4.1 porque usa o servidor DAPS. As versões mais recentes usam o Managed Identity Wallet (MIW) com uma implementação distribuída do serviço de identidade. Na estação de trabalho em que você criou os dois namespaces do Kubernetes, clone o repositório tractusx-edc
| DevOps engenheiro |
Configure chart do Helm Tractus-X EDC. | Modifique a configuração do modelo do chart do Helm Tractus-X para permitir que os dois conectores interajam juntos. Para fazer isso, você adicionaria o namespace ao nome DNS do serviço para que ele pudesse ser resolvido por outros serviços no cluster. Essas modificações devem ser feitas no arquivo Certifique-se de comentar todas as dependências do DAPS em
| DevOps engenheiro |
Configure os conectores para usar o PostgreSQL no Amazon RDS. | (Opcional) A instância do Amazon Relational Database Service (Amazon RDS) não é necessária neste padrão. No entanto, é altamente recomendável usar o Amazon RDS ou o Amazon Aurora, pois eles oferecem recursos como alta disponibilidade, backup e recuperação. Para substituir o PostgreSQL no Kubernetes pelo Amazon RDS, faça o seguinte:
| DevOps engenheiro |
Configure e implante o conector do provedor e seus serviços. | Para configurar o conector do provedor e seus serviços, faça o seguinte:
| DevOps engenheiro |
Adicione o certificado e as chaves ao cofre do provedor. | Para evitar confusão, produza os seguintes certificados fora do diretório Por exemplo, execute o comando a seguir para mudar para o diretório principal:
Agora você precisa adicionar os segredos necessários ao provedor no cofre. Os nomes dos segredos dentro do cofre são os valores das chaves na seção
Uma chave Advanced Encryption Standard (AES), uma chave privada, uma chave pública e um certificado autoassinado são gerados inicialmente. Posteriormente, eles são adicionados como segredos ao cofre. Além disso, esse diretório deve conter os arquivos
Agora você deve conseguir acessar o cofre por meio de seu navegador ou da CLI. Navegador
CLI do Vault A CLI também usará a porta de encaminhamento que você configurou.
| DevOps engenheiro |
Configure e implante o conector do consumidor e seus serviços. | As etapas para configurar e implantar o consumidor são semelhantes às que você concluiu para o provedor:
| |
Adicione o certificado e as chaves ao cofre do consumidor. | Do ponto de vista da segurança, recomendamos a regeneração dos certificados e chaves de cada participante do espaço de dados. Este padrão regenera certificados e chaves para o consumidor. As etapas são muito semelhantes às do provedor. Você pode verificar os nomes secretos no arquivo Os nomes dos segredos dentro do cofre são os valores das chaves na seção
Os arquivos
Desta vez, a porta local é 8201, para que você possa ter portas de encaminhamento em vigor tanto para o produtor quanto para o consumidor. Navegador Você pode usar seu navegador para se conectar a http://localhost:8201/ Os segredos e arquivos que contêm o conteúdo são os seguintes:
CLI do Vault Usando a CLI do Vault, você pode executar os seguintes comandos para fazer login no cofre e criar os segredos:
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Configure o encaminhamento de portas. |
O cluster é privado e não pode ser acessado publicamente. Para interagir com os conectores, use o recurso de encaminhamento de portas do Kubernetes para encaminhar o tráfego gerado pela sua máquina para o ambiente de gerenciamento do conector.
| DevOps engenheiro |
Crie buckets do S3 para o provedor e o consumidor. | Atualmente, o conector EDC não usa credenciais temporárias da AWS, como as fornecidas ao assumir uma função. O EDC oferece suporte somente ao uso de uma combinação de ID de chave de acesso do IAM e de uma chave de acesso secreta. São necessários dois buckets do S3 para as etapas posteriores. Um bucket do S3 é usado para armazenar dados disponibilizados pelo provedor. O outro bucket do S3 é para dados recebidos pelo consumidor. O usuário do IAM deve ter permissão para ler e gravar objetos somente nos dois buckets nomeados. Um ID de chave de acesso e um par de chaves de acesso secretas precisam ser criadas e mantidas em segurança. Depois que esse MVDS for desativado, o usuário do IAM deverá ser excluído. O código abaixo é um exemplo de política do IAM para o usuário:
| DevOps engenheiro |
Configure o Postman para interagir com o conector. | Agora você pode interagir com os conectores por meio da sua EC2 instância. Use o Postman como um cliente HTTP e forneça Coleções Postman para os conectores do provedor e do consumidor. Importe as coleções Este padrão usa variáveis de coleção Postman para fornecer informações às suas solicitações. | Desenvolvedor de aplicativos, Engenheiro de dados |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Prepare os dados de intensidade das emissões de carbono a serem compartilhados. | Primeiro, você precisa decidir sobre o ativo de dados a ser compartilhado. Os dados da empresa X representam a pegada de emissões de carbono de sua frota de veículos. O peso é o peso bruto do veículo (GVW) em toneladas e as emissões estão em gramas por tonelada-quilômetro (g CO2 e/t-km) de CO2 acordo com a medição (WTW): Wheel-to-Well
Os dados de exemplo estão no arquivo A empresa X usa o Amazon S3 para armazenar objetos. Crie o bucket do S3 e armazene o objeto de dados de exemplo nele. Os comandos a seguir criam um bucket do S3 com configurações de segurança padrão. É altamente recomendável consultar as práticas recomendadas de segurança para o Amazon S3.
O nome do bucket do S3 deve ser globalmente exclusivo. Para obter mais informações sobre as regras de nomenclatura, consulte a documentação da AWS. | Engenheiro de dados, desenvolvedor de aplicativos |
Registre o ativo de dados no conector do provedor usando o Postman. | Um ativo de dados do conector EDC contém o nome dos dados e sua localização. Nesse caso, o ativo de dados do conector EDC apontará para o objeto criado no bucket do S3:
| Desenvolvedor de aplicativos, Engenheiro de dados |
Defina a política de uso do ativo. | Um ativo de dados EDC deve estar associado a políticas de uso claras. Primeiro, crie a definição de política no conector do provedor. A política da empresa X é permitir que os participantes do espaço de dados usem os dados da pegada de carbono.
| Desenvolvedor de aplicativos, Engenheiro de dados |
Defina uma oferta de contrato EDC para o ativo e sua política de uso. | Para permitir que outros participantes solicitem acesso aos seus dados, ofereça-os em um contrato que especifique as condições e permissões de uso:
| Desenvolvedor de aplicativos, Engenheiro de dados |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Solicite o catálogo de dados compartilhado pela empresa X. | Como consumidora de dados no espaço de dados, a empresa Y precisa primeiro descobrir os dados que estão sendo compartilhados por outros participantes. Nessa configuração básica, você pode fazer isso solicitando que o conector do consumidor solicite o catálogo de ativos disponíveis diretamente do conector do provedor.
| Desenvolvedor de aplicativos, Engenheiro de dados |
Inicie uma negociação de contrato para os dados de intensidade de emissões de carbono da empresa X. | Agora que você identificou o ativo que deseja consumir, inicie um processo de negociação de contrato entre os conectores do consumidor e do provedor.
O processo pode levar algum tempo até atingir o estado VERIFICADO. Você pode verificar o estado da negociação do contrato e o ID do contrato correspondente usando a solicitação | Desenvolvedor de aplicativos, Engenheiro de dados |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Consuma dados de endpoints HTTP. | (Opção 1) Para usar o plano de dados HTTP para consumir dados no espaço de dados, você pode usar webhook.site
Nesta última etapa, você deve enviar a solicitação para o plano de dados do consumidor (portas de encaminhamento adequadas), conforme indicado na carga útil ( | Desenvolvedor de aplicativos, Engenheiro de dados |
Consuma dados diretamente dos buckets do S3. | (Opção 2) Use a integração do Amazon S3 com o conector EDC e aponte diretamente para o bucket do Amazon S3 na infraestrutura do consumidor como destino:
| Engenheiro de dados, desenvolvedor de aplicativos |
Solução de problemas
| Problema | Solução |
|---|---|
O conector pode levantar um problema sobre o formato PEM do certificado. | Concatene o conteúdo de cada arquivo em uma única linha adicionando |
Recursos relacionados
Building data spaces for sustainability use cases (Recomendações da AWS, estratégia da Think-it
) Enabling data sharing through data spaces and AWS
(publicação no blog)
Mais informações
Especificações do espaço de dados
Participantes
Participante | Descrição da empresa | Foco da empresa |
|---|---|---|
Empresa X | Opera uma frota de veículos na Europa e América do Sul para transportar várias mercadorias. | O objetivo é tomar decisões orientadas por dados para reduzir a intensidade de emissões de carbono. |
Empresa Y | Uma autoridade reguladora ambiental | Aplica regulamentações e políticas ambientais projetadas para monitorar e mitigar o impacto ambiental de empresas e indústrias, incluindo a intensidade das emissões de carbono. |
Caso de negócios
A empresa X usa tecnologia de espaço de dados para compartilhar dados de pegada de carbono com um auditor de conformidade, a empresa Y, para avaliar e abordar o impacto ambiental das operações logísticas da empresa X.
Autoridade do espaço de dados
A autoridade do espaço de dados é um consórcio de organizações que governam o espaço de dados. Neste padrão, tanto a empresa X quanto a empresa Y formam o órgão de governança e representam uma autoridade federada de espaço de dados.
Componentes do espaço de dados
Componente | Implementação escolhida | Mais informações |
|---|---|---|
Protocolo de troca de conjuntos de dados | Dataspace Protocol versão 0.8 | |
Conector do espaço de dados | Conector Tractus-X EDC versão 0.4.1 | |
Políticas de troca de dados | Política USE padrão |
Serviços do espaço de dados
Serviço | Implementação | Mais informações |
|---|---|---|
Serviço de identidade | “Um Dynamic Attribute Provisioning System (DAPS) tem a intenção de determinar certos atributos para organizações e conectores. Portanto, terceiros não precisam confiar neste último, desde que confiem nas afirmações do DAPS.” — DAPS Para focar na lógica do conector, o espaço de dados é implantado em uma EC2 máquina Amazon usando o Docker Compose. | |
Serviço de descoberta | “O Catálogo Federado constitui um repositório indexado de autodescrições do Gaia-X para permitir a descoberta e seleção de provedores e suas ofertas de serviços. As autodescrições são as informações fornecidas pelos participantes sobre si mesmos e sobre seus serviços na forma de propriedades e reivindicações.” — Kickstarter do ecossistema Gaia-X |
Dados a serem trocados
Ativos de dados | Description | Formato |
|---|---|---|
Dados de emissões de carbono | Valores de intensidade para diferentes tipos de veículos na região especificada (Europa e América do Sul) de toda a frota de veículos | Arquivo JSON |
Modelo de dados
{ "region": "string", "vehicles": [ // Each vehicle type has its Gross Vehicle Weight (GVW) category and its emission intensity in grams of CO2 per Tonne-Kilometer (g CO2 e/t-km) according to the "Well-to-Wheel" (WTW) measurement. { "type": "string", "gross_vehicle_weight": "string", "emission_intensity": { "CO2": "number", "unit": "string" } } ] }
Conector Tractus-X EDC
Para a documentação de cada parâmetro EDC do Tractus-X, consulte o arquivo de valores original
A tabela a seguir lista todos os serviços, junto com suas portas e endpoints expostos correspondentes para referência.
Nome do serviço | Porta e caminho |
|---|---|
Ambiente de gerenciamento | ● gerenciamento: ‒ Porta: 8081 Caminho: ● controle ‒ Porta: 8083 Caminho: ● protocolo Porta: 8084 Caminho: ● métricas ‒ Porta: 9090 Caminho: ● observabilidade ‒ Porta: 8085 Caminho: |
Plano de dados | padrão ‒ Porta: 8080 Caminho: público ‒ Porta: 8081 Caminho: proxy ‒ Porta: 8186 Caminho: métricas ‒ Porta: 9090 Caminho: observabilidade ‒ Porta: 8085 Caminho: |
Cofre | Porta: 8200 |
PostgreSQL | Porta: 5432 |
Usando o AWS Secrets Manager Manager
É possível usar o Secrets Manager em vez do HashiCorp Vault como gerenciador de segredos. Para fazer isso, você deve usar ou criar a extensão AWS Secrets Manager EDC.
Você será responsável por criar e manter sua própria imagem, porque o Tractus-X não fornece suporte para o Secrets Manager.
Para fazer isso, você precisa modificar os arquivos Gradle de compilação do plano de controle e do plano
Para obter mais insights sobre a refatoração da imagem do Docker do conector Tractus-X, consulte Refactor Tractus-X EDC Helm charts.
Para simplificar, evitamos reconstruir a imagem do conector nesse padrão e usamos o HashiCorp Vault.