Was ist Terragrunt?

Eine Einführung in Terragrunt

terragrunt iac terraform infrastructure code devops tutorial productivity tools aws cloud automation

Terragrunt ist ein leistungsstarkes Tool, das die Verwendung von Terraform erheblich vereinfacht und erweitert. Es ist eine dünne Wrapper-Lösung um Terraform, die DRY-Prinzipien (Don’t Repeat Yourself) in deine Infrastructure-as-Code-Praxis bringt und die Verwaltung komplexer, mehrschichtiger Terraform-Konfigurationen deutlich erleichtert.

In diesem umfassenden Guide erfährst du, was Terragrunt genau ist, wie es sich von Terraform unterscheidet und wie du es in deinen Projekten effektiv einsetzen kannst.

Was ist Terragrunt?

Terragrunt ist ein Open-Source-Tool, das als Wrapper um Terraform fungiert. Es wurde von Gruntwork entwickelt, um die häufigsten Probleme zu lösen, die Entwickler bei der Arbeit mit Terraform in größeren Projekten haben. Terragrunt ist keine Alternative zu Terraform, sondern eine Erweiterung, die Terraform-Befehle ausführt und dabei zusätzliche Funktionalitäten bietet.

Kernkonzept: Terragrunt als Terraform-Erweiterung

Terragrunt erweitert Terraform um folgende wichtige Features:

Warum Terragrunt?

Während Terraform bereits ein mächtiges Tool für Infrastructure as Code ist, stößt man bei größeren Projekten schnell an Grenzen:

Probleme mit reinem Terraform:

Terragrunt löst diese Probleme:

Terragrunt vs. Terraform: Die Unterschiede

Es ist wichtig zu verstehen, dass Terragrunt kein Ersatz für Terraform ist, sondern eine Erweiterung:

FeatureTerraformTerragrunt
Infrastructure Definition✅ Ja❌ Nein (nutzt Terraform)
State ManagementManuell✅ Automatisch
DRY-PrinzipienBegrenzt✅ Vollständig
Dependency ManagementManuell✅ Automatisch
Backend-KonfigurationManuell✅ Automatisch
Konfigurationsvererbung❌ Nein✅ Ja

Terragrunt führt im Hintergrund Terraform-Befehle aus und fügt dabei zusätzliche Funktionalitäten hinzu. Du schreibst weiterhin Terraform-Code, aber Terragrunt hilft dir dabei, diesen Code besser zu organisieren und zu verwalten.

Installation von Terragrunt

Voraussetzungen

Bevor du Terragrunt installierst, stelle sicher, dass du folgende Tools installiert hast:

Installation über Homebrew (macOS/Linux)

Die einfachste Methode für macOS und Linux:

brew install terragrunt

Installation über den Paketmanager (Linux)

Für Ubuntu/Debian:

# Terragrunt Repository hinzufügen
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terragrunt

Manuelle Installation

  1. Lade die neueste Version von der Terragrunt Releases-Seite herunter
  2. Extrahiere die Binärdatei
  3. Verschiebe sie in einen Verzeichnis, der in deinem PATH ist:
# Beispiel für Linux/macOS
wget https://github.com/gruntwork-io/terragrunt/releases/download/v0.54.0/terragrunt_linux_amd64
chmod +x terragrunt_linux_amd64
sudo mv terragrunt_linux_amd64 /usr/local/bin/terragrunt

Installation über Go (für Entwickler)

Falls du Go installiert hast:

go install github.com/gruntwork-io/terragrunt/cmd/terragrunt@latest

Installation überprüfen

Nach der Installation kannst du die Version überprüfen:

terragrunt --version

Die Ausgabe sollte etwa so aussehen:

terragrunt version v0.54.0

Erste Schritte mit Terragrunt

Projektstruktur erstellen

Terragrunt verwendet eine spezifische Verzeichnisstruktur, die das DRY-Prinzip unterstützt. Hier ist eine typische Struktur:

infrastructure/
├── terragrunt.hcl          # Root-Konfiguration
├── environments/
│   ├── dev/
│   │   └── terragrunt.hcl
│   ├── staging/
│   │   └── terragrunt.hcl
│   └── prod/
│       └── terragrunt.hcl
└── modules/
    └── vpc/
        ├── main.tf
        ├── variables.tf
        └── outputs.tf

Erste terragrunt.hcl Datei

Erstelle eine terragrunt.hcl Datei in deinem Projektverzeichnis:

# terragrunt.hcl
terraform {
  source = "../modules/vpc"
}

inputs = {
  vpc_name = "my-vpc"
  cidr_block = "10.0.0.0/16"
}

Diese Konfiguration:

Terragrunt-Befehle ausführen

Terragrunt-Befehle sind fast identisch mit Terraform-Befehlen:

# Initialisierung
terragrunt init

# Plan ausführen
terragrunt plan

# Anwenden
terragrunt apply

# Zerstören
terragrunt destroy

Terragrunt führt diese Befehle intern mit Terraform aus und fügt dabei seine zusätzlichen Features hinzu.

Remote State Management

Eines der mächtigsten Features von Terragrunt ist das automatische Remote State Management.

Problem mit reinem Terraform

In reinem Terraform musst du für jede Umgebung manuell die Backend-Konfiguration definieren:

# dev/backend.tf
terraform {
  backend "s3" {
    bucket = "my-terraform-state-dev"
    key    = "vpc/terraform.tfstate"
    region = "us-east-1"
  }
}

# prod/backend.tf
terraform {
  backend "s3" {
    bucket = "my-terraform-state-prod"
    key    = "vpc/terraform.tfstate"
    region = "us-east-1"
  }
}

Dies führt zu Code-Duplikation und Fehleranfälligkeit.

Lösung mit Terragrunt

Mit Terragrunt kannst du die Backend-Konfiguration zentral definieren:

# root terragrunt.hcl
remote_state {
  backend = "s3"
  config = {
    bucket = "my-terraform-state-${get_env("ENVIRONMENT", "dev")}"
    key    = "${path_relative_to_include()}/terraform.tfstate"
    region = "us-east-1"
  }
}

Terragrunt generiert automatisch die richtige Backend-Konfiguration für jede Umgebung basierend auf dem aktuellen Pfad.

Dynamische State-Pfade

Terragrunt unterstützt dynamische State-Pfade basierend auf der Verzeichnisstruktur:

remote_state {
  backend = "s3"
  config = {
    bucket         = "my-terraform-state"
    key            = "${path_relative_to_include()}/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "terraform-locks"
  }
}

Die Funktion path_relative_to_include() erstellt automatisch einen eindeutigen State-Pfad basierend auf der Verzeichnisstruktur.

DRY-Prinzipien mit Terragrunt

Konfigurationsvererbung

Terragrunt unterstützt Konfigurationsvererbung über mehrere Ebenen:

# root terragrunt.hcl
locals {
  common_vars = {
    region = "us-east-1"
    environment = "dev"
  }
}

# environments/dev/terragrunt.hcl
include "root" {
  path = find_in_parent_folders()
}

terraform {
  source = "../../modules/vpc"
}

inputs = merge(
  include.root.locals.common_vars,
  {
    vpc_name = "dev-vpc"
    cidr_block = "10.0.0.0/16"
  }
)

Zentrale Konfigurationen

Du kannst gemeinsame Konfigurationen in einer zentralen Datei definieren:

# common.hcl
locals {
  common_tags = {
    Environment = "production"
    ManagedBy   = "terraform"
    Team        = "platform"
  }
  
  common_backend_config = {
    bucket         = "my-terraform-state"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "terraform-locks"
  }
}

Diese Konfiguration kann dann von allen Umgebungen genutzt werden.

Dependency Management

Terragrunt kann automatisch Abhängigkeiten zwischen Modulen verwalten.

Dependencies definieren

# vpc/terragrunt.hcl
terraform {
  source = "../../modules/vpc"
}

dependencies {
  paths = ["../networking"]
}

inputs = {
  vpc_name = "my-vpc"
}

Automatische Ausführung

Wenn du terragrunt apply ausführst, führt Terragrunt automatisch zuerst terragrunt apply in den abhängigen Verzeichnissen aus:

terragrunt apply
# Terragrunt führt automatisch aus:
# 1. terragrunt apply in ../networking
# 2. terragrunt apply im aktuellen Verzeichnis

Abhängigkeiten mit Outputs

Terragrunt kann auch Outputs von abhängigen Modulen automatisch als Inputs verwenden:

# app/terragrunt.hcl
terraform {
  source = "../../modules/app"
}

dependencies {
  paths = ["../vpc"]
}

inputs = {
  vpc_id = dependency.vpc.outputs.vpc_id
  subnet_ids = dependency.vpc.outputs.subnet_ids
}

Praktisches Beispiel: Multi-Environment-Setup

Lass uns ein vollständiges Beispiel für ein Multi-Environment-Setup erstellen:

Verzeichnisstruktur

infrastructure/
├── terragrunt.hcl
├── environments/
│   ├── dev/
│   │   ├── terragrunt.hcl
│   │   └── vpc/
│   │       └── terragrunt.hcl
│   └── prod/
│       ├── terragrunt.hcl
│       └── vpc/
│           └── terragrunt.hcl
└── modules/
    └── vpc/
        ├── main.tf
        ├── variables.tf
        └── outputs.tf

Root-Konfiguration

# infrastructure/terragrunt.hcl
remote_state {
  backend = "s3"
  config = {
    bucket         = "my-terraform-state-${get_env("ENVIRONMENT", "dev")}"
    key            = "${path_relative_to_include()}/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "terraform-locks"
  }
}

generate "provider" {
  path      = "provider.tf"
  if_exists = "overwrite_terragrunt"
  contents = <<EOF
provider "aws" {
  region = var.aws_region
}
EOF
}

Environment-Konfiguration

# infrastructure/environments/dev/terragrunt.hcl
include "root" {
  path = find_in_parent_folders()
}

locals {
  environment = "dev"
  aws_region  = "us-east-1"
}

inputs = {
  aws_region = local.aws_region
  environment = local.environment
}

VPC-Modul-Konfiguration

# infrastructure/environments/dev/vpc/terragrunt.hcl
include "root" {
  path = find_in_parent_folders("terragrunt.hcl")
}

include "env" {
  path = find_in_parent_folders("environments/dev/terragrunt.hcl")
}

terraform {
  source = "../../../modules/vpc"
}

inputs = {
  vpc_name   = "${include.env.locals.environment}-vpc"
  cidr_block = "10.0.0.0/16"
  tags = {
    Environment = include.env.locals.environment
  }
}

Terraform-Modul

# infrastructure/modules/vpc/main.tf
variable "vpc_name" {
  description = "Name of the VPC"
  type        = string
}

variable "cidr_block" {
  description = "CIDR block for the VPC"
  type        = string
}

variable "tags" {
  description = "Tags to apply to resources"
  type        = map(string)
  default     = {}
}

resource "aws_vpc" "main" {
  cidr_block = var.cidr_block
  tags = merge(
    var.tags,
    {
      Name = var.vpc_name
    }
  )
}

output "vpc_id" {
  value = aws_vpc.main.id
}

Best Practices mit Terragrunt

1. Konsistente Verzeichnisstruktur

Verwende eine konsistente Verzeichnisstruktur für alle Projekte:

infrastructure/
├── terragrunt.hcl          # Root-Konfiguration
├── environments/
│   ├── dev/
│   ├── staging/
│   └── prod/
└── modules/
    ├── vpc/
    ├── ec2/
    └── rds/

2. Zentrale Konfigurationen nutzen

Definiere gemeinsame Konfigurationen in der Root-Konfiguration:

# root terragrunt.hcl
locals {
  common_tags = {
    ManagedBy = "terraform"
    Team      = "platform"
  }
  
  common_backend_config = {
    bucket         = "my-terraform-state"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "terraform-locks"
  }
}

3. Environment-spezifische Konfigurationen

Verwende separate Konfigurationen für jede Umgebung:

# environments/dev/terragrunt.hcl
locals {
  environment = "dev"
  instance_type = "t3.micro"
}

# environments/prod/terragrunt.hcl
locals {
  environment = "prod"
  instance_type = "t3.large"
}

4. Dependencies explizit definieren

Definiere Abhängigkeiten explizit, um die Ausführungsreihenfolge zu kontrollieren:

dependencies {
  paths = ["../vpc", "../networking"]
}

5. Inputs validieren

Validiere Inputs in deinen Terragrunt-Konfigurationen:

inputs = {
  instance_count = 3
  instance_type  = "t3.micro"
}

# Validierung über Terraform-Variablen

6. Remote State Locking

Aktiviere immer State Locking für sichere parallele Ausführungen:

remote_state {
  backend = "s3"
  config = {
    bucket         = "my-terraform-state"
    key            = "${path_relative_to_include()}/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "terraform-locks"  # Wichtig für Locking
  }
}

Häufige Probleme und Lösungen

Problem: Terragrunt findet Terraform nicht

Lösung: Stelle sicher, dass Terraform im PATH ist:

which terraform
# Falls nicht gefunden:
export PATH=$PATH:/path/to/terraform

Problem: State-Lock-Fehler

Lösung: Überprüfe, ob ein anderer Prozess den State lockt:

# State-Lock manuell entfernen (nur wenn sicher!)
terragrunt force-unlock <lock-id>

Problem: Dependencies werden nicht erkannt

Lösung: Stelle sicher, dass die dependencies Block korrekt definiert ist:

dependencies {
  paths = ["../vpc"]  # Relativer Pfad
}

Problem: Backend-Konfiguration wird nicht generiert

Lösung: Überprüfe die remote_state Konfiguration:

remote_state {
  backend = "s3"
  config = {
    # Stelle sicher, dass alle erforderlichen Felder vorhanden sind
    bucket = "my-terraform-state"
    key    = "${path_relative_to_include()}/terraform.tfstate"
    region = "us-east-1"
  }
}

Terragrunt vs. Terraform Workspaces

Viele Entwickler fragen sich, ob sie Terragrunt oder Terraform Workspaces verwenden sollen. Hier ist ein Vergleich:

FeatureTerraform WorkspacesTerragrunt
State-Isolation✅ Ja✅ Ja
Code-Duplikation❌ Nein✅ Eliminiert
Backend-KonfigurationManuell✅ Automatisch
Dependency Management❌ Nein✅ Ja
VerzeichnisstrukturFlach✅ Hierarchisch

Empfehlung: Terragrunt ist besser für größere Projekte mit mehreren Umgebungen und komplexen Abhängigkeiten geeignet.

Fazit: Terragrunt als Terraform-Erweiterung

Terragrunt ist eine mächtige Erweiterung für Terraform, die Infrastructure as Code auf ein neues Level hebt. Es löst die häufigsten Probleme, die Entwickler bei größeren Terraform-Projekten haben:

Terragrunt ist kein Ersatz für Terraform, sondern eine Erweiterung, die Terraform-Befehle ausführt und dabei zusätzliche Funktionalitäten bietet. Du schreibst weiterhin Terraform-Code, aber Terragrunt hilft dir dabei, diesen Code besser zu organisieren, zu verwalten und zu skalieren.

Wann sollte man Terragrunt verwenden?

Terragrunt ist besonders nützlich für:

Wann reicht Terraform allein?

Reines Terraform reicht aus für:

Nächste Schritte

Nach diesem Einstieg in Terragrunt kannst du:

  1. Terragrunt in deinen Projekten implementieren: Beginne mit einem kleinen Projekt und erweitere schrittweise
  2. Multi-Environment-Setups erstellen: Richte Dev, Staging und Production-Umgebungen ein
  3. Dependency Management nutzen: Organisiere deine Module mit Abhängigkeiten
  4. Best Practices anwenden: Implementiere DRY-Prinzipien und zentrale Konfigurationen

Weiterführende Ressourcen

Wenn du mehr über Terragrunt erfahren möchtest, empfehle ich dir folgende Ressourcen:

Benötigen Sie professionelle Infrastructure as Code Entwicklung?

Sie möchten Ihre Infrastruktur mit Terraform und Terragrunt verwalten oder benötigen Unterstützung bei der Einrichtung? Wir bieten professionelle Systemadministration und Systemintegration mit modernen IaC-Tools. Von der Planung bis zur Wartung – wir übernehmen die komplette Verantwortung für Ihre IT-Infrastruktur.

Viel Erfolg mit Terragrunt! 🚀

Datenschutzerklärung

1. Datenschutz auf einen Blick

Allgemeine Hinweise

Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können. Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten Datenschutzerklärung.

Datenerfassung auf dieser Website

Wer ist verantwortlich für die Datenerfassung auf dieser Website?

Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen Kontaktdaten können Sie dem Abschnitt „Hinweis zur Verantwortlichen Stelle" in dieser Datenschutzerklärung entnehmen.

Wie erfassen wir Ihre Daten?

Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese mitteilen. Hierbei kann es sich z. B. um Daten handeln, die Sie in ein Kontaktformular eingeben.

Andere Daten werden automatisch oder nach Ihrer Einwilligung beim Besuch der Website durch unsere IT-Systeme erfasst. Das sind vor allem technische Daten (z. B. Internetbrowser, Betriebssystem oder Uhrzeit des Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald Sie diese Website betreten.

Wofür nutzen wir Ihre Daten?

Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu gewährleisten. Andere Daten können zur Analyse Ihres Nutzerverhaltens verwendet werden.

Welche Rechte haben Sie bezüglich Ihrer Daten?

Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein Recht, die Berichtigung oder Löschung dieser Daten zu verlangen. Wenn Sie eine Einwilligung zur Datenverarbeitung erteilt haben, können Sie diese Einwilligung jederzeit für die Zukunft widerrufen. Außerdem haben Sie das Recht, unter bestimmten Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Des Weiteren steht Ihnen ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu.

Hierzu sowie zu weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit an uns wenden.

2. Hosting

Wir hosten die Inhalte unserer Website bei folgendem Anbieter:

Die von uns in Anspruch genommenen Hosting-Leistungen dienen der Zurverfügungstellung der folgenden Leistungen: Infrastruktur- und Plattformdienstleistungen, Rechenkapazität, Speicherplatz und Datenbankdienste, Sicherheitsleistungen sowie technische Wartungsleistungen, die wir zum Zwecke des Betriebs dieser Website einsetzen.

Hierbei verarbeiten wir, bzw. unser Hostinganbieter Bestandsdaten, Kontaktdaten, Inhaltsdaten, Vertragsdaten, Nutzungsdaten, Meta- und Kommunikationsdaten von Kunden, Interessenten und Besuchern dieser Website auf Grundlage unserer berechtigten Interessen an einer effizienten und sicheren Zurverfügungstellung dieser Website gem. Art. 6 Abs. 1 lit. f DSGVO i.V.m. Art. 28 DSGVO.

3. Allgemeine Hinweise und Pflichtinformationen

Datenschutz

Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend den gesetzlichen Datenschutzbestimmungen sowie dieser Datenschutzerklärung.

Wenn Sie diese Website benutzen, werden verschiedene personenbezogene Daten erhoben. Personenbezogene Daten sind Daten, mit denen Sie persönlich identifiziert werden können. Die vorliegende Datenschutzerklärung erläutert, welche Daten wir erheben und wofür wir sie nutzen. Sie erläutert auch, wie und zu welchem Zweck das geschieht.

Wir weisen darauf hin, dass die Datenübertragung im Internet (z. B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.

Hinweis zur verantwortlichen Stelle

Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:

Van de Everest UG (haftungsbeschränkt)
Frankenstraße 152
90461 Nürnberg
Deutschland

Vertreten durch: Kai Pazdzewicz

Telefon: +49 (0) 911 14895050
E-Mail: info@pazdzewicz.de

Registergericht: Nürnberg
Registernummer: HRB 43972

Umsatzsteuer-ID: DE340033340

Verantwortliche Stelle ist die natürliche oder juristische Person, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten (z. B. Namen, E-Mail-Adressen o. Ä.) entscheidet.

Speicherdauer

Soweit innerhalb dieser Datenschutzerklärung keine speziellere Speicherdauer genannt wurde, verbleiben Ihre personenbezogenen Daten bei uns, bis der Zweck für die Datenverarbeitung entfällt. Wenn Sie ein berechtigtes Löschersuchen geltend machen oder eine Einwilligung zur Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, sofern wir keine anderen rechtlich zulässigen Gründe für die Speicherung Ihrer personenbezogenen Daten haben (z. B. steuer- oder handelsrechtliche Aufbewahrungsfristen); im letztgenannten Fall erfolgt die Löschung nach Fortfall dieser Gründe.

Allgemeine Hinweise zu den Rechtsgrundlagen der Datenverarbeitung auf dieser Website

Sofern Sie in die Datenverarbeitung eingewilligt haben, verarbeiten wir Ihre personenbezogenen Daten auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO bzw. Art. 9 Abs. 2 lit. a DSGVO, sofern besondere Datenkategorien nach Art. 9 Abs. 1 DSGVO verarbeitet werden. Im Falle einer ausdrücklichen Einwilligung in die Übertragung personenbezogener Daten in Drittstaaten erfolgt die Datenverarbeitung außerdem auf Grundlage von Art. 49 Abs. 1 lit. a DSGVO.

Sofern Sie in die Speicherung von Cookies oder in den Zugriff auf Informationen in Ihr Endgerät (z. B. via Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung zusätzlich auf Grundlage von § 25 Abs. 1 TTDSG. Die Einwilligung ist jederzeit widerrufbar. Sind Ihre Daten zur Vertragserfüllung oder zur Durchführung vorvertraglicher Maßnahmen erforderlich, verarbeiten wir Ihre Daten auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO.

Des Weiteren verarbeiten wir Ihre Daten, sofern diese zur Erfüllung einer rechtlichen Verpflichtung erforderlich sind auf Grundlage von Art. 6 Abs. 1 lit. c DSGVO. Die Datenverarbeitung kann ferner auf Grundlage unseres berechtigten Interesses nach Art. 6 Abs. 1 lit. f DSGVO erfolgen. Über die jeweils im Einzelfall einschlägigen Rechtsgrundlagen wird in den folgenden Absätzen dieser Datenschutzerklärung informiert.

Hinweis zur Datenweitergabe in die USA und sonstige Drittstaaten

Wir verwenden unter anderem Tools von Unternehmen mit Sitz in den USA oder sonstigen datenschutzrechtlich nicht sicheren Drittstaaten. Wenn diese Tools aktiv sind, können Ihre personenbezogenen Daten in diese Drittstaaten übertragen und dort verarbeitet werden. Wir weisen darauf hin, dass in diesen Ländern kein mit der EU vergleichbares Datenschutzniveau garantiert werden kann. Beispielsweise sind US-Unternehmen dazu verpflichtet, personenbezogene Daten an Sicherheitsbehörden herauszugeben, ohne dass Sie als Betroffener hiergegen gerichtlich vorgehen könnten. Es kann daher nicht ausgeschlossen werden, dass US-Behrden (z. B. Geheimdienste) Ihre auf US-Servern befindlichen Daten zu Überwachungszwecken verarbeiten, auswerten und dauerhaft speichern. Wir haben auf diese Verarbeitungstätigkeiten keinen Einfluss.

Widerruf Ihrer Einwilligung zur Datenverarbeitung

Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich. Sie können eine bereits erteilte Einwilligung jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt vom Widerruf unberührt.

Widerspruchsrecht gegen die Datenerfassung in besonderen Fällen sowie gegen Direktwerbung (Art. 21 DSGVO)

WERDEN DIE DATENVERARBEITUNG AUF GRUNDLAGE VON ART. 6 ABS. 1 LIT. E ODER F DSGVO ERFOLGT, HABEN SIE JEDERZEIT DAS RECHT, AUS GRÜNDEN, DIE SICH AUS IHRER BESONDEREN SITUATION ERGEBEN, GEGEN DIE VERARBEITUNG IHRER PERSONENBEZOGENEN DATEN WIDERSPRUCH EINZULEGEN; DIES GILT AUCH FÜR EIN AUF DIESE BESTIMMUNGEN GESTÜTZTES PROFILING. DIE JEWEILIGE RECHTSGRUNDLAGE, AUF DENEN EINE VERARBEITUNG BERUHT, ENTNEHMEN SIE DIESER DATENSCHUTZERKLÄRUNG. WENN SIE WIDERSPRUCH EINLEGEN, WERDEN WIR IHRE BETROFFENEN PERSONENBEZOGENEN DATEN NICHT MEHR VERARBEITEN, ES SEI DENN, WIR KÖNNEN ZWINGENDE SCHUTZWÜRDIGE GRÜNDE FÜR DIE VERARBEITUNG NACHWEISEN, DIE IHRE INTERESSEN, RECHTE UND FREIHEITEN ÜBERWIEGEN ODER DIE VERARBEITUNG DIENT DER GELTENDMACHUNG, AUSÜBUNG ODER VERTEIDIGUNG VON RECHTSANSPRÜCHEN (WIDERSPRUCH NACH ART. 21 ABS. 1 DSGVO).

WERDEN IHRE PERSONENBEZOGENEN DATEN VERARBEITET, UM DIREKTWERBUNG ZU BETREIBEN, SO HABEN SIE DAS RECHT, JEDERZEIT WIDERSPRUCH GEGEN DIE VERARBEITUNG SIE BETREFFENDER PERSONENBEZOGENER DATEN ZUM ZWECKE DERARTIGER WERBUNG EINZULEGEN; DIES GILT AUCH FÜR DAS PROFILING, SOWEIT ES MIT SOLCHER DIREKTWERBUNG IN VERBINDUNG STEHT. WENN SIE WIDERSPRECHEN, WERDEN IHRE PERSONENBEZOGENEN DATEN ANSCHLIESSEND NICHT MEHR ZUM ZWECKE DER DIREKTWERBUNG VERWENDET (WIDERSPRUCH NACH ART. 21 ABS. 2 DSGVO).

Beschwerderecht bei der zuständigen Aufsichtsbehörde

Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein Beschwerderecht bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht besteht unbeschadet anderweitiger verwaltungsrechtlicher oder gerichtlicher Rechtsbehelfe.

Recht auf Datenübertragbarkeit

Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung oder in Erfüllung eines Vertrags automatisiert verarbeiten, an sich oder an einen Dritten in einem gängigen, maschinenlesbaren Format aushändigen zu lassen. Sofern Sie die direkte Übertragung der Daten an einen anderen Verantwortlichen verlangen, erfolgt dies nur, soweit es technisch machbar ist.

SSL- bzw. TLS-Verschlüsselung

Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der Übertragung vertraulicher Inhalte, wie zum Beispiel Bestellungen oder Anfragen, die Sie an uns als Seitenbetreiber senden, eine SSL- bzw. TLS-Verschlüsselung. Eine verschlüsselte Verbindung erkennen Sie daran, dass die Adresszeile des Browsers von „http://" auf „https://" wechselt und an dem Schloss-Symbol in Ihrer Browserzeile.

Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die Daten, die Sie an uns übermitteln, nicht von Dritten mitgelesen werden.

Auskunft, Löschung und Berichtigung

Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit das Recht auf unentgeltliche Auskunft über Ihre gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger und den Zweck der Datenverarbeitung und ggf. ein Recht auf Berichtigung oder Löschung dieser Daten. Hierzu sowie zu weiteren Fragen zum Thema personenbezogene Daten können Sie sich jederzeit an uns wenden.

Recht auf Einschränkung der Verarbeitung

Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Hierzu können Sie sich jederzeit an uns wenden. Das Recht auf Einschränkung der Verarbeitung besteht in folgenden Fällen:

  • Wenn Sie die Richtigkeit Ihrer bei uns gespeicherten personenbezogenen Daten bestreiten, benötigen wir in der Regel Zeit, um dies zu überprüfen. Für die Dauer der Prüfung haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.
  • Wenn die Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig geschah/geschieht, können Sie statt der Löschung die Einschränkung der Datenverarbeitung verlangen.
  • Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie jedoch zur Ausübung, Verteidigung oder Geltendmachung von Rechtsansprüchen benötigen, haben Sie das Recht, statt der Löschung die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.
  • Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben, muss eine Abwägung zwischen Ihren und unseren Interessen vorgenommen werden. Solange noch nicht feststeht, wessen Interessen überwiegen, haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.

Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten eingeschränkt haben, dürfen diese Daten – von ihrer Speicherung abgesehen – nur mit Ihrer Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen natürlichen oder juristischen Person oder aus Gründen eines wichtigen öffentlichen Interesses der Europäischen Union oder eines Mitgliedstaats verarbeitet werden.

4. Datenerfassung auf dieser Website

Server-Log-Dateien

Der Provider der Seiten erhebt und speichert automatisch Informationen in so genannten Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:

  • Browsertyp und Browserversion
  • verwendetes Betriebssystem
  • Referrer URL
  • Hostname des zugreifenden Rechners
  • Uhrzeit der Serveranfrage
  • IP-Adresse

Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Die Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der Websitebetreiber hat ein berechtigtes Interesse an der technisch fehlerfreien Darstellung und der Optimierung seiner Website – hierzu müssen die Server-Log-Files erfasst werden.

Kontaktformular

Wenn Sie uns per Kontaktformular Anfragen zukommen lassen, werden Ihre Angaben aus dem Anfrageformular inklusive der von Ihnen dort angegebenen Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall von Anschlussfragen bei uns gespeichert. Diese Daten geben wir nicht ohne Ihre Einwilligung weiter.

Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht die Verarbeitung auf unserem berechtigten Interesse an der effektiven Bearbeitung der an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO) oder auf Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO), sofern diese abgefragt wurde.

Die von Ihnen im Kontaktformular eingegebenen Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Ihrer Anfrage). Zwingende gesetzliche Bestimmungen – insbesondere Aufbewahrungsfristen – bleiben unberührt.

Anfrage per E-Mail, Telefon oder Telefax

Wenn Sie uns per E-Mail, Telefon oder Telefax kontaktieren, wird Ihre Anfrage inklusive aller daraus hervorgehenden personenbezogenen Daten (Name, Anfrage) zum Zwecke der Bearbeitung Ihres Anliegens bei uns gespeichert und verarbeitet. Diese Daten geben wir nicht ohne Ihre Einwilligung weiter.

Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht die Verarbeitung auf unserem berechtigten Interesse an der effektiven Bearbeitung der an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO) oder auf Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO), sofern diese abgefragt wurde.

Die von Ihnen an uns per Kontaktanfragen übersandten Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere gesetzliche Aufbewahrungsfristen – bleiben unberührt.

5. Plugins und Tools

Google Fonts (lokales Hosting)

Diese Seite nutzt zur einheitlichen Darstellung von Schriftarten so genannte Google Fonts, die von Google bereitgestellt werden. Die Google Fonts sind lokal auf diesem Server installiert. Eine Verbindung zu Servern von Google findet dabei nicht statt.

Weitere Informationen zu Google Fonts finden Sie unter https://developers.google.com/fonts/faq und in der Datenschutzerklärung von Google: https://policies.google.com/privacy?hl=de.

Google Maps

Diese Seite nutzt über eine API den Kartendienst Google Maps. Anbieter ist die Google Ireland Limited ("Google"), Gordon House, Barrow Street, Dublin 4, Irland.

Zur Nutzung der Funktionen von Google Maps ist es notwendig, Ihre IP-Adresse zu speichern. Diese Informationen werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Der Anbieter dieser Seite hat keinen Einfluss auf diese Datenübertragung.

Die Nutzung von Google Maps erfolgt im Interesse einer ansprechenden Darstellung unserer Online-Angebote und an einer leichten Auffindbarkeit der von uns auf der Website angegebenen Orte. Dies stellt ein berechtigtes Interesse im Sinne von Art. 6 Abs. 1 lit. f DSGVO dar. Sofern eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG, soweit die Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des TTDSG umfasst. Die Einwilligung ist jederzeit widerrufbar.

Mehr Informationen zum Umgang mit Nutzerdaten finden Sie in der Datenschutzerklärung von Google: https://policies.google.com/privacy?hl=de.

6. Eigene Dienste

Google Analytics

Diese Website nutzt Funktionen des Webanalysedienstes Google Analytics. Anbieter ist die Google Ireland Limited ("Google"), Gordon House, Barrow Street, Dublin 4, Irland.

Google Analytics ermöglicht es dem Websitebetreiber, das Verhalten der Websitebesucher zu analysieren. Hierbei erhält der Websitebetreiber verschiedene Nutzungsdaten, wie z. B. Seitenaufrufe, Verweildauer, verwendete Betriebssysteme und Herkunft des Nutzers. Diese Daten werden in einer User-ID zusammengefasst und dem jeweiligen Endgerät des Websitebesuchers zugeordnet.

Google Analytics verwendet Technologien, die die Wiedererkennung des Nutzers zum Zwecke der Analyse des Nutzerverhaltens ermöglichen (z. B. Cookies oder Device-Fingerprinting). Die von Google erfassten Informationen über die Nutzung dieser Website werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert.

Die Nutzung dieses Dienstes erfolgt auf Grundlage Ihrer Einwilligung nach Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG. Die Einwilligung ist jederzeit widerrufbar.

Die Datenübertragung in die USA wird auf die Standardvertragsklauseln der EU-Kommission gestützt. Details finden Sie hier: https://privacy.google.com/businesses/controllerterms/mccs/.

Mehr Informationen zum Umgang mit Nutzerdaten bei Google Analytics finden Sie in der Datenschutzerklärung von Google: https://support.google.com/analytics/answer/6004245?hl=de.

Google reCAPTCHA

Wir nutzen "Google reCAPTCHA" (im Folgenden "reCAPTCHA") auf dieser Website. Anbieter ist die Google Ireland Limited ("Google"), Gordon House, Barrow Street, Dublin 4, Irland.

Mit reCAPTCHA soll überprüft werden, ob die Dateneingabe auf dieser Website (z. B. in einem Kontaktformular) durch einen Menschen oder durch ein automatisiertes Programm erfolgt. Hierzu analysiert reCAPTCHA das Verhalten des Websitebesuchers anhand verschiedener Merkmale. Diese Analyse beginnt automatisch, sobald der Websitebesucher die Website betritt. Zur Analyse wertet reCAPTCHA verschiedene Informationen aus (z. B. IP-Adresse, Verweildauer des Websitebesuchers auf der Website oder vom Nutzer getätigte Mausbewegungen). Die bei der Analyse erfassten Daten werden an Google weitergeleitet.

Die reCAPTCHA-Analysen laufen vollständig im Hintergrund. Websitebesucher werden nicht darauf hingewiesen, dass eine Analyse stattfindet.

Die Speicherung und Analyse der Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der Websitebetreiber hat ein berechtigtes Interesse daran, seine Website vor missbräuchlicher automatisierter Ausspähung und vor SPAM zu schützen. Sofern eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG, soweit die Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im Endgerät des Nutzers (z. B. Device-Fingerprinting) im Sinne des TTDSG umfasst. Die Einwilligung ist jederzeit widerrufbar.

Weitere Informationen zu Google reCAPTCHA finden Sie in den Google-Datenschutzbestimmungen und den Google Nutzungsbedingungen unter folgenden Links: https://policies.google.com/privacy?hl=de und https://policies.google.com/terms?hl=de.

7. Änderungen dieser Datenschutzerklärung

Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie stets den aktuellen rechtlichen Anforderungen entspricht oder um Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, z. B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt dann die neue Datenschutzerklärung.

8. Fragen zum Datenschutz

Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine E-Mail oder wenden Sie sich direkt an die für den Datenschutz verantwortliche Person in unserem Unternehmen:

info@pazdzewicz.de