Gewähren des Zugriffs für eine Service Fabric-Anwendung auf Azure-Ressourcen in einem Service Fabric-Cluster
Damit eine Anwendung ihre verwaltete Identität für den Zugriff auf andere Ressourcen nutzen kann, gewähren Sie dieser Identität Berechtigungen für die geschützte Azure-Ressource, auf die zugegriffen werden soll. Berechtigungen werden in der Regel im Rahmen einer Verwaltungsaktion auf der Steuerungsebene des Azure-Diensts gewährt, zu dem die geschützte, durch Azure Resource Manager weitergeleitete Ressource gehört. Dieser Dienst erzwingt alle anwendbaren rollenbasierten Zugriffsüberprüfungen.
Die genaue Abfolge der Schritte richtet sich nach dem Azure-Ressourcentyp, auf den zugegriffen wird, sowie danach, mit welcher Sprache und welchem Client Berechtigungen gewährt werden. In diesem Artikel wird davon ausgegangen, dass der Anwendung eine benutzerseitig zugewiesene Identität zugewiesen ist. Er enthält außerdem mehrere Beispiele. Lesen Sie die Dokumentation der jeweiligen Azure-Dienste, um aktuelle Anweisungen zum Erteilen von Berechtigungen zu erhalten.
Gewähren des Zugriffs auf Azure Storage
Sie können die verwaltete Identität einer Service Fabric-Anwendung (in diesem Fall benutzerseitig zugewiesen) verwenden, um die Daten aus einem Azure Storage-Blob abzurufen. Gehen Sie folgendermaßen vor, um der Identität im Azure-Portal die erforderlichen Berechtigungen zu gewähren:
- Navigieren Sie zum Speicherkonto.
- Wählen Sie im linken Bereich den Link „Zugriffssteuerung (IAM)“ aus.
- (Optional) Überprüfen Sie den vorhandenen Zugriff: Wählen Sie im Steuerelement Suchen die Option für eine systemseitig oder eine benutzerseitig zugewiesene verwaltete Identität aus. Wählen Sie die entsprechende Identität aus der Ergebnisliste aus.
- Wählen Sie oben auf der Seite Hinzufügen>Rollenzuweisung hinzufügen aus, um der Identität der Anwendung eine neue Rollenzuweisung hinzuzufügen.
- Wählen Sie unter Rolle in der Dropdownliste die Option Storage-Blobdatenleser aus.
- Wählen Sie in der nächsten Dropdownliste unter Zugriff zuweisen zu die Option Benutzerseitig zugewiesene verwaltete Identität aus.
- Stellen Sie im nächsten Schritt sicher, dass in der Dropdownliste Abonnement das richtige Abonnement aufgeführt ist, und legen Sie dann für Ressourcengruppe die Option Alle Ressourcengruppen fest.
- Wählen Sie unter Auswählen die benutzerseitig zugewiesene Identität aus, die der Service Fabric-Anwendung entspricht, und klicken Sie auf Speichern.
Unterstützung für systemseitig zugewiesene verwaltete Service Fabric-Identitäten beinhaltet nicht die Integration ins Azure-Portal. Wenn Ihre Anwendung eine vom System zugewiesene Identität verwendet, suchen Sie die Client-ID der Identität der Anwendung, und wiederholen Sie dann die vorstehenden Schritte, wählen Sie jedoch die Option Microsoft Entra-Benutzer, -Gruppen oder -Dienstprinzipal im Such -Steuerelement aus.
Gewähren des Zugriffs auf Azure Key Vault
Ähnlich wie beim Zugriff auf Storage können Sie die verwaltete Identität einer Service Fabric-Anwendung für den Zugriff auf eine Azure Key Vault-Instanz nutzen. Die Schritte zum Gewähren des Zugriffs im Azure-Portal ähneln den oben aufgeführten Schritten. Die Unterschiede sehen Sie in der folgenden Abbildung.
Das folgende Beispiel veranschaulicht das Gewähren des Zugriffs auf einen Tresor per Vorlagenbereitstellung. Fügen Sie die Codeausschnitte unten als weitere Einträge unter dem resources
-Element der Vorlage hinzu. Das Beispiel veranschaulicht die Zugriffserteilung für benutzer- bzw. systemseitig zugewiesene Identitätstypen. Wählen Sie den entsprechenden Identitätstyp aus:
# under 'variables':
"variables": {
"userAssignedIdentityResourceId" : "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]",
}
# under 'resources':
{
"type": "Microsoft.KeyVault/vaults/accessPolicies",
"name": "[concat(parameters('keyVaultName'), '/add')]",
"apiVersion": "2018-02-14",
"properties": {
"accessPolicies": [
{
"tenantId": "[reference(variables('userAssignedIdentityResourceId'), '2018-11-30').tenantId]",
"objectId": "[reference(variables('userAssignedIdentityResourceId'), '2018-11-30').principalId]",
"dependsOn": [
"[variables('userAssignedIdentityResourceId')]"
],
"permissions": {
"keys": ["get", "list"],
"secrets": ["get", "list"],
"certificates": ["get", "list"]
}
}
]
}
},
Für systemseitig zugewiesene verwaltete Identitäten:
# under 'variables':
"variables": {
"sfAppSystemAssignedIdentityResourceId": "[concat(resourceId('Microsoft.ServiceFabric/managedClusters/applications/', parameters('clusterName'), parameters('applicationName')), '/providers/Microsoft.ManagedIdentity/Identities/default')]"
}
# under 'resources':
{
"type": "Microsoft.KeyVault/vaults/accessPolicies",
"name": "[concat(parameters('keyVaultName'), '/add')]",
"apiVersion": "2018-02-14",
"properties": {
"accessPolicies": [
{
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
"tenantId": "[reference(variables('sfAppSystemAssignedIdentityResourceId'), '2018-11-30').tenantId]",
"objectId": "[reference(variables('sfAppSystemAssignedIdentityResourceId'), '2018-11-30').principalId]",
"dependsOn": [
"[variables('sfAppSystemAssignedIdentityResourceId')]"
],
"permissions": {
"secrets": [
"get",
"list"
],
"certificates":
[
"get",
"list"
]
}
},
]
}
}
Weitere Informationen finden Sie unter Tresore: Aktualisieren der Zugriffsrichtlinie.