Suche

über alle News und Events

 

Alle News

 

Tickets jetzt erhältlich für die führende...

Weiterlesen

In dieser Folge wenden wir uns jetzt speziell an...

Weiterlesen

Stellenanzeige: Wir suchen dringend an unserem...

Weiterlesen

How To: Use Key-Vault secrets in Azure Functions without the SDK for Key-Vault

Da man wissen muss, wie man in Azure mit sensiblen Daten umgehen sollte, ist es ganz gut, den ein oder anderen Trick zu kennen, um sich das Leben in der Cloud-Welt vieeeel leichter zu gestalten bspw. beim Zugriff von Secrets im Key-Vault per Azure Functions.

Neben der Möglichkeit die SDK (Software-Development-Kit) zu nutzen, um sich den Zugriff auf Key-Vault zu ermöglichen, hat sich Microsoft eine weitere sehr einfache Möglichkeit einfallen lassen. Und so geht’s:

Nachdem anlegen der jeweiligen Resources (Key-Vault, Function App) ist es notwendig, dass wir in der Function App bevor wir auf die Secrets zugreifen können, die system-assigned Managed Identities aktivieren.

Mithilfe von Managed Identities ist es nämlich möglich, sich ganz einfach mit jeder Azure Resource zu authentifizieren. Hier könnt Ihr mehr über Managed Identities erfahren.

Nachdem wir die system-assigned Managed Identity aktiviert haben, wird automatisch ein Application Object für diese Function App angelegt. Diese müssen wir in unserem Key-Vault unter Access Policies mit den notwendigen Rechten anlegen, damit unsere Function die Zugriffsrechte besitzt auf die Secrets im Key-Vault zugreifen zu dürfen. Dabei ist es wichtig unter Select principal unser Application Object der Function App auszuwählen. Dies könnt Ihr machen, indem ihr den Namen der Function in der Suchleiste eingibt oder die Object ID eingibt die in der Function App unter Identity zu finden ist.

Dabei reicht es vollkommen aus, die Secret permissions: Get und List zu vergeben.
Nachdem Anlegen das Speichern nicht vergessen!

Als nächstes legen wir unsere secret variable an. Nachdem ihr diese angelegt habt, wäre es praktisch den Link bei Secret Identifier zwischenzuspeichern, da wir diesen gleich benötigen werden.

Jetzt können wir in unserer Function App unter Configuration eine Application Setting hinzufügen. Mithilfe der Application Settings kann man während der Laufzeit auf diese Environment Variables, die hier konfiguriert, sind zugreifen. Wir erstellen ein neues Application Setting, das auf unsere Key-Vault variable zeigt und als Referenz dient.

Den Namen könnt ihr anlegen, wie Ihr möchtet, diesen brauchen wir aber später wieder in unserem Code in der Function. Nur ist es dabei wichtig, dass die Value wie unten beschrieben angelegt wird, da diese als Referenz zu Key-Vault dient.
@Microsoft.KeyVault(SecretUri={Secret Identifier})

Nachdem speichern wird die Application Setting (Environment variable) gesetzt und beim Refresh der Seite müsste jetzt unter Source, wenn alles richtig konfiguriert worden ist die Key vault Reference hinterlegt sein und ein grünes Häkchen aufzeigen.

Nun zeig ich euch in einem ganz einfachem Code Beispiel, wie wir auf diese Variable zugreifen können.

var password = Environment.GetEnvironmentVariable("password", EnvironmentVariableTarget.Process);

Diese Zeile ermöglicht es euch ganz einfach während der Laufzeit über eure Environment Variable auf die secret zugreifen zu können ohne die SDK zu verwenden. Dabei müsste ihr nur darauf achten, den richtigen Namen anzugeben, den ihr in der Application Setting angelegt habt (--> „password“).

Der schnellste Weg um herauszufinden, ob das alles jetzt auch funktioniert ist den Logger zu verwenden und das Passwort dort zu zeigen.
Hier der screenshot, dass es auch funktioniert:

Hoffe ich konnte euch mit diesem kleinen Tipp weiterhelfen.
Grüße aus Stuttgart, Armin

https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references

 

Ihre Kontaktmöglichkeiten

Sie haben eine konkrete Frage an uns


 

Bleiben Sie immer auf dem Laufenden


 

Mit meinem "Ja" erkläre ich mich mit der Verarbeitung meiner Daten zur Zusendung von Informationen einverstanden. Ich weiß, dass ich diese Erklärung jederzeit durch einfache Mitteilung widerrufen kann. Bei einem Nein an dieser Stelle erhalte ich zukünftig keine Informationen mehr.

© QUIBIQ GmbH · Impressum · Datenschutz