Configuración de un espacio de datos mínimo viable para compartir datos entre organizaciones - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de un espacio de datos mínimo viable para compartir datos entre organizaciones

Ramy Hcini, Michael Miller y Jorge Hernández Suárez, Amazon Web Services

Ismail Abdellaoui y Malte Gasseling, Think-it

Resumen

Los espacios de datos son redes federadas para el intercambio de datos en las que la confianza y el control sobre los propios datos son principios fundamentales. Permiten a las organizaciones compartir, intercambiar y colaborar en datos a escala, ya que ofrecen una solución rentable e independiente de la tecnología.

Los espacios de datos tienen el potencial de impulsar significativamente los esfuerzos para un futuro sostenible mediante el uso de la resolución de problemas basada en datos con un end-to-end enfoque que involucre a todas las partes interesadas relevantes.

Este patrón lo guía a través del ejemplo de cómo dos empresas pueden utilizar la tecnología de espacio de datos en Amazon Web Services (AWS) para impulsar su estrategia de reducción de emisiones de carbono. En este escenario, la empresa X proporciona datos sobre las emisiones de carbono, que la empresa Y consume. Consulte la sección Información adicional para obtener los siguientes detalles de las especificaciones del espacio de datos:

  • Participantes

  • Argumentos comerciales

  • Autoridad del espacio de datos

  • Componentes del espacio de datos

  • Servicios del espacio de datos

  • Datos que se intercambiarán

  • Modelo de datos

  • Conector EDC Tractus-X

El patrón incluye los siguientes pasos:

  • Implementar la infraestructura necesaria para un espacio de datos básico con dos participantes ejecutándolo AWS.

  • Intercambio de datos sobre la intensidad de las emisiones de carbono mediante los conectores de forma segura.

Este patrón implementa un clúster de Kubernetes que alojará los conectores del espacio de datos y sus servicios a través de Amazon Elastic Kubernetes Service (Amazon EKS).

Tanto el plano de control como el plano de datos de Eclipse Dataspace Components (EDC) se implementan en Amazon EKS. El gráfico oficial de Tractus-X Helm despliega los servicios de PostgreSQL y Vault como dependencias. HashiCorp

Además, el servicio de identidad se implementa en Amazon Elastic Compute Cloud (Amazon EC2) para replicar un escenario real de un espacio de datos mínimo viable (MVDS).

Requisitos previos y limitaciones

Requisitos previos 

  • Un activo Cuenta de AWS para implementar la infraestructura que elijas Región de AWS

  • Un usuario AWS Identity and Access Management (IAM) con acceso a Amazon S3 que se utilizará temporalmente como usuario técnico (el conector EDC actualmente no admite el uso de funciones). Le recomendamos que cree un usuario de IAM específico para esta demostración y que este usuario tenga permisos limitados asociados a él).

  • AWS Command Line Interface (AWS CLI) instalado y configurado según su elección Región de AWS

  • AWS credenciales de seguridad

  • eksctl en la estación de trabajo

  • Git en la estación de trabajo

  • kubectl

  • Helm

  • Cartero

  • Un certificado AWS Certificate Manager (ACM) SSL/TLS

  • Un nombre de DNS que apuntará a un equilibrador de carga de aplicación (el nombre de DNS debe estar cubierto por el certificado de ACM)

  • HashiCorp Vault (para obtener información sobre AWS Secrets Manager su uso para administrar secretos, consulte la sección de información adicional).

Versiones de producto

Limitaciones

  • Selección de conectores: esta implementación utiliza un conector basado en EDC. Sin embargo, asegúrese de tener en cuenta los puntos fuertes y las funcionalidades de los conectores EDC y FIWARE True para tomar una decisión informada que se ajuste a las necesidades específicas de la implementación.

  • Versión del conector EDC: la solución de implementación elegida se basa en el gráfico de Helm del conector EDC Tractus-X, una opción de implementación bien establecida y ampliamente probada. La decisión de utilizar este gráfico se debe a su uso habitual y a la inclusión de las extensiones esenciales en la versión proporcionada. Si bien PostgreSQL HashiCorp y Vault son componentes predeterminados, tiene la flexibilidad de personalizar su propia compilación de conectores si es necesario.

  • Acceso al clúster privado: el acceso al clúster de EKS implementado está restringido a los canales privados. La interacción con el clúster se lleva a cabo exclusivamente mediante el uso de kubectl e IAM. El acceso público a los recursos del clúster se puede activar mediante balanceadores de carga y nombres de dominio, que deben implementarse de forma selectiva para exponer servicios específicos a una red más amplia. Sin embargo, no recomendamos proporcionar acceso público.

  • Atención a la seguridad: se hace hincapié en resumir las configuraciones de seguridad según las especificaciones predeterminadas, de modo que puede concentrarse en los pasos necesarios para el intercambio de datos del conector EDC. Si bien se mantiene la configuración de seguridad predeterminada, es imprescindible activar las comunicaciones seguras antes de exponer el clúster a la red pública. Esta precaución garantiza una base sólida para la gestión segura de los datos.

  • Costo de la infraestructura: se puede obtener una estimación del costo de la infraestructura mediante Calculadora de precios de AWS. Un cálculo sencillo muestra que los costos pueden ascender a 162,92 USD al mes para la infraestructura implementada.

Arquitectura

La arquitectura MVDS consta de dos nubes privadas virtuales (VPCs), una para el servicio de identidad del Sistema de aprovisionamiento dinámico de atributos (DAPS) y otra para Amazon EKS.

Arquitectura del DAPS

El siguiente diagrama muestra la ejecución de DAPS en EC2 instancias controladas por un grupo de Auto Scaling. Un equilibrador de carga de aplicación y una tabla de enrutamiento muestran los servidores del DAPS. Amazon Elastic File System (Amazon EFS) sincroniza los datos entre las instancias del DAPS.

Nube de AWS architecture with VPC, public/private subnets, load balancer, and DAPS servers across two availability zones.

Arquitectura Amazon EKS

Los espacios de datos están diseñados para ser soluciones independientes de la tecnología, y existen varias implementaciones. Este patrón utiliza un clúster de Amazon EKS para implementar los componentes técnicos del espacio de datos. En el siguiente diagrama se muestra una implementación del clúster de EKS. Los nodos de trabajo se instalan en subredes privadas. Los pods de Kubernetes acceden a la instancia de Amazon Relational Database Service (Amazon RDS) para PostgreSQL que también se encuentra en las subredes privadas. Los pods de Kubernetes almacenan datos compartidos en Amazon S3.

Nube de AWS architecture with VPC, public/private subnets, NAT gateways, and EKS clúster across two availability zones.

Tools (Herramientas)

AWS servicios

  • AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y administrarlos a lo largo de su ciclo de vida en todas Cuentas de AWS las regiones.

  • Amazon Elastic Compute Cloud (Amazon EC2) proporciona una capacidad informática escalable en el Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.

  • Amazon Elastic File System (Amazon EFS) lo ayuda a crear y configurar sistemas de archivos compartidos en la Nube de AWS.

  • Amazon Elastic Kubernetes Service (Amazon EKS) le ayuda a ejecutar AWS Kubernetes sin necesidad de instalar o mantener su propio plano de control o nodos de Kubernetes.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

  • ELB (ELB) distribuye el tráfico entrante de aplicaciones o de red entre varios destinos. Por ejemplo, puede distribuir el tráfico entre EC2 instancias, contenedores y direcciones IP en una o más zonas de disponibilidad.

Otras herramientas

  • eksctl: es una utilidad sencilla de línea de comandos para crear y administrar clústeres de Kubernetes en Amazon EKS.

  • Git es un sistema de control de versiones distribuido y de código abierto.

  • HashiCorp Vault proporciona un almacenamiento seguro con acceso controlado para las credenciales y otra información confidencial.

  • Helm es un administrador de paquetes de código abierto para Kubernetes que le permite instalar y administrar aplicaciones en el clúster de Kubernetes.

  • kubectl: una interfaz de la línea de comandos que le ayuda en la ejecución de comandos en clústeres de Kubernetes.

  • Postman es una plataforma de API.

Repositorio de código

Los archivos YAML de configuración de Kubernetes y los scripts de Python para este patrón están disponibles en el repositorio. GitHub aws-patterns-edc El patrón también utiliza el repositorio de EDC Tractus-X.

Prácticas recomendadas

Amazon EKS y el aislamiento de las infraestructuras de los participantes

Los espacios de nombres de Kubernetes separarán la infraestructura del proveedor de la empresa X y la infraestructura del consumidor de la empresa Y en este patrón. Para obtener más información, consulte las guías de prácticas recomendadas de EKS.

En una situación más realista, cada participante tendría un clúster de Kubernetes independiente que se ejecutaría dentro de su propia Cuenta de AWS. Los participantes del espacio de datos podrían acceder a la infraestructura compartida (DAPS en este patrón) que, al mismo tiempo, estaría completamente separada de las infraestructuras de los participantes.

Epics

TareaDescripciónHabilidades requeridas

Clonar el repositorio.

Para clonar el repositorio a la estación de trabajo, ejecute el siguiente comando:

git clone https://github.com/Think-iT-Labs/aws-patterns-edc

La estación de trabajo debe tener acceso a su. Cuenta de AWS

DevOps ingeniero

Aprovisione el clúster de Kubernetes y configure los espacios de nombres.

Para implementar un clúster de EKS predeterminado simplificado en la cuenta, ejecute el siguiente comando de eksctl en la estación de trabajo en la que clonó el repositorio:

eksctl create cluster

El comando crea la VPC y las subredes públicas y privadas que abarcan tres zonas de disponibilidad diferentes. Una vez creada la capa de red, el comando crea dos m5.large EC2 instancias dentro de un grupo de Auto Scaling.

Para obtener más información y ejemplos de resultados, consulte la guía de eksctl.

Tras aprovisionar el clúster privado, ejecute el siguiente comando para agregar el nuevo clúster de EKS a la configuración de Kubernetes local:

aws eks update-kubeconfig --name <EKS CLUSTER NAME> --region <AWS REGION>

Este patrón utiliza el eu-west-1 Región de AWS para ejecutar todos los comandos. Sin embargo, puede ejecutar los mismos comandos en el modo que prefiera Región de AWS.

Para confirmar que los nodos de EKS se estén ejecutando y estén preparados, ejecute el siguiente comando:

kubectl get nodes
DevOps ingeniero

Configure los espacios de nombres.

Para crear espacios de nombres para el proveedor y el consumidor, ejecute los siguientes comandos:

kubectl create ns provider kubectl create ns consumer

En este patrón, es importante utilizar provider y consumer como espacios de nombres para adaptarlos a las configuraciones en los siguientes pasos.

DevOps ingeniero
TareaDescripciónHabilidades requeridas

Implemente DAPS mediante AWS CloudFormation.

Para facilitar la administración de las operaciones de DAPS, el servidor DAPS se instala en las instancias. EC2

Para instalar el DAPS, utilice la plantilla de AWS CloudFormation. Necesitará el certificado de ACM y el nombre de DNS de la sección Requisitos previos. La plantilla implementa y configura lo siguiente:

  • Equilibrador de carga de aplicación

  • Grupo de escalado automático

  • EC2 instancias configuradas con datos de usuario para instalar todos los paquetes necesarios

  • Roles de IAM

  • DAPS

Puede implementar la AWS CloudFormation plantilla iniciando sesión en la AWS CloudFormation consola Consola de administración de AWS y utilizándola. También puede implementar la plantilla mediante un AWS CLI comando como el siguiente:

aws cloudformation create-stack --stack-name daps \ --template-body file://aws-patterns-edc/cloudformation.yml --parameters \ ParameterKey=CertificateARN,ParameterValue=<ACM Certificate ARN> \ ParameterKey=DNSName,ParameterValue=<DNS name> \ ParameterKey=InstanceType,ParameterValue=<EC2 instance type> \ ParameterKey=EnvironmentName,ParameterValue=<Environment Name> --capabilities CAPABILITY_NAMED_IAM

El nombre del entorno es de su elección. Recomendamos utilizar un término significativo, por ejemploDapsInfrastructure, porque se reflejará en las etiquetas de los AWS recursos.

Para este patrón, t3.small es lo suficientemente grande como para ejecutar el flujo de trabajo del DAPS, que tiene tres contenedores de Docker.

La plantilla implementa las EC2 instancias en subredes privadas. Esto significa que no se puede acceder directamente a las instancias a través de SSH (Secure Shell) desde Internet. Las instancias cuentan con la función de IAM y el AWS Systems Manager agente necesarios para permitir el acceso a las instancias en ejecución a través del administrador de sesiones, una capacidad de. AWS Systems Manager

Se recomienda utilizar el Administrador de sesiones para el acceso. Como alternativa, puede aprovisionar un host bastión para permitir el acceso SSH desde Internet. Si se utiliza el enfoque de host bastión, es posible que la EC2 instancia tarde unos minutos más en empezar a ejecutarse.

Una vez que la AWS CloudFormation plantilla se haya implementado correctamente, apunte el nombre DNS al nombre DNS de Application Load Balancer. Para confirmar, ejecute el siguiente comando:

dig <DNS NAME>

El resultado debería ser similar al siguiente:

; <<>> DiG 9.16.1-Ubuntu <<>> edc-pattern.think-it.io ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42344 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;edc-pattern.think-it.io. IN A ;; ANSWER SECTION: edc-pattern.think-it.io. 276 IN CNAME daps-alb-iap9zmwy3kn8-1328773120.eu-west-1.elb.amazonaws.com. daps-alb-iap9zmwy3kn8-1328773120.eu-west-1.elb.amazonaws.com. 36 IN A 52.208.240.129 daps-alb-iap9zmwy3kn8-1328773120.eu-west-1.elb.amazonaws.com. 36 IN A 52.210.155.124
DevOps ingeniero

Registre los conectores de los participantes en el servicio del DAPS.

Desde cualquiera de las EC2 instancias aprovisionadas para DAPS, registre a los participantes:

  1. Ejecute el script disponible en la EC2 instancia mediante el usuario root:

    cd /srv/mvds/omejdn-daps
  2. Registre el proveedor:

    bash scripts/register_connector.sh <provider_name>
  3. Registre el consumidor:

    bash scripts/register_connector.sh <consumer_name>

La elección de los nombres no afecta a los próximos pasos. Se recomienda utilizar provider y consumer o companyx y companyy.

Los comandos de registro también configurarán automáticamente el servicio del DAPS con la información necesaria obtenida de los certificados y las claves que se crearon.

Con la sesión iniciada en un servidor del DAPS, recopile la información necesaria para los pasos posteriores de la instalación:

  1. En omejdn-daps/config/clients.yml, obtenga el client id del proveedor y el consumidor. Los valores client id son cadenas largas de dígitos hexadecimales.

  2. En el directorio omejdn-daps/keys, copie el contenido de los archivos consumer.cert, consumer.key, provider.cert y provider.key.

Se recomienda copiar y pegar el texto en archivos con nombres similares y el prefijo daps- en la estación de trabajo.

Debe tener el cliente IDs para el proveedor y el consumidor y cuatro archivos en el directorio de trabajo de la estación de trabajo:

  • El nombre del archivo de origen consumer.cert pasa a ser el nombre del archivo de la estación de trabajo daps-consumer.cert.

  • El nombre del archivo de origen consumer.key pasa a ser el nombre del archivo de la estación de trabajo daps-consumer.key.

  • El nombre del archivo de origen provider.cert pasa a ser el nombre del archivo de la estación de trabajo daps-provider.cert.

  • El nombre del archivo de origen provider.key pasa a ser el nombre del archivo de la estación de trabajo daps-provider.key.

DevOps ingeniero
TareaDescripciónHabilidades requeridas

Clone el repositorio EDC Tractus-X y utilice la versión 0.4.1.

La compilación del conector EDC de Tractus-X requiere la implementación y disponibilidad de los servicios PostgreSQL (base de datos de activos) y HashiCorp Vault (administración de secretos).

Existen muchas versiones diferentes de los gráficos de Helm de EDC Tractus-X. Este patrón especifica la versión 0.4.1 porque utiliza el servidor del DAPS.

Las versiones más recientes utilizan Managed Identity Wallet (MIW) con una implementación distribuida del servicio de identidad.

En la estación de trabajo en la que creó dos espacios de nombres de Kubernetes, clone el repositorio tractusx-edc y compruebe la rama release/0.4.1.

git clone https://github.com/eclipse-tractusx/tractusx-edc cd tractusx-edc git checkout release/0.4.1
DevOps ingeniero

Configure el gráfico de Helm EDC Tractus-X.

Modifique la configuración de la plantilla del gráfico de Helm Tractus-X para permitir que ambos conectores interactúen entre sí.

Para ello, debe agregar el espacio de nombres al nombre de DNS del servicio para que otros servicios del clúster puedan resolverlo. Estas modificaciones deben hacerse en el archivo charts/tractusx-connector/templates/_helpers.tpl. Este patrón proporciona una versión final modificada de este archivo para su uso. Cópielo y colóquelo en la sección daps del archivo charts/tractusx-connector/templates/_helpers.tpl.

Asegúrese de comentar todas las dependencias del DAPS en charts/tractusx-connector/Chart.yaml:

dependencies: # IDS Dynamic Attribute Provisioning Service (IAM) # - name: daps # version: 0.0.1 # repository: "file://./subcharts/omejdn" # alias: daps # condition: install.daps
DevOps ingeniero

Configure los conectores para usar PostgreSQL en Amazon RDS.

(Opcional) La instancia de Amazon Relational Database Service (Amazon RDS) no es necesaria en este patrón. Sin embargo, recomendamos encarecidamente utilizar Amazon RDS o Amazon Aurora, ya que ofrecen características como alta disponibilidad, copia de seguridad y recuperación.

Para reemplazar PostgreSQL en Kubernetes por Amazon RDS, haga lo siguiente:

  1. Aprovisione la instancia de Amazon RDS para PostgreSQL.

  2. En Chart.yaml, comente la sección PostgreSQL.

  3. En provider_values.yml y consumer_values.yml, configure la sección postgresql de la siguiente manera:

postgresql: auth: database: edc password: <RDS PASSWORD> username: <RDS Username> jdbcUrl: jdbc:postgresql://<RDS DNS NAME>:5432/edc username: <RDS Username> password: <RDS PASSWORD> primary: persistence: enabled: false readReplicas: persistence: enabled: false
DevOps ingeniero

Configure e implemente el conector del proveedor y sus servicios.

Para configurar el conector del proveedor y sus servicios, haga lo siguiente:

  1. Para descargar el archivo provider_edc.yaml del directorio edc_helm_configs en la carpeta del gráfico de Helm actual, ejecute el siguiente comando:

    wget -q https://raw.githubusercontent.com/Think-iT-Labs/aws-patterns-edc/main/edc_helm_configs/provider_edc.yaml> -P charts/tractusx-connector/

  2. Sustituya las siguientes variables (también marcadas en el archivo) por sus valores:

    • CLIENT_ID: el ID generado por el DAPS. El CLIENT_ID debe estar en /srv/mvds/omejdn-daps/config/clients.yml/config/clients.yml en el servidor del DAPS. Debe ser una cadena de caracteres hexadecimales.

    • DAPS_URL: la URL del servidor del DAPS. Debe https://{DNS name} usar el nombre DNS que configuraste cuando ejecutaste la AWS CloudFormation plantilla.

    • VAULT_TOKEN: el token que se utilizará para la autorización de Vault. Elija cualquier valor.

    • vault.fullnameOverridevault-provider.

    • vault.hashicorp.urlhttp://vault-provider:8200/.

    Los valores anteriores asumen que el nombre de la implementación y el nombre del espacio de nombres son del proveedor.

  3. Para ejecutar el gráfico de Helm desde la estación de trabajo, utilice los siguientes comandos:

    cd charts/tractusx-connector helm dependency build helm upgrade --install provider ./ -f provider_edc.yaml -n provider
DevOps ingeniero

Agregue el certificado y las claves al almacén del proveedor.

Para evitar confusiones, genere los siguientes certificados fuera del directorio tractusx-edc/charts.

Por ejemplo, ejecute el siguiente comando para cambiar al directorio de inicio:

cd ~

Ahora tiene que agregar al almacén los secretos que necesita el proveedor.

Los nombres de los secretos del almacén son los valores de las claves de la sección secretNames: del archivo provider_edc.yml. De forma predeterminada, se configuran de la siguiente manera:

secretNames: transferProxyTokenSignerPrivateKey: transfer-proxy-token-signer-private-key transferProxyTokenSignerPublicKey: transfer-proxy-token-signer-public-key transferProxyTokenEncryptionAesKey: transfer-proxy-token-encryption-aes-key dapsPrivateKey: daps-private-key dapsPublicKey: daps-public-key

Inicialmente, se generan una clave estándar de cifrado avanzado (AES), una clave privada, una clave pública y un certificado autofirmado. Posteriormente, se agregan como secretos al almacén.

Además, este directorio debe contener los archivos daps-provider.cert y daps-provider.key que copió del servidor del DAPS.

  1. Ejecute los siguientes comandos :

    # generate a private key openssl ecparam -name prime256v1 -genkey -noout -out provider-private-key.pem # generate corresponding public key openssl ec -in provider-private-key.pem -pubout -out provider-public-key.pem # create a self-signed certificate openssl req -new -x509 -key provider-private-key.pem -out provider-cert.pem -days 360 # generate aes key openssl rand -base64 32 > provider-aes.key
  2. Antes de agregar los secretos al almacén, conviértalos de líneas múltiples en líneas simples. Para ello, sustituya los saltos de línea por \n:

    cat provider-private-key.pem | sed 's/$/\\\\n/'|tr -d '\\n' > provider-private-key.pem.line cat provider-public-key.pem | sed 's/$/\\\\n/'|tr -d '\\n' > provider-public-key.pem.line cat provider-cert.pem | sed 's/$/\\\\n/'|tr -d '\\n' > provider-cert.pem.line cat provider-aes.key | sed 's/$/\\\\n/'|tr -d '\\n' > provider-aes.key.line ## The following block is for daps certificate and key openssl x509 -in daps-provider.cert -outform PEM | sed 's/$/\\\\n/'|tr -d '\\n' > daps-provider.cert.line cat daps-provider.key | sed 's/$/\\\\n/'|tr -d '\\n' > daps-provider.key.line
  3. Para formatear los secretos que se agregarán a Vault, ejecute los siguientes comandos:

    JSONFORMAT='{"content": "%s"}' #create a single line in JSON format printf "${JSONFORMAT}\\n" "`cat provider-private-key.pem.line`" > provider-private-key.json printf "${JSONFORMAT}\\n" "`cat provider-public-key.pem.line`" > provider-public-key.json printf "${JSONFORMAT}\\n" "`cat provider-cert.pem.line`" > provider-cert.json printf "${JSONFORMAT}\\n" "`cat provider-aes.key.line`" > provider-aes.json printf "${JSONFORMAT}\\n" "`cat daps-provider.key.line`" > daps-provider.key.json printf "${JSONFORMAT}\\n" "`cat daps-provider.cert.line`" > daps-provider.cert.json

    Los secretos están ahora en formato JSON y están listos para agregarse al almacén.

  4. Para obtener el nombre del pod del almacén, ejecute el siguiente comando:

    kubectl get pods -n provider|egrep "vault|NAME"

    El nombre del pod será similar a "vault-provider-0". Este nombre se utiliza al crear un reenvío de puertos al almacén. El reenvío de puertos le permite acceder al almacén para agregar el secreto. Debe ejecutarlo desde una estación de trabajo que tenga configuradas las credenciales de AWS.

  5. Para acceder al almacén, utilice kubectl para configurar un reenvío de puertos:

    kubectl port-forward <VAULT_POD_NAME> 8200:8200 -n provider

Ahora debería poder acceder al almacén a través del navegador o la CLI.

Navegador

  1. Con el navegador, vaya a http://127.0.0.1:8200, que utilizará el reenvío de puertos que ha configurado.

  2. Inicie sesión con el token que configuró anteriormente en provider_edc.yml. En el motor de secretos, cree tres secretos. Cada secreto tendrá un valor Path for this secret, que es el nombre del secreto que se muestra en la siguiente lista. En la sección secret data, el nombre de la clave será content, mientras que el valor será la única línea de texto del archivo respectivo con el nombre .line.

  3. Los nombres de los secretos provienen de la sección secretNames del archivo provider_edc.yml.

  4. Cree los siguientes secretos:

    • Secreto transfer-proxy-token-signer-private-key con nombre de archivo provider-private-key.pem.line

    • Secreto transfer-proxy-token-signer-public-key con nombre de archivo provider-cert.pem.line

    • Secreto transfer-proxy-token-encryption-aes-key con nombre de archivo provider-aes.key.line

    • Secreto daps-private-key con nombre de archivo daps-provider.key.line

    • Secreto daps-public-key con nombre de archivo daps-provider.cert.line

Vault CLI

La CLI también utilizará el reenvío de puertos que configuró.

  1. En su estación de trabajo, instale la CLI de Vault siguiendo las instrucciones de la documentación de HashiCorp Vault.

  2. Para iniciar sesión en el almacén con el token que configuró en provider_edc.yml, ejecute el siguiente comando:

    vault login -address=http://127.0.0.1:8200

    Con el token correcto, debería ver el mensaje "Success! You are now authenticated."

  3. Para crear los secretos mediante los archivos con formato JSON que creó anteriormente, ejecute el código siguiente:

    vault kv put -address=http://127.0.0.1:8200 secret/transfer-proxy-token-signer-private-key @provider-private-key.json vault kv put -address=http://127.0.0.1:8200 secret/transfer-proxy-token-signer-public-key @provider-cert.json vault kv put -address=http://127.0.0.1:8200 secret/transfer-proxy-token-encryption-aes-key @provider-aes.json vault kv put -address=http://127.0.0.1:8200 secret/daps-private-key @daps-provider.key.json vault kv put -address=http://127.0.0.1:8200 secret/daps-public-key @daps-provider.cert.json
DevOps ingeniero

Configure e implemente el conector del consumidor y sus servicios.

Los pasos para configurar e implementar el consumidor son similares a los del proveedor:

  1. Para copiarlo consumer_edc.yaml del aws-patterns-edcrepositorio a la carpeta tractusx-edc/charts/tractusx-connecto r, ejecute los siguientes comandos:

    cd tractusx-edc wget -q https://raw.githubusercontent.com/Think-iT-Labs/aws-patterns-edc/main/edc_helm_configs/consumer_edc.yaml -P charts/tractusx-connector/
  2. Actualice las siguientes variables con sus valores reales:

    • CONSUMER_CLIENT_ID: el ID generado por el DAPS. El CONSUMER_CLIENT_ID debe estar en config/clients.yml en el servidor del DAPS.

    • DAPS_URL: la misma URL del DAPS que utilizó para el proveedor.

    • VAULT_TOKEN: el token que se utilizará para la autorización de Vault. Elija cualquier valor.

    • vault.fullnameOverridevault-consumer

    • vault.hashicorp.urlhttp://vault-provider:8200/

    Los valores anteriores asumen que el nombre de la implementación y el nombre del espacio de nombres son del consumer.

  3. Para ejecutar el gráfico de Helm, utilice los siguientes comandos:

    cd charts/tractusx-connector helm upgrade --install consumer ./ -f consumer_edc.yaml -n consumer

Agregue el certificado y las claves al almacén del consumidor.

Desde el punto de vista de la seguridad, recomendamos volver a generar los certificados y las claves de cada participante del espacio de datos. Este patrón vuelve a generar los certificados y las claves para el consumidor.

Los pasos son muy similares a los del proveedor. Puede verificar los nombres de los secretos en el archivo consumer_edc.yml.

Los nombres de los secretos del almacén son los valores de las claves de la sección secretNames: de consumer_edc.yml file. De forma predeterminada, se configuran de la siguiente manera:

secretNames: transferProxyTokenSignerPrivateKey: transfer-proxy-token-signer-private-key transferProxyTokenSignerPublicKey: transfer-proxy-token-signer-public-key transferProxyTokenEncryptionAesKey: transfer-proxy-token-encryption-aes-key dapsPrivateKey: daps-private-key dapsPublicKey: daps-public-key

Los archivos daps-consumer.cert y daps-consumer.key que copió del servidor del DAPS ya deberían existir en este directorio.

  1. Ejecute los siguientes comandos :

    # generate a private key openssl ecparam -name prime256v1 -genkey -noout -out consumer-private-key.pem # generate corresponding public key openssl ec -in consumer-private-key.pem -pubout -out consumer-public-key.pem # create a self-signed certificate openssl req -new -x509 -key consumer-private-key.pem -out consumer-cert.pem -days 360 # generate aes key openssl rand -base64 32 > consumer-aes.key
  2. Edite manualmente los archivos para sustituir los saltos de línea por \n o utilice tres comandos similares a los siguientes:

    cat consumer-private-key.pem | sed 's/$/\\\\n/'|tr -d '\\n' > consumer-private-key.pem.line cat consumer-public-key.pem | sed 's/$/\\\\n/'|tr -d '\\n' > consumer-public-key.pem.line cat consumer-cert.pem | sed 's/$/\\\\n/'|tr -d '\\n' > consumer-cert.pem.line cat consumer-aes.key | sed 's/$/\\\\n/'|tr -d '\\n' > consumer-aes.key.line cat daps-consumer.cert | sed 's/$/\\\\n/'|tr -d '\\n' > daps-consumer.cert.line cat daps-consumer.key | sed 's/$/\\\\n/'|tr -d '\\n' > daps-consumer.key.line
  3. Para formatear los secretos que se agregarán a Vault, ejecute los siguientes comandos:

    JSONFORMAT='{"content": "%s"}' #create a single line in JSON format printf "${JSONFORMAT}\\n" "`cat consumer-private-key.pem.line`" > consumer-private-key.json printf "${JSONFORMAT}\\n" "`cat consumer-public-key.pem.line`" > consumer-public-key.json printf "${JSONFORMAT}\\n" "`cat consumer-cert.pem.line`" > consumer-cert.json printf "${JSONFORMAT}\\n" "`cat consumer-aes.key.line`" > consumer-aes.json printf "${JSONFORMAT}\\n" "`cat daps-consumer.key.line`" > daps-consumer.key.json printf "${JSONFORMAT}\\n" "`cat daps-consumer.cert.line`" > daps-consumer.cert.json

    Los secretos están ahora en formato JSON y están listos para agregarse al almacén.

  4. Para obtener el nombre del pod del almacén del consumidor, ejecute el siguiente comando:

    kubectl get pods -n consumer | egrep "vault|NAME"

    El nombre del pod será similar a "vault-consumer-0". Este nombre se utiliza al crear un reenvío de puertos al almacén. El reenvío de puertos le permite acceder al almacén para agregar el secreto. Debe ejecutarlo desde una estación de trabajo que tenga AWS configuradas las credenciales.

  5. Para acceder al almacén, utilice kubectl para configurar un reenvío de puertos:

    kubectl port-forward <VAULT_POD_NAME> 8201:8200 -n consumer

Esta vez, el puerto local es el 8201, por lo que puede disponer de reenvíos de puertos tanto para el productor como para el consumidor.

Navegador

Puede usar el navegador para conectarse a http://localhost:8201/ a fin de acceder al almacén del consumidor y crear los secretos con los nombres y el contenido descritos.

Los secretos y archivos que incluyen el contenido son los siguientes:

  • Secreto transfer-proxy-token-signer-private-key con nombre de archivo consumer-private-key.pem.line

  • Secreto transfer-proxy-token-signer-public-key con nombre de archivo consumer-cert.pem.line

  • Secreto transfer-proxy-token-encryption-aes-key con nombre de archivo consumer-aes.key.line

Vault CLI

Con Vault CLI, puede ejecutar los siguientes comandos para iniciar sesión en el almacén y crear los secretos:

  1. Inicie sesión en el almacén con el token que configuró en consumer_edc.yml:

    vault login -address=http://127.0.0.1:8201

    Con el token correcto, debería ver el mensaje "Success! You are now authenticated."

  2. Para crear los secretos mediante los archivos con formato JSON que creó anteriormente, ejecute el código siguiente:

    vault kv put -address=http://127.0.0.1:8201 secret/transfer-proxy-token-signer-private-key @consumer-private-key.json vault kv put -address=http://127.0.0.1:8201 secret/transfer-proxy-token-signer-public-key @consumer-cert.json vault kv put -address=http://127.0.0.1:8201 secret/transfer-proxy-token-encryption-aes-key @consumer-aes.json vault kv put -address=http://127.0.0.1:8201 secret/daps-private-key @daps-consumer.key.json vault kv put -address=http://127.0.0.1:8201 secret/daps-public-key @daps-consumer.cert.json
DevOps ingeniero
TareaDescripciónHabilidades requeridas

Configure el reenvío de puertos.

  1. Para comprobar el estado de los pods, ejecute los siguientes comandos:

    kubectl get pods -n provider kubectl get pods -n consumer
  2. Para asegurarse de que las implementaciones de Kubernetes se llevaron a cabo correctamente, consulte los registros de los pods de Kubernetes del proveedor y el consumidor mediante la ejecución de los siguientes comandos:

    kubectl logs -n provider <producer control plane pod name> kubectl logs -n consumer <consumer control plane pod name>

El clúster es privado y no se puede acceder a él públicamente. Para interactuar con los conectores, utilice la característica de reenvío de puertos de Kubernetes para reenviar el tráfico generado por la máquina al plano de control del conector.

  1. En el primer terminal, reenvíe las solicitudes del consumidor a la API de administración a través del puerto 8300:

    kubectl port-forward deployment/consumer-tractusx-connector-controlplane 8300:8081 -n consumer
  2. En el segundo terminal, reenvíe las solicitudes del proveedor a la API de administración a través del puerto 8400:

    kubectl port-forward deployment/provider-tractusx-connector-controlplane 8400:8081 -n provider
DevOps ingeniero

Cree buckets de S3 para el proveedor y el consumidor.

Actualmente, el conector EDC no utiliza credenciales de AWS temporales, como las que se proporcionan al asumir un rol. EDC solo admite el uso de una combinación de ID de clave de acceso de IAM y una clave de acceso secreta.

Se necesitan dos buckets de S3 para los siguientes pasos. Se utiliza un bucket de S3 para almacenar los datos puestos a disposición por el proveedor. El otro bucket de S3 es para los datos que recibe el consumidor.

El usuario de IAM debe tener permiso para leer y escribir objetos únicamente en los dos buckets con nombre.

Es necesario crear y proteger un ID de clave de acceso y un par de clave de acceso secreta. Una vez que se haya retirado este MVDS, se debe eliminar el usuario de IAM.

A continuación, se muestra una política de IAM de ejemplo para el usuario:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1708699805237", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListBucketVersions", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<S3 Provider Bucket>", "arn:aws:s3:::<S3 Consumer Bucket>", "arn:aws:s3:::<S3 Provider Bucket>/*", "arn:aws:s3:::<S3 Consumer Bucket>/*" ] } ] }
DevOps ingeniero

Configure Postman para interactuar con el conector.

Ahora puede interactuar con los conectores a través de su EC2 instancia. Utilice Postman como cliente HTTP y proporcione Postman Collections para los conectores del proveedor y del consumidor.

Importe las colecciones del repositorio de aws-pattern-edc en la instancia de Postman.

Este patrón utilice variables de colección de Postman para proporcionar información a las solicitudes.

Desarrollador de aplicaciones, ingeniero de datos
TareaDescripciónHabilidades requeridas

Prepare los datos sobre la intensidad de las emisiones de carbono para compartirlos.

En primer lugar, debe decidir el activo de datos que se compartirá. Los datos de la empresa X representan la huella de las emisiones de carbono de su flota de vehículos. El peso es el peso bruto del vehículo (GVW) en toneladas y las emisiones se expresan en gramos CO2 por tonelada-kilómetro (g CO2 e/t-km) según la medición (WTW): Wheel-to-Well

  • Tipo de vehículo: furgoneta; peso: < 3,5; emisiones: 800

  • Tipo de vehículo: camión urbano; peso: 3,5-7,5; emisiones: 315

  • Tipo de vehículo: vehículo de transporte de mercancías de tamaño medio (MGV); peso: 7,5-20; emisiones: 195

  • Tipo de vehículo: vehículo pesado de transporte de mercancías (HGV); peso: > 20; emisiones: 115

Los datos de ejemplo se encuentran en el archivo carbon_emissions_data.json del repositorio aws-patterns-edc.

La empresa X utiliza Amazon S3 para almacenar objetos.

Cree el bucket de S3 y almacene allí el objeto de los datos de ejemplo. Los siguientes comandos crean un bucket de S3 con la configuración de seguridad predeterminada. Recomendamos encarecidamente consultar Prácticas recomendadas de seguridad para Amazon S3.

aws s3api create-bucket <BUCKET_NAME> --region <AWS_REGION> # You need to add '--create-bucket-configuration # LocationConstraint=<AWS_REGION>' if you want to create # the bucket outside of us-east-1 region aws s3api put-object --bucket <BUCKET_NAME> \ --key <S3 OBJECT NAME> \ --body <PATH OF THE FILE TO UPLOAD>

El nombre del bucket de S3 debe ser único de forma global. Para obtener más información sobre las reglas de nomenclatura, consulte la documentación de AWS.

Desarrollador de aplicaciones, ingeniero de datos

Registre el activo de datos en el conector del proveedor mediante Postman.

Un activo de datos de un conector EDC contiene el nombre de los datos y su ubicación. En este caso, el activo de datos del conector EDC apuntará al objeto creado en el bucket de S3:

  • Conector: proveedor

  • Solicitud: crear activo

  • Variables de colección: actualizar ASSET_NAME. Elija un nombre significativo que represente al activo.

  • Cuerpo de la solicitud: actualice el cuerpo de la solicitud con el bucket de S3 que creó para el proveedor.

    "dataAddress": { "edc:type": "AmazonS3", "name": "Vehicle Carbon Footprint", "bucketName": "<REPLACE WITH THE SOURCE BUCKET NAME>", "keyName": "<REPLACE WITH YOUR OBJECT NAME>", "region": "<REPLACE WITH THE BUCKET REGION>", "accessKeyId": "<REPLACE WITH YOUR ACCESS KEY ID>", "secretAccessKey": "<REPLACE WITH SECRET ACCESS KEY>" }
  • Respuesta: una solicitud correcta devuelve la hora de creación y el ID del activo recién creado.

    { "@id": "c89aa31c-ec4c-44ed-9e8c-1647f19d7583" }
  • Variable de la colección ASSET_ID: actualice la variable de la colección Postman ASSET_ID con el ID que generó automáticamente el conector EDC tras su creación.

Desarrollador de aplicaciones, ingeniero de datos

Defina la política de uso del activo.

Un activo de datos de EDC debe estar asociado a políticas de uso claras. En primer lugar, cree la definición de política en el conector del proveedor.

La política de la empresa X es permitir que los participantes del espacio de datos utilicen los datos de la huella de emisiones de carbono.

  • Cuerpo de la solicitud:

    • Conector: proveedor

    • Solicitud: crear política

    • Variables de colección: actualice la variable Policy Name con el nombre de la política.

  • Respuesta: una solicitud correcta devuelve la hora de creación y el ID de política de la política recién creada. Actualice la variable de colección POLICY_ID con el ID de la política generada por el conector EDC tras su creación.

Desarrollador de aplicaciones, ingeniero de datos

Defina una oferta de contrato de EDC para el activo y su política de uso.

Para permitir que otros participantes soliciten acceso a los datos, ofrézcalos en un contrato que especifique las condiciones de uso y los permisos:

  • Conector: proveedor

  • Solicitud: crear definición de contrato

  • Variables de colección: actualice la variable Contract Name con un nombre para la oferta o definición del contrato.

Desarrollador de aplicaciones, ingeniero de datos
TareaDescripciónHabilidades requeridas

Solicite el catálogo de datos que comparte la empresa X.

Como consumidora de datos en el espacio de datos, la empresa Y debe detectar antes los datos que comparten otros participantes.

En esta configuración básica, para hacerlo, puede pedir al conector del consumidor que solicite el catálogo de activos disponibles directamente al conector del proveedor.

  • Conector: consumidor

  • Solicitud: solicitar catálogo

  • Respuesta: todos los activos de datos disponibles del proveedor junto con las políticas de uso adjuntas. Como consumidor de datos, busque el contrato que le interese y actualice las siguientes variables de colección en consecuencia.

    • CONTRACT_OFFER_ID: el ID de la oferta contractual que el consumidor quiere negociar

    • ASSET_ID: el ID del activo que el consumidor quiere negociar

    • PROVIDER_CLIENT_ID: el ID del conector del proveedor con el que se negociará

Desarrollador de aplicaciones, ingeniero de datos

Inicie una negociación contractual para obtener los datos de intensidad de las emisiones de carbono de la empresa X.

Ahora que ha identificado el activo que quiere consumir, inicie un proceso de negociación del contrato entre el consumidor y el proveedor.

  • Conector: consumidor

  • Solicitud: negociación del contrato

  • Variables de colección: actualice la variable CONSUMER_CLIENT_ID con el ID del conector de consumo con el que se negociará.

El proceso puede tardar algún tiempo antes de alcanzar el estado VERIFICADO.

Puede comprobar el estado de la negociación del contrato y el ID del acuerdo correspondiente mediante la solicitud Get Negotiation.

Desarrollador de aplicaciones, ingeniero de datos
TareaDescripciónHabilidades requeridas

Consuma datos de los puntos de conexión HTTP.

(Opción 1) Para utilizar el plano de datos HTTP para consumir datos del espacio de datos, puede utilizar webhook.site para emular un servidor HTTP e iniciar el proceso de transferencia en el conector del consumidor:

  • Conector: consumidor

  • Solicitud: negociación del contrato

  • Variables de colección: actualice la variable Contract Agreement ID con el ID del acuerdo de contrato generado por el conector EDC.

  • Cuerpo de la solicitud: actualice el cuerpo de la solicitud para especificar HTTP como dataDestination junto a la URL del webhook:

    { "dataDestination": { "type": "HttpProxy" }, "privateProperties": { "receiverHttpEndpoint": "<WEBHOOK URL>" } }

    El conector enviará la información necesaria para descargar el archivo directamente en la URL del webhook.

    La carga útil recibida es similar a la siguiente:

    { "id": "dcc90391-3819-4b54-b401-1a005a029b78", "endpoint": "http://consumer-tractusx-connector-dataplane.consumer:8081/api/public", "authKey": "Authorization", "authCode": "<AUTH CODE YOU RECEIVE IN THE ENDPOINT>", "properties": { "https://w3id.org/edc/v0.0.1/ns/cid": "vehicle-carbon-footprint-contract:4563abf7-5dc7-4c28-bc3d-97f45e32edac:b073669b-db20-4c83-82df-46b583c4c062" } }

    Utilice las credenciales recibidas para obtener el activo de S3 que compartió el proveedor.

En este último paso, debe enviar la solicitud al plano de datos del consumidor (reenviar los puertos correctamente), tal y como se indica en la carga útil (endpoint).

Desarrollador de aplicaciones, ingeniero de datos

Consuma los datos de los buckets de S3 directamente.

(Opción 2) Utilice la integración de Amazon S3 con el conector EDC y apunte directamente al bucket de S3 de la infraestructura de consumo como destino:

  • Cuerpo de la solicitud: actualice el cuerpo de la solicitud para especificar el bucket de S3 como dataDestination.

    Debe ser el bucket de S3 que ha creado anteriormente para almacenar los datos recibidos por el consumidor.

    { "dataDestination": { "type": "AmazonS3", "bucketName": "{{ REPLACE WITH THE DESTINATION BUCKET NAME }}", "keyName": "{{ REPLACE WITH YOUR OBJECT NAME }}", "region": "{{ REPLACE WITH THE BUCKET REGION }}", "accessKeyId": "{{ REPLACE WITH YOUR ACCESS KEY ID }}", "secretAccessKey": "{{ REPLACE WITH SECRET ACCESS KEY }}" } } }
Desarrollador de aplicaciones, ingeniero de datos

Resolución de problemas

ProblemaSolución

El conector podría plantear un problema relacionado con el formato PEM del certificado.

Para concatenar el contenido de cada archivo en una sola línea, agregue \n.

Recursos relacionados

Información adicional

Especificaciones del espacio de datos

Participantes

Participante

Descripción de la empresa

Enfoque de la empresa

Empresa X

Opera una flota de vehículos en Europa y Sudamérica para transportar varias mercancías.

Su objetivo es tomar decisiones basadas en datos para reducir la intensidad de la huella de emisiones de carbono.

Empresa Y

Autoridad reguladora ambiental

Hace cumplir las normas y políticas ambientales diseñadas para supervisar y mitigar el impacto ambiental de las empresas e industrias, lo que incluye la intensidad de las emisiones de carbono.

Argumentos comerciales

La empresa X utiliza la tecnología del espacio de datos para compartir los datos sobre la huella de carbono con un auditor de cumplimiento, la empresa Y, a fin de evaluar y abordar el impacto ambiental de las operaciones logísticas de la empresa X.

Autoridad del espacio de datos

La autoridad del espacio de datos es un consorcio de las organizaciones que gobiernan el espacio de datos. En este patrón, tanto la empresa X como la empresa Y forman el órgano de gobernanza y representan una autoridad federada en materia de espacio de datos.

Componentes del espacio de datos

Componente

Implementación elegida

Información adicional

Protocolo de intercambio del conjunto de datos

Protocolo del espacio de datos, versión 0.8

Conector del espacio de datos

Conector EDC Tractus-X, versión 0.4.1

Políticas de intercambio de datos

Política de uso predeterminada

Servicios del espacio de datos

Servicio

Implementación

Información adicional

Servicio de identidad

Sistema de aprovisionamiento dinámico de atributos (DAPS)

“El sistema de aprovisionamiento dinámico de atributos (DAPS) tiene la intención de determinar determinados atributos de las organizaciones y los conectores. Por lo tanto, los terceros no necesitan confiar en estos últimos siempre que confíen en las afirmaciones del DAPS”. —DAPS

Para centrarse en la lógica del conector, el espacio de datos se despliega en una EC2 máquina de Amazon mediante Docker Compose.

Servicio de detección

Catálogo federado Gaia-X

“El Catálogo federado constituye un repositorio indexado de las autodescripciones de Gaia-X que permite detectar y seleccionar los proveedores y sus ofertas de servicios. Las autodescripciones son la información proporcionada por los participantes sobre sí mismos y sobre sus servicios en forma de propiedades y afirmaciones”. —Kickstarter del ecosistema Gaia-X

Datos que se intercambiarán

Activos de datos

Description (Descripción)

Formato

Datos de emisiones de carbono

Valores de intensidad para diferentes tipos de vehículos en la región especificada (Europa y Sudamérica) de toda la flota de vehículos

Archivo JSON

Modelo de datos

{ "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 EDC Tractus-X

Para ver la documentación de cada parámetro del EDC Tractus-X, consulte el archivo de valores original.

En la siguiente tabla se muestran todos los servicios, junto con sus correspondientes puntos de conexión y puertos expuestos como referencia.

Nombre del servicio

Puerto y ruta

Plano de control

●        administración: puerto 8081, ruta /management

●        control: puerto 8083, ruta /control

●        protocolo: puerto 8084, ruta /api/v1/dsp

●        métricas: puerto 9090, ruta /metrics

●        observabilidad: puerto 8085, ruta /observability

Plano de datos

predeterminado: puerto 8080, ruta /api

público: puerto 8081, ruta /api/dataplane/control

proxy: puerto 8186, ruta /proxy

métricas: puerto 9090, ruta /metrics

observabilidad: puerto 8085, ruta /observability

Almacén

Puerto: 8200

PostgreSQL

Puerto: 5432

Uso AWS Secrets Manager del administrador

Es posible usar Secrets Manager en lugar de HashiCorp Vault como administrador de secretos. Para hacerlo, debe usar o compilar la extensión AWS Secrets Manager EDC.

Será responsable de crear y mantener su propia imagen, ya que Tractus-X no ofrece soporte para Secrets Manager.

Para ello, debes modificar los archivos de compilación de Gradle tanto del plano de control como del plano de datos del conector introduciendo la extensión AWS Secrets Manager EDC (consulta este artefacto de Maven como ejemplo) y, a continuación, compilar, mantener y hacer referencia a la imagen de Docker.

Para obtener más información sobre cómo refactorizar la imagen de Docker del conector de Tractus-X, consulte Refactor Tractus-X EDC Helm charts.

Por motivos de simplicidad, evitamos volver a crear la imagen del conector siguiendo este patrón y utilizamos Vault. HashiCorp