Richten Sie einen nutzbaren Mindestdatenraum für die gemeinsame Nutzung von Daten zwischen Organisationen ein - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Richten Sie einen nutzbaren Mindestdatenraum für die gemeinsame Nutzung von Daten zwischen Organisationen ein

Erstellt von Ramy Hcini (Think-IT), Ismail Abdellaoui (Think-IT), Malte Gasseling (Think-IT), Jorge Hernandez Suarez () und Michael Miller () AWS AWS

Umgebung: PoC oder Pilotprojekt

Technologien: Analytik; Container und Mikroservices; Data Lakes; Datenbanken; Infrastruktur

Arbeitslast: Open Source

AWSDienste: Amazon Aurora; AWS Certificate Manager (ACM) AWS CloudFormation; AmazonEC2; AmazonEFS; AmazonEKS; Elastic Load Balancing (ELB); AmazonRDS; Amazon S3; AWS Systems Manager

Übersicht

Datenräume sind föderierte Netzwerke für den Datenaustausch mit Vertrauen und Kontrolle über die eigenen Daten als Kernprinzipien. Sie ermöglichen es Unternehmen, Daten in großem Umfang zu teilen, auszutauschen und zusammenzuarbeiten, indem sie eine kostengünstige und technologieunabhängige Lösung bieten.

Datenräume haben das Potenzial, die Bemühungen für eine nachhaltige future erheblich voranzutreiben, indem datengesteuerte Problemlösungen mit einem end-to-end Ansatz eingesetzt werden, der alle relevanten Interessengruppen einbezieht.

Dieses Muster führt Sie durch das Beispiel, wie zwei Unternehmen die Datenraum-Technologie auf Amazon Web Services (AWS) nutzen können, um ihre Strategie zur Reduzierung der CO2-Emissionen voranzutreiben. In diesem Szenario liefert Unternehmen X Daten zu den CO2-Emissionen, die Unternehmen Y verbraucht. Im Abschnitt Zusätzliche Informationen finden Sie die folgenden Einzelheiten zur Datenraumspezifikation:

  • Teilnehmer

  • Geschäftsszenario

  • Behörde für den Datenraum

  • Komponenten des Datenraums

  • Dienste für den Datenraum

  • Daten, die ausgetauscht werden sollen

  • Datenmodell

  • Tractus-X-Anschluss EDC

Das Muster umfasst Schritte für Folgendes:

  • Bereitstellung der Infrastruktur, die für einen Basisdatenraum erforderlich ist, auf dem zwei Teilnehmer laufen AWS.

  • Sicherer Austausch von Daten zur Kohlenstoffemissionsintensität mithilfe der Konnektoren.

Dieses Muster stellt einen Kubernetes-Cluster bereit, der Datenraum-Konnektoren und deren Dienste über Amazon Elastic Kubernetes Service (Amazon) hostet. EKS

Die Steuerungsebene und die Datenebene von Eclipse Dataspace Components (EDC) werden beide auf Amazon bereitgestellt. EKS Das offizielle Tractus-X Helm-Diagramm stellt SQL Postgre- und Vault-Dienste als Abhängigkeiten bereit. HashiCorp

Darüber hinaus wird der Identitätsdienst auf Amazon Elastic Compute Cloud (AmazonEC2) bereitgestellt, um ein reales Szenario mit einem minimal nutzbaren Datenraum (MVDS) zu replizieren.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein Aktiv AWS-Konto zur Bereitstellung der Infrastruktur in der von Ihnen ausgewählten AWS-Region

  • Ein AWS Identity and Access Management (IAM) Benutzer mit Zugriff auf Amazon S3, der vorübergehend als technischer Benutzer verwendet wird (Der EDC Connector unterstützt derzeit nicht die Verwendung von Rollen. Wir empfehlen, dass Sie einen IAM Benutzer speziell für diese Demo erstellen und diesem Benutzer eingeschränkte Berechtigungen zuweisen.)

  • AWS Command Line Interface (AWS CLI) in der von Ihnen ausgewählten Version installiert und konfiguriert AWS-Region

  • AWS Sicherheitsanmeldedaten

  • eksctl auf Ihrer Workstation

  • Git auf deiner Workstation

  • kubectl

  • Helm

  • Postbote

  • Ein AWS Certificate Manager (ACM)SSL/Zertifikat TLS

  • Ein DNS Name, der auf einen Application Load Balancer verweist (der DNS Name muss durch das ACM Zertifikat abgedeckt sein)

  • HashiCorp Tresor (Informationen AWS Secrets Manager zur Verwaltung von Geheimnissen finden Sie im Abschnitt Zusätzliche Informationen.)

Produktversionen

Einschränkungen

  • Konnektorauswahl ‒ Diese Bereitstellung verwendet einen EDC basierten Connector. Achten Sie jedoch darauf, die Stärken und Funktionen sowohl des Connectors als auch des EDCFIWARETrue Connectors zu berücksichtigen, um eine fundierte Entscheidung zu treffen, die den spezifischen Anforderungen der Bereitstellung entspricht.

  • EDCConnector Build ‒ Die gewählte Implementierungslösung basiert auf der Tractus-X EDC Connector Helm-Übersicht, einer etablierten und ausführlich getesteten Implementierungsoption. Die Entscheidung, dieses Diagramm zu verwenden, hängt von seiner allgemeinen Verwendung und der Aufnahme wesentlicher Erweiterungen in der bereitgestellten Version ab. Postgre SQL und HashiCorp Vault sind zwar Standardkomponenten, Sie haben jedoch die Flexibilität, Ihren eigenen Connector-Build bei Bedarf anzupassen.

  • Zugriff auf private Cluster ‒ Der Zugriff auf den bereitgestellten EKS Cluster ist auf private Kanäle beschränkt. Die Interaktion mit dem Cluster erfolgt ausschließlich mithilfe von kubectl undIAM. Der öffentliche Zugriff auf die Clusterressourcen kann mithilfe von Load Balancern und Domainnamen ermöglicht werden. Diese müssen selektiv implementiert werden, um bestimmte Dienste einem breiteren Netzwerk zugänglich zu machen. Wir empfehlen jedoch nicht, öffentlichen Zugriff zu gewähren.

  • Sicherheitsfokus ‒ Der Schwerpunkt liegt auf der Abstraktion von Sicherheitskonfigurationen anhand von Standardspezifikationen, sodass Sie sich auf die Schritte konzentrieren können, die beim Austausch von EDC Konnektordaten erforderlich sind. Obwohl die Standardsicherheitseinstellungen beibehalten werden, müssen Sie unbedingt die sichere Kommunikation aktivieren, bevor Sie den Cluster dem öffentlichen Netzwerk zugänglich machen. Diese Vorsichtsmaßnahme gewährleistet eine solide Grundlage für eine sichere Datenverarbeitung.

  • Infrastrukturkosten ‒ Eine Schätzung der Infrastrukturkosten finden Sie unter. AWS Pricing Calculator Eine einfache Berechnung zeigt, dass die Kosten für die bereitgestellte Infrastruktur bis zu 162,92 USD € pro Monat betragen können.

Architektur

Die MVDS Architektur umfasst zwei virtuelle private Clouds (VPCs), eine für den Identitätsdienst Dynamic Attribute Provisioning System (DAPS) und eine für AmazonEKS.

DAPSArchitektur

Das folgende Diagramm zeigt die DAPS Ausführung auf EC2 Instances, die von einer Auto Scaling Scaling-Gruppe gesteuert werden. Ein Application Load Balancer und eine Routing-Tabelle machen die DAPS Server verfügbar. Amazon Elastic File System (AmazonEFS) synchronisiert die Daten zwischen den DAPS Instances.

AWS Cloud architecture with VPC, availability zones, subnets, and DAPS servers in an auto-scaling group.

EKSAmazon-Architektur

Datenräume sind als technologieunabhängige Lösungen konzipiert, und es gibt mehrere Implementierungen. Dieses Muster verwendet einen EKS Amazon-Cluster, um die technischen Komponenten des Datenraums bereitzustellen. Das folgende Diagramm zeigt die Bereitstellung des EKS Clusters. Worker-Knoten werden in privaten Subnetzen installiert. Die Kubernetes-Pods greifen auf die Amazon Relational Database Service (AmazonRDS) for SQL Postgre-Instance zu, die sich ebenfalls in den privaten Subnetzen befindet. Die Kubernetes-Pods speichern gemeinsam genutzte Daten in Amazon S3.

AWS Cloud architecture with VPC, public and private subnets, NAT gateways, and Kubernetes nodes across two availability zones.

Tools

AWS Dienste

  • AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus regionsübergreifend AWS-Konten zu verwalten.

  • Amazon Elastic Compute Cloud (AmazonEC2) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.

  • Amazon Elastic File System (AmazonEFS) hilft Ihnen bei der Erstellung und Konfiguration gemeinsam genutzter Dateisysteme in der AWS Cloud.

  • Mit Amazon Elastic Kubernetes Service (AmazonEKS) können Sie Kubernetes ausführen, AWS ohne dass Sie Ihre eigene Kubernetes-Steuerebene oder Knoten installieren oder verwalten müssen.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

  • Elastic Load Balancing (ELB) verteilt eingehenden Anwendungs- oder Netzwerkverkehr auf mehrere Ziele. Sie können beispielsweise den Traffic auf EC2 Instances, Container und IP-Adressen in einer oder mehreren Availability Zones verteilen.

Andere Tools

  • eksctl ist ein Befehlszeilenprogramm zum Erstellen und Verwalten von Kubernetes-Clustern auf Amazon. EKS

  • Git ist ein verteiltes Open-Source-Versionskontrollsystem.

  • HashiCorp Vault bietet sicheren Speicher mit kontrolliertem Zugriff auf Anmeldeinformationen und andere vertrauliche Informationen.

  • Helm ist ein Open-Source-Paketmanager für Kubernetes, der Sie bei der Installation und Verwaltung von Anwendungen auf Ihrem Kubernetes-Cluster unterstützt.

  • kubectl ist eine Befehlszeilenschnittstelle, mit der Sie Befehle für Kubernetes-Cluster ausführen können.

  • APIPostman ist eine Plattform.

Code-Repository

Die YAML Kubernetes-Konfigurationsdateien und Python-Skripte für dieses Muster sind im GitHub aws-patterns-edcRepository verfügbar. Das Muster verwendet auch das EDCTractus-X-Repository.

Bewährte Methoden

Amazon EKS und die Isolierung der Infrastrukturen der Teilnehmer

Namespaces in Kubernetes trennen nach diesem Muster die Infrastruktur des Unternehmens X-Anbieters von der Infrastruktur des Unternehmens Y-Konsumenten. Weitere Informationen finden Sie in den Best-Practices-Leitfäden. EKS

In einer realistischeren Situation hätte jeder Teilnehmer einen eigenen Kubernetes-Cluster, der in seinem eigenen Cluster läuft. AWS-Konto Die gemeinsame Infrastruktur (DAPSin diesem Muster) wäre für die Teilnehmer des Datenraums zugänglich und gleichzeitig vollständig von den Infrastrukturen der Teilnehmer getrennt.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie das Repository

Führen Sie den folgenden Befehl aus, um das Repository auf Ihre Workstation zu klonen:

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

Die Workstation muss Zugriff auf Ihre haben AWS-Konto.

DevOps Ingenieur

Stellen Sie den Kubernetes-Cluster bereit und richten Sie Namespaces ein.

Um einen vereinfachten EKS Standardcluster in Ihrem Konto bereitzustellen, führen Sie den folgenden eksctl Befehl auf der Workstation aus, auf der Sie das Repo geklont haben:

eksctl create cluster

Der Befehl erstellt die privaten VPC und öffentlichen Subnetze, die sich über drei verschiedene Availability Zones erstrecken. Nachdem die Netzwerkschicht erstellt wurde, erstellt der Befehl zwei m5.large EC2 Instanzen innerhalb einer Auto Scaling Scaling-Gruppe.

Weitere Informationen und Beispielausgaben finden Sie im eksctl-Handbuch.

Nachdem Sie den privaten Cluster bereitgestellt haben, fügen Sie den neuen EKS Cluster zu Ihrer lokalen Kubernetes-Konfiguration hinzu, indem Sie den folgenden Befehl ausführen:

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

Dieses Muster verwendet den eu-west-1 AWS-Region , um alle Befehle auszuführen. Sie können jedoch dieselben Befehle in Ihrer bevorzugten Version ausführen AWS-Region.

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihre EKS Knoten laufen und sich im Bereitschaftszustand befinden:

kubectl get nodes
DevOps Ingenieur

Richten Sie die Namespaces ein.

Führen Sie die folgenden Befehle aus, um Namespaces für den Anbieter und den Verbraucher zu erstellen:

kubectl create ns provider kubectl create ns consumer

In diesem Muster ist es wichtig, provider und consumer als Namespaces zu verwenden, damit sie den Konfigurationen in den nächsten Schritten entsprechen.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Bereitstellen DAPS mit AWS CloudFormation.

Um die Verwaltung von DAPS Vorgängen zu vereinfachen, ist der DAPS Server auf EC2 Instanzen installiert.

Verwenden Sie zur Installation DAPS die AWS CloudFormation Vorlage. Sie benötigen das ACM Zertifikat und den DNS Namen aus dem Abschnitt Voraussetzungen. Die Vorlage stellt Folgendes bereit und konfiguriert es:

  • Application Load Balancer

  • Auto Scaling-Gruppe

  • EC2Instanzen, die mit Benutzerdaten konfiguriert sind, um alle erforderlichen Pakete zu installieren

  • IAMRollen

  • DAPS

Sie können die AWS CloudFormation Vorlage bereitstellen, indem Sie sich bei der AWS CloudFormation Konsole anmelden AWS Management Console und diese verwenden. Sie können die Vorlage auch mithilfe eines AWS CLI Befehls wie dem folgenden bereitstellen:

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

Der Name der Umgebung ist Ihre eigene Wahl. Wir empfehlen, einen aussagekräftigen Begriff zu verwendenDapsInfrastructure, z. B. weil er sich in den AWS Ressourcen-Tags wiederfindet.

Für dieses Muster t3.small ist es groß genug, um den DAPS Workflow auszuführen, der über drei Docker-Container verfügt.

Die Vorlage stellt die EC2 Instanzen in privaten Subnetzen bereit. Das bedeutet, dass auf die Instanzen nicht direkt über SSH (Secure Shell) aus dem Internet zugegriffen werden kann. Den Instanzen werden die IAM Rolle und der AWS Systems Manager Agent zugewiesen, die erforderlich sind, um den Zugriff auf die laufenden Instanzen über den Session Manager zu ermöglichen, eine Funktion von AWS Systems Manager.

Wir empfehlen die Verwendung von Session Manager für den Zugriff. Alternativ könnten Sie einen Bastion-Host bereitstellen, der den SSH Zugriff über das Internet ermöglicht. Wenn Sie den Bastion-Host-Ansatz verwenden, kann es noch einige Minuten dauern, bis die EC2 Instanz ausgeführt wird.

Nachdem die AWS CloudFormation Vorlage erfolgreich bereitgestellt wurde, verweisen Sie den DNS Namen auf Ihren Application Load Balancer DNS Balancer-Namen. Führen Sie zur Bestätigung den folgenden Befehl aus:

dig <DNS NAME>

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

; <<>> 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 Ingenieur

Registrieren Sie die Konnektoren der Teilnehmer für den DAPS Dienst.

Registrieren Sie die Teilnehmer von einer der bereitgestellten EC2 Instanzen ausDAPS:

  1. Führen Sie das verfügbare Skript auf der EC2 Instanz aus, indem Sie den Root-Benutzer verwenden:

    cd /srv/mvds/omejdn-daps
  2. Registrieren Sie den Anbieter:

    bash scripts/register_connector.sh <provider_name>
  3. Registrieren Sie den Verbraucher:

    bash scripts/register_connector.sh <consumer_name>

Die Wahl der Namen hat keinen Einfluss auf die nächsten Schritte. Wir empfehlen, entweder provider und consumer oder companyx und zu verwendencompanyy.

Die Registrierungsbefehle konfigurieren den DAPS Dienst außerdem automatisch mit den erforderlichen Informationen, die aus den erstellten Zertifikaten und Schlüsseln abgerufen werden.

Sammeln Sie die Informationen, die Sie für spätere Installationsschritte benötigen, während Sie bei einem DAPS Server angemeldet sind:

  1. Von omejdn-daps/config/clients.yml get the client id für den Anbieter und den Verbraucher. Die client id Werte sind lange Zeichenketten mit Hexadezimalziffern.

  2. Kopieren Sie aus dem omejdn-daps/keys Verzeichnis den Inhalt der Dateienconsumer.cert, consumer.keyprovider.cert, undprovider.key.

Wir empfehlen, den Text zu kopieren und in Dateien mit ähnlichem Namen daps- auf Ihrer Workstation mit dem Präfix „A“ einzufügen.

Sie sollten den Client IDs für den Anbieter und den Verbraucher haben und vier Dateien in Ihrem Arbeitsverzeichnis auf Ihrer Workstation haben:

  • Der Name der Quelldatei consumer.cert wird zum Namen der Workstation-Dateidaps-consumer.cert.

  • Der Name der Quelldatei consumer.key wird zum Namen der Arbeitsstationsdateidaps-consumer.key.

  • Der Name der Quelldatei provider.cert wird zum Namen der Arbeitsstationsdateidaps-provider.cert.

  • Der Name der Quelldatei provider.key wird zum Namen der Arbeitsstationsdateidaps-provider.key.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie das EDC Tractus-X-Repository und verwenden Sie die Version 0.4.1.

Für den Build des EDC Tractus-X-Connectors müssen die Dienste Postgre SQL (Asset-Datenbank) und HashiCorp Vault (Secrets Management) bereitgestellt und verfügbar sein.

Es gibt viele verschiedene Versionen von Tractus-X Helm-Charts. EDC Dieses Muster spezifiziert Version 0.4.1, da es den Server verwendet. DAPS

Die neuesten Versionen verwenden Managed Identity Wallet (MIW) mit einer verteilten Implementierung des Identitätsdienstes.

Klonen Sie auf der Workstation, auf der Sie die beiden Kubernetes-Namespaces erstellt haben, das tractusx-edc-Repository und checken Sie den Branch aus. release/0.4.1

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

Konfigurieren Sie das EDC Tractus-X-Helm-Diagramm.

Ändern Sie die Konfiguration der Tractus-X-Helm-Diagrammvorlage, damit beide Konnektoren miteinander interagieren können.

Dazu würden Sie den Namespace dem DNS Namen des Dienstes hinzufügen, sodass er von anderen Diensten im Cluster aufgelöst werden kann. Diese Änderungen sollten an der charts/tractusx-connector/templates/_helpers.tpl Datei vorgenommen werden. Dieses Muster bietet eine endgültige modifizierte Version dieser Datei, die Sie verwenden können. Kopieren Sie es und fügen Sie es in den daps Abschnitt der Datei eincharts/tractusx-connector/templates/_helpers.tpl.

Stellen Sie sicher, dass Sie alle DAPS Abhängigkeiten kommentieren incharts/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 Ingenieur

Konfigurieren Sie die Konnektoren für die Verwendung von Postgre bei SQL AmazonRDS.

(Optional) Die Amazon Relational Database Service (AmazonRDS) -Instance ist in diesem Muster nicht erforderlich. Wir empfehlen jedoch dringend, Amazon RDS oder Amazon Aurora zu verwenden, da sie Funktionen wie Hochverfügbarkeit sowie Sicherung und Wiederherstellung bieten.

Gehen Sie wie folgt vor, um Postgre SQL auf Kubernetes durch Amazon RDS zu ersetzen:

  1. Stellen Sie die Amazon RDS for SQL Postgre-Instance bereit.

  2. Chart.yamlKommentieren Sie den PostgreSQL Abschnitt.

  3. In provider_values.yml und consumer_values.yml konfigurieren Sie den postgresql Abschnitt wie folgt:

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 Ingenieur

Konfigurieren und implementieren Sie den Provider-Connector und seine Dienste.

Gehen Sie wie folgt vor, um den Provider-Connector und seine Dienste zu konfigurieren:

  1. Führen Sie den folgenden Befehl aus, um die provider_edc.yaml Datei aus dem edc_helm_configs Verzeichnis in den aktuellen Helm-Chart-Ordner herunterzuladen:

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

  2. Ersetzen Sie die folgenden Variablen (ebenfalls in der Datei markiert) durch ihre Werte:

    • CLIENT_ID‒ Die von der generierte IDDAPS. Der CLIENT_ID sollte sich /srv/mvds/omejdn-daps/config/clients.yml/config/clients.yml auf dem DAPS Server befinden. Es sollte eine Folge von Hexadezimalzeichen sein.

    • DAPS_URL‒ Der URL des Servers. DAPS Er sollte den DNS Namen https://{DNS name} verwenden, den Sie bei der Ausführung der AWS CloudFormation Vorlage eingerichtet haben.

    • VAULT_TOKEN‒ Das Token, das für die Vault-Autorisierung verwendet werden soll. Wählen Sie einen beliebigen Wert.

    • vault.fullnameOverridevault-provider.

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

    Bei den vorherigen Werten wird davon ausgegangen, dass der Bereitstellungsname und der Namespace-Name Provider sind.

  3. Verwenden Sie die folgenden Befehle, um das Helm-Diagramm von Ihrer Workstation aus auszuführen:

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

Fügen Sie das Zertifikat und die Schlüssel zum Provider-Tresor hinzu.

Um Verwirrung zu vermeiden, sollten Sie die folgenden Zertifikate außerhalb des tractusx-edc/charts Verzeichnisses erstellen.

Führen Sie beispielsweise den folgenden Befehl aus, um zu Ihrem Home-Verzeichnis zu wechseln:

cd ~

Sie müssen jetzt die vom Anbieter benötigten Geheimnisse zum Tresor hinzufügen.

Die Namen der Geheimnisse im Tresor entsprechen den Werten der Schlüssel im secretNames: Abschnitt der provider_edc.yml Datei. Standardmäßig sind sie wie folgt konfiguriert:

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

Zunächst werden ein Advanced Encryption Standard (AES) -Schlüssel, ein privater Schlüssel, ein öffentlicher Schlüssel und ein selbstsigniertes Zertifikat generiert. Diese werden anschließend als Geheimnisse zum Tresor hinzugefügt.

Außerdem sollte dieses Verzeichnis die daps-provider.key Dateien daps-provider.cert und enthalten, die Sie vom DAPS Server kopiert haben.

  1. Führen Sie die folgenden Befehle aus:

    # 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. Bevor Sie die Geheimnisse zum Tresor hinzufügen, konvertieren Sie sie von mehreren Zeilen in einzelne Zeilen, indem Sie Zeilenumbrüche durch Folgendes ersetzen\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. Führen Sie die folgenden Befehle aus, um die Geheimnisse zu formatieren, die dem Tresor hinzugefügt werden:

    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

    Die Geheimnisse sind jetzt JSON formatiert und können dem Tresor hinzugefügt werden.

  4. Führen Sie den folgenden Befehl aus, um den Pod-Namen für den Tresor abzurufen:

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

    Der Pod-Name wird ähnlich sein wie"vault-provider-0". Dieser Name wird verwendet, wenn eine Portweiterleitung zum Tresor erstellt wird. Mit der Portweiterleitung können Sie auf den Tresor zugreifen, um den geheimen Schlüssel hinzuzufügen. Sie sollten dies von einer Workstation aus ausführen, für die AWS Anmeldeinformationen konfiguriert sind.

  5. Um auf den Tresor zuzugreifen, verwenden Sie, kubectl um eine Portweiterleitung zu konfigurieren:

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

Sie sollten jetzt über Ihren Browser oder das auf den Tresor zugreifen könnenCLI.

Browser

  1. Navigieren Sie im Browser zu http://127.0.0.1:8200, wo der von Ihnen konfigurierte Port Forward verwendet wird.

  2. Melden Sie sich mit dem Token an, das Sie zuvor konfiguriert habenprovider_edc.yml. Erstellen Sie in der Secrets-Engine drei Geheimnisse. Jedes Geheimnis hat einen Path for this secret Wert, bei dem es sich um den Geheimnamen handelt, der in der folgenden Liste aufgeführt ist. Innerhalb des secret data Abschnitts wird der Name des Schlüssels content und der Wert ist die einzelne Textzeile aus der jeweiligen Datei benannt.line.

  3. Die geheimen Namen stammen aus dem secretNames Abschnitt in der provider_edc.yml Datei.

  4. Erstellen Sie die folgenden Geheimnisse:

    • Geheimnis transfer-proxy-token-signer-private-key mit dem Dateinamen provider-private-key.pem.line

    • transfer-proxy-token-signer-public-keyGeheim mit dem Dateinamen provider-cert.pem.line

    • transfer-proxy-token-encryption-aes-keyGeheim mit dem Dateinamen provider-aes.key.line

    • daps-private-keyGeheim mit dem Dateinamen daps-provider.key.line

    • daps-public-keyGeheim mit dem Dateinamen daps-provider.cert.line

Tresor CLI

Der verwendet CLI auch den Port Forward, den Sie konfiguriert haben.

  1. Installieren Sie Vault auf Ihrer Workstation, CLI indem Sie den Anweisungen in der HashiCorp Vault-Dokumentation folgen.

  2. Um sich mit dem Token, das Sie eingerichtet haben, beim Tresor anzumeldenprovider_edc.yml, führen Sie den folgenden Befehl aus:

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

    Mit dem richtigen Token sollte die Meldung angezeigt werden "Success! You are now authenticated."

  3. Führen Sie den folgenden Code aus, um die Secrets mithilfe der zuvor erstellten JSON formatierten Dateien zu erstellen:

    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 Ingenieur

Konfigurieren und implementieren Sie den Consumer-Connector und seine Dienste.

Die Schritte zur Konfiguration und Bereitstellung des Consumer ähneln denen, die Sie für den Anbieter ausgeführt haben:

  1. Führen Sie die folgenden Befehle consumer_edc.yaml aus, um sie aus dem aws-patterns-edcRepository in den Ordner tractusx-edc/charts/tractusx-connecto r zu kopieren:

    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. Aktualisieren Sie die folgenden Variablen mit ihren tatsächlichen Werten:

    • CONSUMER_CLIENT_ID‒ Die von generierte IDDAPS. Der CONSUMER_CLIENT_ID sollte sich config/clients.yml auf dem DAPS Server befinden.

    • DAPS_URL‒ Das Gleiche DAPSURL, das Sie für den Anbieter verwendet haben.

    • VAULT_TOKEN‒ Das Token, das für die Vault-Autorisierung verwendet werden soll. Wählen Sie einen beliebigen Wert.

    • vault.fullnameOverridevault-consumer

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

    Bei den vorherigen Werten wird davon ausgegangen, dass der Bereitstellungsname und der Namespace-Name consumer

  3. Verwenden Sie die folgenden Befehle, um das Helm-Diagramm auszuführen:

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

Fügen Sie das Zertifikat und die Schlüssel zum Verbrauchertresor hinzu.

Aus Sicherheitsgründen empfehlen wir, die Zertifikate und Schlüssel für jeden Datenraum-Teilnehmer neu zu generieren. Dieses Muster generiert Zertifikate und Schlüssel für den Verbraucher neu.

Die Schritte sind denen für den Anbieter sehr ähnlich. Sie können die geheimen Namen in der consumer_edc.yml Datei überprüfen.

Die Namen der Geheimnisse im Tresor entsprechen den Werten der Schlüssel im secretNames: Abschnitt vonconsumer_edc.yml file. Standardmäßig sind sie wie folgt konfiguriert:

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

Die daps-consumer.key Dateien daps-consumer.cert und, die Sie vom DAPS Server kopiert haben, sollten in diesem Verzeichnis bereits vorhanden sein.

  1. Führen Sie die folgenden Befehle aus:

    # 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. Bearbeiten Sie die Dateien manuell, um Zeilenumbrüche durch sie zu ersetzen\n, oder verwenden Sie drei Befehle, die den folgenden ähneln:

    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. Führen Sie die folgenden Befehle aus, um die Geheimnisse zu formatieren, die zu Vault hinzugefügt werden:

    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

    Die Geheimnisse sind jetzt JSON formatiert und können dem Tresor hinzugefügt werden.

  4. Führen Sie den folgenden Befehl aus, um den Pod-Namen für den Consumer-Tresor abzurufen:

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

    Der Pod-Name wird ähnlich sein wie"vault-consumer-0". Dieser Name wird verwendet, wenn eine Portweiterleitung zum Tresor erstellt wird. Mit der Portweiterleitung können Sie auf den Tresor zugreifen, um den geheimen Schlüssel hinzuzufügen. Sie sollten dies von einer Workstation aus ausführen, für die AWS Anmeldeinformationen konfiguriert sind.

  5. Um auf den Tresor zuzugreifen, verwenden Sie, kubectl um eine Portweiterleitung zu konfigurieren:

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

Der lokale Port ist diesmal 8201, sodass Sie Portweiterleitungen sowohl für den Hersteller als auch für den Verbraucher einrichten können.

Browser

Sie können Ihren Browser verwenden, um eine Verbindung zu http://localhost:8201/ herzustellen, um auf den Verbraucher-Tresor zuzugreifen und die Secrets mit Namen und Inhalt wie beschrieben zu erstellen.

Die Geheimnisse und Dateien, die den Inhalt enthalten, sind die folgenden:

  • transfer-proxy-token-signer-private-keyGeheim mit dem Dateinamen consumer-private-key.pem.line

  • transfer-proxy-token-signer-public-keyGeheim mit dem Dateinamen consumer-cert.pem.line

  • transfer-proxy-token-encryption-aes-keyGeheim mit dem Dateinamen consumer-aes.key.line

Tresor CLI

Mit Vault können Sie die folgenden Befehle ausführenCLI, um sich beim Tresor anzumelden und die Secrets zu erstellen:

  1. Melden Sie sich mit dem Token, das Sie darin konfiguriert haben, beim Tresor anconsumer_edc.yml:

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

    Mit dem richtigen Token sollte die Meldung angezeigt werden "Success! You are now authenticated."

  2. Führen Sie den folgenden Code aus, um die Secrets mithilfe der zuvor erstellten JSON formatierten Dateien zu erstellen:

    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 Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Richten Sie die Portweiterleitung ein.

  1. Führen Sie die folgenden Befehle aus, um den Status der Pods zu überprüfen:

    kubectl get pods -n provider kubectl get pods -n consumer
  2. Um sicherzustellen, dass die Kubernetes-Bereitstellungen erfolgreich waren, schauen Sie sich die Protokolle der Kubernetes-Pods für Anbieter und Verbraucher an, indem Sie die folgenden Befehle ausführen:

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

Der Cluster ist privat und nicht öffentlich zugänglich. Um mit den Konnektoren zu interagieren, verwenden Sie die Kubernetes-Port-Forwarding-Funktion, um den von Ihrem Computer generierten Datenverkehr an die Connector-Steuerebene weiterzuleiten.

  1. Leiten Sie auf dem ersten Terminal die Anfragen des Verbrauchers API über Port 8300 an das Management weiter:

    kubectl port-forward deployment/consumer-tractusx-connector-controlplane 8300:8081 -n consumer
  2. Leiten Sie auf dem zweiten Terminal die Anfragen des Anbieters API über Port 8400 an das Management weiter:

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

Erstellen Sie S3-Buckets für den Anbieter und den Verbraucher.

Der EDC Connector verwendet derzeit keine temporären AWS Anmeldeinformationen, wie sie beispielsweise bei der Übernahme einer Rolle bereitgestellt werden. Der EDC unterstützt nur die Verwendung einer Kombination aus IAM Zugriffsschlüssel-ID und geheimer Zugriffsschlüssel.

Für spätere Schritte sind zwei S3-Buckets erforderlich. Ein S3-Bucket wird zum Speichern von Daten verwendet, die vom Anbieter zur Verfügung gestellt werden. Der andere S3-Bucket ist für Daten vorgesehen, die vom Verbraucher empfangen werden.

Der IAM Benutzer sollte nur die Erlaubnis haben, Objekte in den beiden benannten Buckets zu lesen und zu schreiben.

Eine Zugangsschlüssel-ID und ein geheimes Zugriffsschlüsselpaar müssen erstellt und sicher aufbewahrt werden. Nach der MVDS Außerbetriebnahme sollte der IAM Benutzer gelöscht werden.

Der folgende Code ist eine IAM Beispielrichtlinie für den Benutzer:

{ "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 Ingenieur

Richten Sie Postman so ein, dass es mit dem Konnektor interagiert.

Sie können jetzt über Ihre EC2 Instanz mit den Konnektoren interagieren. Verwenden Sie Postman als HTTP Client und stellen Sie Postman Collections sowohl für den Provider- als auch für den Consumer-Connector bereit.

Importieren Sie die Sammlungen aus dem aws-pattern-edc Repository in Ihre Postman-Instanz.

Dieses Muster verwendet Postman-Sammlungsvariablen, um Eingaben für Ihre Anfragen bereitzustellen.

App-Entwickler, Dateningenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Bereiten Sie die Daten zur Intensität der CO2-Emissionen für die gemeinsame Nutzung vor.

Zunächst müssen Sie entscheiden, welche Datenmenge gemeinsam genutzt werden soll. Die Daten von Unternehmen X stellen den CO2-Fußabdruck seiner Fahrzeugflotte dar. Das Gewicht ist das Bruttofahrzeuggewicht (GVW) in Tonnen, und die Emissionen werden gemäß der Messung () in Gramm CO2 pro Tonnenkilometer (g CO2 e/t-km) angegeben: Wheel-to-Well WTW

  • Fahrzeugtyp: Van; Gewicht: < 3,5; Emissionen: 800

  • Fahrzeugtyp: Stadtlaster; Gewicht: 3,5—7,5; Emissionen: 315

  • Fahrzeugtyp: Mittelschwerer Nutzfahrzeug (MGV); Gewicht: 7,5—20; Emissionen: 195

  • Fahrzeugtyp: Schwerlastwagen (HGV); Gewicht: > 20; Emissionen: 115

Die Beispieldaten befinden sich in der carbon_emissions_data.json Datei im aws-patterns-edc Repository.

Unternehmen X verwendet Amazon S3 zum Speichern von Objekten.

Erstellen Sie den S3-Bucket und speichern Sie dort das Beispieldatenobjekt. Die folgenden Befehle erstellen einen S3-Bucket mit Standardsicherheitseinstellungen. Wir empfehlen dringend, sich mit den bewährten Sicherheitsmethoden für Amazon S3 vertraut zu machen.

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>

Der S3-Bucket-Name sollte weltweit eindeutig sein. Weitere Informationen zu Benennungsregeln finden Sie in der AWSDokumentation.

Dateningenieur, App-Entwickler

Registrieren Sie das Datenobjekt mithilfe von Postman beim Connector des Anbieters.

Ein EDC Connector-Datenobjekt enthält den Namen der Daten und ihren Speicherort. In diesem Fall zeigt das EDC Connector-Datenobjekt auf das erstellte Objekt im S3-Bucket:

  • Konnektor: Anbieter

  • Anfrage: Asset erstellen

  • Sammlungsvariablen: AktualisierenASSET_NAME. Wählen Sie einen aussagekräftigen Namen, der das Asset repräsentiert.

  • Hauptteil der Anfrage: Aktualisieren Sie den Hauptteil der Anfrage mit dem S3-Bucket, den Sie für den Anbieter erstellt haben.

    "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>" }
  • Antwort: Eine erfolgreiche Anfrage gibt die Erstellungszeit und die Asset-ID des neu erstellten Assets zurück.

    { "@id": "c89aa31c-ec4c-44ed-9e8c-1647f19d7583" }
  • Sammlungsvariable ASSET _ID: Aktualisieren Sie die Sammlungsvariable Postman ASSET_ID mit der ID, die nach der Erstellung automatisch vom EDC Konnektor generiert wurde.

App-Entwickler, Dateningenieur

Definieren Sie die Nutzungsrichtlinie für das Asset.

Einem EDC Datenbestand müssen klare Nutzungsrichtlinien zugeordnet sein. Erstellen Sie zunächst die Richtliniendefinition im Provider-Connector.

Die Richtlinie von Unternehmen X besteht darin, den Teilnehmern des Datenraums die Nutzung der Daten zum CO2-Fußabdruck zu ermöglichen.

  • Hauptteil der Anfrage:

    • Anschluss: Anbieter

    • Anfrage: Richtlinie erstellen

    • Sammlungsvariablen: Aktualisieren Sie die Policy Name Variable mit dem Namen der Richtlinie.

  • Antwort: Bei einer erfolgreichen Anfrage werden die Uhrzeit der Erstellung und die Richtlinien-ID der neu erstellten Richtlinie zurückgegeben. Aktualisieren Sie die Sammlungsvariable POLICY_ID mit der ID der Richtlinie, die vom EDC Connector nach der Erstellung generiert wurde.

App-Entwickler, Dateningenieur

Definieren Sie ein EDC Vertragsangebot für das Asset und seine Nutzungsrichtlinie.

Damit andere Teilnehmer Zugriff auf Ihre Daten beantragen können, bieten Sie diese in einem Vertrag an, der die Nutzungsbedingungen und Berechtigungen festlegt:

  • Konnektor: Anbieter

  • Anfrage: Vertragsdefinition erstellen

  • Sammlungsvariablen: Aktualisieren Sie die Contract Name Variable mit einem Namen für das Vertragsangebot oder die Vertragsdefinition.

App-Entwickler, Dateningenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Fordern Sie den von Unternehmen X gemeinsam genutzten Datenkatalog an.

Als Datenkonsument im Datenraum muss Unternehmen Y zunächst herausfinden, welche Daten von anderen Teilnehmern gemeinsam genutzt werden.

In dieser Grundkonfiguration können Sie dazu den Consumer-Connector bitten, den Katalog der verfügbaren Ressourcen direkt vom Provider-Connector anzufordern.

  • Konnektor: Consumer

  • Anfrage: Katalog anfordern

  • Antwort: Alle verfügbaren Datenbestände des Anbieters zusammen mit den beigefügten Nutzungsrichtlinien. Suchen Sie als Datenverbraucher nach dem Vertrag, für den Sie sich interessieren, und aktualisieren Sie die folgenden Erfassungsvariablen entsprechend.

    • CONTRACT_OFFER_ID‒ Die ID des Vertragsangebots, das der Verbraucher aushandeln möchte

    • ASSET_ID‒ Die ID des Vermögenswerts, den der Verbraucher aushandeln möchte

    • PROVIDER_CLIENT_ID‒ Die ID des Provider-Connectors, mit dem verhandelt werden soll

App-Entwickler, Dateningenieur

Initiieren Sie eine Vertragsverhandlung für die Daten zur CO2-Emissionsintensität von Unternehmen X.

Nachdem Sie nun den Vermögenswert identifiziert haben, den Sie nutzen möchten, leiten Sie einen Vertragsverhandlungsprozess zwischen dem Verbraucher und dem Anbieter ein.

  • Konnektor: Verbraucher

  • Anfrage: Vertragsverhandlung

  • Sammlungsvariablen: Aktualisieren Sie die CONSUMER_CLIENT_ID Variable mit der ID des Consumer-Connectors, mit dem Sie verhandeln möchten.

Der Vorgang kann einige Zeit dauern, bis der VERIFIED Status erreicht ist.

Mithilfe der Get Negotiation Anfrage können Sie den Status der Vertragsverhandlung und die entsprechende Vereinbarungs-ID überprüfen.

App-Entwickler, Dateningenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Daten von HTTP Endpunkten konsumieren.

(Option 1) Um die HTTP Datenebene für die Nutzung von Daten im Datenraum zu verwenden, können Sie webhook.site verwenden, um einen HTTP Server zu emulieren und den Übertragungsprozess im Consumer-Connector zu initiieren:

  • Anschluss: Verbraucher

  • Anfrage: Vertragsverhandlung

  • Sammlungsvariablen: Aktualisieren Sie die Contract Agreement ID Variable mit der ID der vom EDC Konnektor generierten Vertragsvereinbarung.

  • Hauptteil der Anfrage: Aktualisieren Sie den Hauptteil der Anfrage und geben Sie HTTP dataDestination neben dem Webhook URL Folgendes an:

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

    Der Konnektor sendet die zum Herunterladen der Datei erforderlichen Informationen direkt an den URL Webhook.

    Die empfangene Nutzlast ähnelt der folgenden:

    { "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" } }

    Verwenden Sie die empfangenen Anmeldeinformationen, um das S3-Asset abzurufen, das vom Anbieter gemeinsam genutzt wurde.

In diesem letzten Schritt müssen Sie die Anfrage an die Consumer-Datenebene senden (Ports ordnungsgemäß weiterleiten), wie in der Payload (endpoint) angegeben.

App-Entwickler, Dateningenieur

Daten aus S3-Buckets direkt konsumieren.

(Option 2) Verwenden Sie die Amazon S3 S3-Integration mit dem EDC Connector und verweisen Sie direkt auf den S3-Bucket in der Verbraucherinfrastruktur als Ziel:

  • Hauptteil der Anfrage: Aktualisieren Sie den Hauptteil der Anfrage, um den S3-Bucket als anzugebendataDestination.

    Dies sollte der S3-Bucket sein, den Sie zuvor zum Speichern von Daten erstellt haben, die vom Verbraucher empfangen wurden.

    { "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 }}" } } }
Dateningenieur, App-Entwickler

Fehlerbehebung

ProblemLösung

Der Connector könnte ein Problem mit dem PEM Zertifikatsformat aufwerfen.

Verketten Sie den Inhalt jeder Datei zu einer einzigen Zeile, indem Sie hinzufügen. \n

Zugehörige Ressourcen

Zusätzliche Informationen

Spezifikationen für den Datenraum

Teilnehmer

Teilnehmer

Beschreibung des Unternehmens

Schwerpunkt des Unternehmens

Firma X

Betreibt eine Fahrzeugflotte in ganz Europa und Südamerika, um verschiedene Güter zu transportieren.

Zielt darauf ab, datengestützte Entscheidungen zu treffen, um die Intensität seines CO2-Fußabdrucks zu reduzieren.

Firma Y

Eine Umweltregulierungsbehörde

Setzt Umweltvorschriften und -richtlinien durch, die darauf abzielen, die Umweltauswirkungen von Unternehmen und Branchen, einschließlich der Intensität der CO2-Emissionen, zu überwachen und zu mindern.

Geschäftsszenario

Unternehmen X nutzt Datenraumtechnologie, um Daten zum CO2-Fußabdruck an einen Compliance-Auditor, Unternehmen Y, weiterzugeben, um die Umweltauswirkungen der Logistikaktivitäten von Unternehmen X zu bewerten und zu berücksichtigen.

Behörde für den Datenraum

Die Data Space Authority ist ein Konsortium der Organisationen, die für den Datenraum zuständig sind. In diesem Muster bilden sowohl Unternehmen X als auch Unternehmen Y das Leitungsorgan und stellen eine föderierte Datenschutzbehörde dar.

Komponenten des Datenraums

Komponente

Gewählte Implementierung

Zusätzliche Informationen

Protokoll für den Austausch von Datensätzen

Dataspace-Protokoll, Version 0.8

Anschluss für den Datenraum

EDCTractus-X-Anschluss Version 0.4.1

Richtlinien für den Datenaustausch

USEStandardrichtlinie

Dienste im Bereich Datenraum

Service

Implementierung

Zusätzliche Informationen

Identitätsdienst

System zur Bereitstellung dynamischer Attribute () DAPS

„Ein System zur Bereitstellung dynamischer Attribute (DAPS) hat die Absicht, bestimmte Attribute für Organisationen und Konnektoren zu ermitteln. Daher müssen Dritte letzteren nicht vertrauen, vorausgesetzt, sie vertrauen den DAPS Behauptungen.“ — DAPS

Um sich auf die Logik des Connectors zu konzentrieren, wird der Datenraum mithilfe von Docker Compose auf einem EC2 Amazon-Computer bereitgestellt.

Discovery Service

Verbundkatalog von Gaia-X

„Der Federated Catalogue stellt eine indexierte Sammlung von Gaia-X-Selbstbeschreibungen dar, die es ermöglichen, Anbieter und deren Serviceangebote zu finden und auszuwählen. Bei den Selbstbeschreibungen handelt es sich um Informationen, die von den Teilnehmern über sich selbst und ihre Dienstleistungen in Form von Eigenschaften und Ansprüchen bereitgestellt werden.“ — Kickstarter für das Gaia-X-Ökosystem

Daten, die ausgetauscht werden sollen

Datenbestände

Beschreibung

Format

Daten zu den CO2-Emissionen

Intensitätswerte für verschiedene Fahrzeugtypen in der angegebenen Region (Europa und Südamerika) aus der gesamten Fahrzeugflotte

JSONdatei

Datenmodell

{ "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" } } ] }

Tractus-X-Anschluss EDC

Die Dokumentation der einzelnen EDC Tractus-X-Parameter finden Sie in der Datei mit den Originalwerten.

In der folgenden Tabelle sind alle Dienste zusammen mit ihren entsprechenden exponierten Ports und Endpunkten als Referenz aufgeführt.

Name des Dienstes

Port und Pfad

Steuerebene

Verwaltung: ‒ Port: 8081 Pfad: /management

Steuerung ‒ Port: 8083 Pfad: /control

Protokoll-Port: 8084 Pfad: /api/v1/dsp

Metriken ‒ Port: 9090 Pfad: /metrics

Beobachtbarkeit ‒ Port: 8085 Pfad: /observability

Datenebene

Standard ‒ Port: 8080 Pfad: /api

public ‒ Port: 8081 Pfad: /api/dataplane/control

proxy ‒ Port: 8186 Pfad: /proxy

Metriken ‒ Port: 9090 Pfad: /metrics

Beobachtbarkeit ‒ Port: 8085 Pfad: /observability

Vault

Anschluss: 8200

Postfach SQL

Hafen: 5432

Manager verwenden AWS Secrets Manager

Es ist möglich, Secrets Manager anstelle von HashiCorp Vault als Secrets Manager zu verwenden. Dazu müssen Sie die AWS Secrets Manager EDC Erweiterung verwenden oder erstellen.

Sie sind für die Erstellung und Pflege Ihres eigenen Images verantwortlich, da Tractus-X keine Unterstützung für Secrets Manager bietet.

Um dies zu erreichen, müssen Sie die Build-Gradle-Dateien sowohl der Steuerungsebene als auch der Datenebene des Konnektors ändern, indem Sie Ihre AWS Secrets Manager EDC Erweiterung eingeben (ein Beispiel finden Sie in diesem Maven-Artefakt) und dann das Docker-Image erstellen, verwalten und referenzieren.

Weitere Informationen zum Refactoring des Docker-Images des Tractus-X-Connectors finden Sie unter Refactor Tractus-X Helm-Diagramme. EDC

Der Einfachheit halber vermeiden wir es, das Connector-Image nach diesem Muster neu zu erstellen und verwenden Vault. HashiCorp