Heute erfahren Sie, wie Sie ein – wie Microsoft es nennt – verwaltetes Speicherkonto erstellen. Wie Sie wahrscheinlich wissen, verfügt jedes Speicherkonto über zwei austauschbare private Schlüssel, mit denen Sie sich bei den vier Diensten des universellen Speicherkontos programmatisch authentifizieren können:
Betrachten Sie mein universelles v2-Speicherkonto Ipstorage704, das in Abbildung 1 dargestellt ist. Es handelt sich um ein nicht verwaltetes Speicherkonto. Dies bedeutet, dass wir – und nicht Azure – die beiden privaten Schlüssel verwalten.
Abbildung 1. Ein nicht verwaltetes Azure-Speicherkonto.
Falls Sie vergessen, die Schlüssel neu zu generieren und eine Schlüsselrotation durchzuführen, oder noch schlimmer, falls Sie Klartextschlüssel im Quelltext stehen lassen, nehmen Sie eine Gefährdung der Azure-Datensicherheit geradezu in Kauf.
Was also ist ein verwaltetes Speicherkonto?
Ein verwaltetes Speicherkonto ist ein universelles Speicherkonto, dessen Sicherheit von Azure verwaltet wird. Dies bedeutet, dass dadurch die folgenden Ziele erreicht werden:
Um Ihre Azure-Umgebung für diese Übung einzurichten, müssen Sie die folgenden drei Aufgaben ausführen:
Ja, wir müssen ein verwaltetes Speicherkonto mit Azure PowerShell oder mit Azure CLI (Command-Line Interface, Befehlszeilenschnittstelle) programmatisch definieren, weil diese Funktion im Azure-Portal derzeit nicht verfügbar ist. Ich habe den Code aus dem Microsoft Docs-Artikel zu Azure mit dem Titel „Manage storage account keys with Key Vault and Azure PowerShell (Verwalten von Speicherkontoschlüsseln mit Azure Key Vault und Azure PowerShell)“ übernommen. Machen wir uns an die Arbeit!
Als Erstes fahren Sie eine erhöhte PowerShell-Konsole oder eine Visual Studio Code-Instanz hoch und authentifizieren sich für Ihr Azure-Abonnement:
Connect-AzAccount
Wenn Sie mehr als ein Azure-Abonnement besitzen, müssen Sie Ihren Standardkontext angeben:
Set-AzContext -SubscriptionName 'MySub'
Als Nächstes definieren wir Variablen, um Speicherkonto- und Key-Vault-Verweise zu vereinfachen. Bitte beachten Sie, dass Sie meine Werte durch eigene Werte ersetzen müssen:
$resourceGroupName = "ipswitch"
$storageAccountName = "ipstorage704"
$storageAccountKey = "aUQBMQFMnnk2fBNsv2K49mqW31Vc0nHjMDGJm4HAZId+5PgBYfKbrZMippBaTGjlGOsg+EovpVYKwhBCIT0eSA=="
$keyVaultName = "ipswitch-keyvault"
$keyVaultSpAppId = "cfa8b339-82a2-471a-a3c9-0fc0be7a4093"
Hier einige Hinweise zum vorhergehenden Code:
Wir müssen außerdem unsere Benutzer-ID abrufen und auf das Zielspeicherkonto verweisen:
$userId = (Get-AzContext).Account.Id
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName
Für den Zugriff mit den geringsten Rechten weisen wir unserem Key Vault die rollenbasierte Zugriffssteuerungsrolle (Role Based Access Control-, RBAC-Rolle) „Dienstrolle Speicherkonto-Schlüsseloperator" zu. Dadurch wird sichergestellt, dass Key Vault nur Speicherkontoschlüssel und kein weiteres Key Vault-Geheimnis bzw. keine weitere Key Vault-Ressource verwalten kann:
New-AzRoleAssignment -ApplicationId $keyVaultSpAppId -RoleDefinitionName 'Storage Account Key Operator Service Role' -Scope $storageAccount.Id
Anhand von Abbildung 2 sehen Sie, dass mein Key Vault über die entsprechende RBAC-Rollenzuweisung für mein Speicherkonto verfügt.
Abbildung 2. Mein Key Vault kann auf mein Speicherkonto zugreifen.
Wahrscheinlich wissen Sie bereits, dass Azure Key Vault Zugriffsrichtlinien verwendet, um Benutzern oder Dienstprinzipalen spezifische Berechtigungen für Azure Key Vault-Geheimnisse zu gewähren. Wir müssen unserer Benutzer-ID folgende Berechtigungen gewähren:
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -UserPrincipalName $userId -PermissionsToStorage get, list, delete, set, update, regeneratekey, getsas, listsas, deletesas, setsas, recover, backup, restore, purge
Die Azure-Portalansicht meiner Key Vault-Zugriffsberechtigungen sehen Sie in Abbildung 3.
Abbildung 3. Mein Benutzerkonto hat volle Kontrolle über Key Vault-Geheimnisse.
Als letzten Schritt fügen wir das Zielspeicherkonto zur Key Vault-Liste verwalteter Speicherkonten hinzu:
Add-AzKeyVaultManagedStorageAccount -VaultName $keyVaultName -AccountName $storageAccountName -AccountResourceId $storageAccount.Id -ActiveKeyName 'key1' -DisableAutoRegenerateKey
Hier einige Hinweise zum vorhergehenden Code:
Wenn Sie Key Vault für die Verwendung eines, sagen wir, 90-Tage-Zeitraums für die erneute Regenerierung konfigurieren möchten, könnten Sie zunächst eine Variable festlegen:
$regenerationPeriod = [System.Timespan]::FromDays(90)
Und ersetzen Sie dann das folgende Parameter/Wert-Paar anstelle des Switch-Parameters -DisableAutoRegenerateKey:
-RegenerationPeriod $regenerationPeriod
Sie können bei der Ausführung von Add-AzKeyVaultManagedStorageAccount die Fehlermeldung „Ungültige Anforderung“ erhalten. Dies ist ein bekanntes Problem, für das mindestens ein GitHub-Fehlerbericht vorhanden ist.
Wenn Sie diese Fehlermeldung erhalten, ist noch nicht alles verloren. Öffnen Sie einfach Azure Cloud Shell, authentifizieren Sie sich für Ihr Abonnement, und führen Sie den folgenden Azure CLI-Befehl aus, der Ihre Ressourcennamen und ID ersetzt:
az keyvault storage add --vault-name ipswitch-keyvault -n ipstorage704 --active-key-name key1 --auto-regenerate-key --regeneration-period P90D --resource-id "/subscriptions/2fbf906e-1101-4bc0-b64f-adc44e462fff/resourceGroups/ipswitch/providers/Microsoft.Storage/storageAccounts/ipstorage704"
Der vorhergehende Code wurde auf meinem System erfolgreich ausgeführt. Beachten Sie, dass wir hier einen 90-Tage-Zeitraum für die erneute Generierung angeben.
Leider zeigt das Azure-Portal absolut keinerlei Informationen zu unserem verwalteten Speicherkonto an, weder im Key Vault noch im Speicherkonto. Wir können für die Überprüfung aber Get-AzKeyVaultManagedStorageAccount ausführen:
Get-AzKeyVaultManagedStorageAccount -VaultName 'ipswitch-keyvault' -Name 'ipstorage704'
Id : https://ipswitch-keyvault.vault.azure.net:443/storage/ipstorage704
Vault Name : ipswitch-keyvault
AccountName : ipstorage704
Account Resource Id : /subscriptions/2fbf906e-1101-4bc0-b64f-adc44e462fff/resourceGroups/ipswitch/providers/Microsoft.Storage/
storageAccounts/ipstorage704
Active Key Name : key1
Auto Regenerate Key : True
Regeneration Period : 90.00:00:00
Enabled : True
Created : 9/30/19 8:25:18 PM
Updated : 9/30/19 8:25:18 PM
Tags :
Da haben wir es! Die Vorgehensweise zum Erstellen eines verwalteten Speicherkontos ist ziemlich umständlich. Aber durch den Vorteil, dass Speicherkontoschlüssel nicht manuell verwaltet werden müssen, ist diese Konfiguration trotz des ganzen Aufwands sehr interessant.
Tipp: Mit WhatsUp Gold können Sie Status und Leistung jeder Kennzahl überwachen, die über die AWS- und Azure-APIs verfügbar ist. Sie können dazu Warnmeldungen sowie Berichte ausgeben und diese Daten in Ihre Infrastrukturabbildung, Ihr AlertCenter und in Dashboards integrieren. Cloud-Monitoring ist in den WhatsUp Gold-Editionen Premium und Total Plus verfügbar. 14 Tage kostenfrei Testen
Tim Warner is a Microsoft MVP, Microsoft Press/Wiley author, and Azure solution architect based in Nashville, TN. Contact Tim at Twitter (@TechTrainerTim) or his website, techtrainertim.com.
Lassen Sie sich von unseren Experten beibringen, wie Sie die erstklassigen Funktionen von Sitefinity nutzen können, um überzeugende digitale Erlebnisse zu bieten.
Weitere InformationenAbonnieren Sie, um alle Neuigkeiten, Informationen und Tutorials zu erhalten, die Sie benötigen, um bessere Business-Apps und -Websites zu erstellen