Conceder a um aplicativo do Service Fabric acesso aos recursos do Azure em um cluster do Service Fabric
Antes que um aplicativo possa usar sua identidade gerenciada para acessar outros recursos, conceda permissões a essa identidade no recurso protegido do Azure que está sendo acessado. Conceder permissões normalmente é uma ação de gerenciamento no plano de controle do serviço do Azure que possui o recurso protegido roteado pelo Azure Resource Manager. Esse serviço impõe qualquer verificação de acesso baseada em função aplicável.
A sequência exata de etapas depende do tipo de recurso do Azure que está sendo acessado e do idioma e cliente usados para conceder permissões. Este artigo assume uma identidade atribuída pelo usuário atribuída ao aplicativo e inclui vários exemplos. Consulte a documentação dos respetivos serviços do Azure para obter instruções atualizadas sobre a concessão de permissões.
Conceder acesso ao Armazenamento do Azure
Você pode usar a identidade gerenciada do aplicativo Service Fabric, que é atribuída pelo usuário neste caso, para obter os dados de um blob de armazenamento do Azure. Conceda à identidade as permissões necessárias no portal do Azure usando as seguintes etapas:
- Navegue até a conta de armazenamento.
- Selecione o link Controle de acesso (IAM) no painel esquerdo.
- (Opcional) Verifique o acesso existente: selecione Identidade gerenciada atribuída pelo sistema ou pelo usuário no controle Localizar. Selecione a identidade apropriada na lista de resultados subsequente.
- Selecione Adicionar>atribuição de função na parte superior da página para adicionar uma nova atribuição de função para a identidade do aplicativo.
- Em Função, na lista suspensa, selecione Leitor de Dados de Blob de Armazenamento.
- Na lista suspensa seguinte, em Atribuir acesso a, escolha Identidade gerenciada atribuída ao usuário.
- Em seguida, verifique se a assinatura adequada está listada na lista suspensa Assinatura e defina Grupo de Recursos como Todos os grupos de recursos.
- Em Selecionar, escolha o UAI correspondente ao aplicativo Service Fabric e selecione Salvar.
O suporte para identidades gerenciadas do Service Fabric atribuídas pelo sistema não inclui integração no portal do Azure. Se seu aplicativo usa uma identidade atribuída ao sistema, localize a ID do cliente da identidade do aplicativo e repita as etapas acima, mas selecionando a opção de usuário, grupo ou entidade de serviço do Microsoft Entra no controle Localizar .
Conceder acesso ao Azure Key Vault
Da mesma forma que acessar o armazenamento, você pode usar a identidade gerenciada de um aplicativo do Service Fabric para acessar um Cofre de Chaves do Azure. As etapas para conceder acesso no portal do Azure são semelhantes às etapas listadas acima.
O exemplo a seguir ilustra a concessão de acesso a um cofre usando uma implantação de modelo. Adicione os trechos abaixo como outra entrada sob o resources
elemento do modelo. O exemplo demonstra a concessão de acesso para os tipos de identidade atribuídos pelo usuário e pelo sistema, respectivamente. Escolha o aplicável.
# 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"]
}
}
]
}
},
Para identidades geridas atribuídas pelo sistema:
# 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"
]
}
},
]
}
}
Para obter mais informações, consulte Vaults - Update Access Policy.