Zum Inhalt

Authentifizierung in Terraform

Je nach geplanter Nutzung gibt es verschiedene Möglichkeiten, sich im Rahmen von Terraform an der NETWAYS Cloud zu authentifizieren. Die gängigsten Methoden sind der OpenStack-Projektnutzer, Application Credentials oder ein Token, mit verschiedenen Vor- und Nachteilen.

Methode Lebensdauer Nutzungszweck
Projektnutzer Unbeschränkt Projektweiter Zugriff; Kann rotiert werden.
Application Credentials abhängig vom ausstellenden Nutzer An Session des ausstellenden Nutzers geknüpft; Berechtigungen können separat festgelegt werden; Kann rotiert und widerrufen werden.
Token abhängig vom ausstellenden Nutzer An Session und Berechtigungen des ausstellenden Nutzers geknüpft.

Die empfohlene Authentifizierungsmethode ist die Nutzung von Application Credentials im Kontext des Projektnutzers, da sich für diese eine fest definierte Lebensdauer und Berechtigungen einstellen lassen.

Konfiguration von Terraform

Geteilte Konfiguration

Folgende Einstellungen sind für jede Authentifizierungsmethode vorzunehmen:

terraform {
    required_providers {
        openstack = {
            source  = "terraform-provider-openstack/openstack"
            version = "~> 3.0"
        }
    }
}

provider "openstack" {
    auth_url = "https://cloud.netways.de:5000/v3"
    region   = "HetznerNBG4"
}

Die weitere Konfiguration unterscheidet sich je nach verwendeter Authentifizierungsmethode.

Application Credentials

Möchte man die Authentifizierung in Terraform mit eingeschränkten Berechtigungen vornehmen, eignen sich Application Credentials.

Lebensdauer von Application Credentials in der NETWAYS Cloud

Aufgrund der IAM-Konfiguration in der NETWAYS Cloud sind Application Credentials an die Lebensdauer der Session des ausstellenden Nutzers gebunden.

Nutzt man für die Erstellung von Application Credentials eine NWS-ID, sind diese maximal 8 Stunden gültig. Deswegen sollte für die Erstellung von Application Credentials der OpenStack Projektnutzer genutzt werden.

Application Credentials können in der Cloudkonsole erstellt werden:

  1. Login with the OpenStack project user unter console.nws.netways.de.
  2. Auswahl des gewünschten OpenStack-Projekts.
  3. Navigation ins User Center durch Klick auf den Avatar (oben rechts) und Auswahl von User Center.
  4. Erstellung eines neuen Application Credentials unter Angabe eines Namens und optional Ablaufzeitpunkt und Berechtigungen des Application Credentials.

Nach der Erstellung des Application Credentials startet automatisch der Download einer Datei <appcred-name>.json mit den Informationen des Application Credentials.

Mit diesen Informationen kann die Providerkonfiguration für Terraform ergänzt werden:

provider "openstack" {
    auth_url                      = "https://cloud.netways.de:5000/v3"
    region                        = "HetznerNBG4"
    application_credential_id     = "<application_credential_id>"
    application_credential_secret = "<application_credential_secret>"
}

OpenStack-Projektnutzer

Hat man den OpenStack-Projektnutzer aktiviert, kann dieser für eine Authentifizierung in Terraform genutzt werden.

Hierzu werden folgende zusätzliche Einträge in der Providerkonfiguration benötigt:

provider "openstack" {
    auth_url    = "https://cloud.netways.de:5000/v3"
    region      = "HetznerNBG4"
    user_name   = "<project_user>"                  # the project_user username
    password    = "<password>"                      # the project_user password
    tenant_name = "<project_id>"                    # project id, normally same as project_user username
}

Die Zugangsdaten des OpenStack-Projektnutzers können in MyNWS eingesehen und rotiert werden.

Token

Alternativ kann die Authentifizierung in Terraform auch mit einem Token im Kontext des ausstellenden Nutzers geschehen.

Lebensdauer von Tokens in der NETWAYS Cloud

Aufgrund der IAM-Konfiguration in der NETWAYS Cloud sind Tokens an die Lebensdauer der Session des ausstellenden Nutzers gebunden und somit maximal 8 Stunden gültig, es sei denn, die Session des ausstellenden Nutzers wird aufrecht erhalten.

Tokens können in der Cloudkonsole erstellt werden:

  1. Login mit NWS-ID unter console.nws.netways.de.
  2. Klick auf den Avatar (oben rechts) und Auswahl des Eintrags Get Token.
  3. Kopieren des generierten Tokens

Der Token kann in der Providerkonfiguration für Terraform ergänzt werden:

provider "openstack" {
    auth_url    = "https://cloud.netways.de:5000/v3"
    region      = "HetznerNBG4"
    token       = "<token>"
    tenant_name = "<project id>"                    # ID of the OpenStack project you want to work in
}

Tokenerstellung mit der OpenStack CLI

Alternativ können Token auch über die OpenStack-CLI bezogen werden

openstack token issue -f value -c id