Udělení přístupu k prostředkům Azure v clusteru Service Fabric aplikací Service Fabric
Než může aplikace použít spravovanou identitu pro přístup k jiným prostředkům, udělte této identitě oprávnění k chráněnému prostředku Azure, ke kterému se přistupuje. Udělení oprávnění je obvykle akce správy v řídicí rovině služby Azure, která vlastní chráněný prostředek směrovaný Azure Resource Managerem. Tato služba vynucuje veškerou platnou kontrolu přístupu na základě role.
Přesná posloupnost kroků závisí na typu přístupu k prostředku Azure a na jazyce a klientovi použitém k udělení oprávnění. Tento článek předpokládá, že identita přiřazená uživatelem přiřazená k aplikaci a obsahuje několik příkladů. Aktuální pokyny k udělení oprávnění najdete v dokumentaci příslušných služeb Azure.
Udělení přístupu ke službě Azure Storage
Spravovanou identitu aplikace Service Fabric, která je v tomto případě přiřazená uživatelem, můžete použít k získání dat z objektu blob úložiště Azure. Pomocí následujícího postupu udělte identitě požadovaná oprávnění na webu Azure Portal :
- Přejděte do účtu úložiště.
- Na levém panelu vyberte odkaz Řízení přístupu (IAM).
- (Volitelné) Kontrola stávajícího přístupu: V ovládacím prvku Najít vyberte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem. V seznamu výsledků vyberte příslušnou identitu.
- Výběrem možnosti Přidat>přiřazení role v horní části stránky přidejte nové přiřazení role pro identitu aplikace.
- V části Role v rozevíracím seznamu vyberte Čtenář dat objektů blob služby Storage.
- V dalším rozevíracím seznamu v části Přiřadit přístup zvolte Spravovaná identita přiřazená uživatelem.
- Dále se ujistěte, že je v rozevíracím seznamu Předplatné uvedené správné předplatné, a pak nastavte skupinu prostředků na Všechny skupiny prostředků.
- V části Vybrat zvolte UAI odpovídající aplikaci Service Fabric a pak vyberte Uložit.
Podpora spravovaných identit Service Fabric přiřazených systémem nezahrnuje integraci na webu Azure Portal. Pokud vaše aplikace používá identitu přiřazenou systémem, vyhledejte ID klienta identity aplikace a opakujte výše uvedené kroky, ale v ovládacím prvku Najít vyberte možnost uživatele, skupiny nebo instančního objektu Microsoft Entra.
Udělení přístupu ke službě Azure Key Vault
Podobně jako při přístupu k úložišti můžete pro přístup ke službě Azure Key Vault použít spravovanou identitu aplikace Service Fabric. Postup udělení přístupu na webu Azure Portal je podobný výše uvedeným krokům.
Následující příklad ukazuje udělení přístupu k trezoru pomocí nasazení šablony. Přidejte fragmenty kódu níže jako další položku pod resources
prvek šablony. Ukázka ukazuje udělení přístupu pro typy identit přiřazených uživatelem i systémem. Zvolte příslušný.
# 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"]
}
}
]
}
},
Spravované identity přiřazené systémem:
# 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"
]
}
},
]
}
}
Další informace najdete v tématu Trezory – Aktualizace zásad přístupu.