Criar um Aplicativo Gerenciado para Armazenar Resumos de Blob
Pré-requisitos
- Uma conta de armazenamento do Azure
- CLI do Azure (opcional)
- Versão do Python compatível com o SDK do Azure para Python (opcional)
Visão geral
O Aplicativo Gerenciado Resumo do Armazenamento de Blobs Apoiado pelo Razão Confidencial pode ser usado para garantir que os blobs em um contêiner de blob sejam confiáveis e não adulterados. O aplicativo, uma vez conectado a uma conta de armazenamento, rastreia todos os blobs que estão sendo adicionados a cada contêiner na conta de armazenamento em tempo real, além de calcular e armazenar os resumos no Razão Confidencial do Azure. As auditorias podem ser executadas a qualquer momento para verificar a validade dos blobs e garantir que o contêiner de blob não seja adulterado.
Implantando o aplicativo gerenciado
O Aplicativo Gerenciado pode ser encontrado no Azure Marketplace aqui: Resumos de Armazenamento de Blobs apoiados pelo Razão Confidencial (versão prévia).
Recursos a serem criados
Depois que os campos necessários são preenchidos e o aplicativo é implantado, os seguintes recursos são criados em um Grupo de Recursos Gerenciados:
- Razão Confidencial
- Fila do Barramento de Serviço com Sessões habilitada
- Conta de armazenamento (conta de armazenamento de propriedade do Publisher usada para armazenar a lógica de resumo e o histórico de auditoria)
- Aplicativo de Funções
- Application Insights
Conectando uma conta de armazenamento ao aplicativo gerenciado
Depois que um aplicativo gerenciado for criado, você poderá conectar o Aplicativo Gerenciado à sua Conta de Armazenamento para iniciar o processamento e gravar resumos do Contêiner de Blobs no Razão Confidencial do Azure.
Criar um tópico e uma assinatura de evento para a conta de armazenamento
O Aplicativo Gerenciado usa uma Fila do Barramento de Serviço do Azure para acompanhar e registrar todos os eventos Criar Blob. Você usará a fila criada no grupo de recursos gerenciado pelo aplicativo gerenciado e a adicionará como assinante de evento para qualquer conta de armazenamento para a qual está criando blobs.
No portal do Azure, você pode navegar até a conta de armazenamento para a qual deseja começar a criar resumos de blob e ir para a folha Events
. Lá, você pode criar uma Assinatura de Evento e conectá-la ao ponto de extremidade da fila do Barramento de Serviço do Azure.
A fila usa sessões para manter a ordenação em várias contas de armazenamento, portanto, você também precisará navegar até a guia Delivery Properties
e inserir uma ID de sessão exclusiva para esta assinatura de evento.
Adicionar a função necessária à conta de armazenamento
O Aplicativo Gerenciado requer que a função Storage Blob Data Owner
leia e crie hashes para cada blob e essa função deve ser adicionada para que o resumo seja calculado corretamente.
Observação
Várias contas de armazenamento podem ser conectadas a uma única instância de Aplicativo Gerenciado. Atualmente, recomendamos um máximo de 10 contas de armazenamento que contenham contêineres de blob de alto uso.
Adicionando blobs e criação de resumo
Depois que a conta de armazenamento estiver conectada corretamente ao Aplicativo Gerenciado, os blobs poderão começar a ser adicionados a contêineres dentro da conta de armazenamento. Os blobs são acompanhados em tempo real e os resumos são calculados e armazenados no Razão Confidencial do Azure.
Tabelas de transação e bloco
Todos os eventos de criação de blob são acompanhados em tabelas internas armazenadas no Aplicativo Gerenciado.
A tabela de transações contém informações sobre cada blob e um hash exclusivo que é gerado usando uma combinação de metadados e/ou conteúdo do blob.
A tabela de blocos contém informações relacionadas a cada resumo criada para o contêiner de blob e a ID de transação associada para o resumo é armazenada no Razão Confidencial do Azure.
Configurações de código hash
Há algumas configurações de código hash que podem ser selecionadas ao criar o aplicativo gerenciado. Você pode escolher o Hashing Algorithm
que está sendo usado para criar os códigos hash, seja MD5
ou SHA256
. Você também pode escolher o número de blobs contido em cada código hash ou o Digest Size
. O tamanho do código hash varia de 1-16
e é o número de blobs que serão convertidas em hash em cada bloco. Por fim, você pode selecione o Hash Contents
e o que será convertido em hash ao criar cada código hash. Isso pode ser o File Contents + Metadata
de cada blob ou apenas o File Contents
.
Exibindo resumo no Razão Confidencial do Azure
Você pode exibir os resumos armazenados diretamente no Razão Confidencial do Azure navegando até a folha Ledger Explorer
.
Executando uma auditoria
Se você quiser verificar a validade dos blobs adicionados a um contêiner para garantir que eles não sejam adulterados, uma auditoria poderá ser executada a qualquer momento. A auditoria reproduz cada evento de criação de blobs e recalcula os resumos com os blobs armazenados no contêiner durante a auditoria. Em seguida, ele compara os resumos recalculados com os resumos armazenados no Azure Confidential e fornece um relatório que exibe todas as comparações de resumo e se o contêiner de blob está ou não adulterado.
Disparando uma auditoria
Uma auditoria pode ser disparada incluindo a seguinte mensagem para a Fila do Barramento de Serviço associada ao aplicativo gerenciado:
{
"eventType": "PerformAudit",
"storageAccount": "<storage_account_name>",
"blobContainer": "<blob_container_name>"
}
Certifique-se de incluir um Session ID
, pois a fila tem sessões habilitadas.
Exibindo os resultados da auditoria
Depois que uma auditoria for executada com êxito, os resultados da auditoria poderão ser encontrados em um contêiner nomeado <managed-application-name>-audit-records
dentro da respectiva conta de armazenamento. Os resultados contêm o resumo recalculado, o resumo recuperado do Razão Confidencial do Azure e se os blobs são adulterados ou não.
Ao criar o aplicativo gerenciado, se você optar por receber alertas de email, receberá um email enviado durante um Audit Failure
ou um Audit Success and Failure
dependendo de qual opção está selecionada.
Log e erros
Os logs de erro podem ser encontrados em um contêiner nomeado <managed-application-name>-error-logs
na respectiva conta de armazenamento. Se um evento de criação de blob ou um processo de auditoria falhar, a causa da falha será registrada e armazenada neste contêiner. Se houver dúvidas sobre os logs de erros ou a funcionalidade do aplicativo, entre em contato com a equipe de Suporte do Razão Confidencial do Azure fornecida nos detalhes do Aplicativo Gerenciado.
Limpar aplicativo gerenciado
Você pode excluir o Aplicativo Gerenciado para limpar e remover todos os recursos associados. A exclusão do Aplicativo Gerenciado impede que todas as transações de blob sejam controladas e impede que todos os resumos sejam criados. Os relatórios de auditoria permanecem válidos para os blobs que foram adicionados antes da exclusão.
Mais recursos
Para obter mais informações sobre aplicativos gerenciados e os recursos implantados, consulte os seguintes links:
- Aplicativos gerenciados
- Sessões de Fila de Serviço do Azure
- Eventos de Armazenamento do Microsoft Azure