Permita acesso a um aplicativo do Service Fabric nos recursos do Azure em um cluster do Service Fabric
Para que um aplicativo possa usar a identidade gerenciada para acessar outros recursos, conceda permissões a essa identidade no recurso protegido do Azure que está sendo acessado. Normalmente, a concessão de permissões é uma ação de gerenciamento feita no painel de controle do serviço do Azure que é o proprietário do 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 da linguagem e do cliente usado para conceder permissões. Este artigo pressupõe uma identidade atribuída pelo usuário que seja atribuída ao aplicativo e inclui vários exemplos. Consulte a documentação dos respectivos serviços do Azure para obter instruções atualizadas sobre como conceder permissões.
Conceder acesso ao Armazenamento do Azure
Você pode usar a identidade gerenciada do aplicativo do Service Fabric, que, neste caso, é atribuída pelo usuário, 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 à esquerda.
- (Opcional) Verifique o acesso existente: selecione identidade gerenciada Atribuída pelo sistema ou Atribuída pelo usuário no controle Localizar. Escolha a identidade apropriada na lista de resultados seguinte.
- Escolha Adicionar>Adicionar atribuição de função na parte superior da página para adicionar uma nova atribuição de função à identidade do aplicativo.
- Em Função, na lista suspensa, selecione Leitor de Dados do Blob de Armazenamento.
- Na próxima lista suspensa, em Atribuir acesso a, escolha Identidade gerenciada atribuída pelo usuário.
- Depois, verifique se a assinatura correta 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 do Service Fabric e selecione Salvar.
O suporte para identidades gerenciadas do Service Fabric atribuídas pelo sistema não inclui a integração no portal do Azure. Se o aplicativo usar uma identidade atribuída pelo 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 ocorre com o acesso ao armazenamento, você pode usar a identidade gerenciada de um aplicativo do Service Fabric para acessar um cofre de chaves do Azure. As etapas necessárias para permitir acesso no portal do Azure são semelhantes às etapas listadas acima. Confira a imagem abaixo para saber quais são as diferenças.
O exemplo a seguir ilustra a permissão de acesso a um cofre por meio de uma implantação de modelo. Adicione os snippets abaixo como outra entrada sob o elemento resources
do modelo. O exemplo demonstra a permissão de acesso para os tipos de identidade atribuída pelo usuário e pelo sistema, respectivamente. Escolha aquele 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 gerenciadas 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, confira Cofres – Atualizar a política de acesso.