Partilhar via


Criar um aplicativo gerenciado para armazenar resumos de blob

Pode usar o resumo Azure Blob Storage, apoiado pela aplicação gerida Azure Confidential Ledger, para ajudar a garantir que os blobs dentro de um contentor de blobs são confiáveis e não alterados. Depois de a aplicação estar ligada a uma conta de armazenamento, ela rastreia todos os blobs que são adicionados a cada contentor da conta de armazenamento em tempo real. Também calcula e armazena os resumos em livros de registo confidencial. Pode realizar auditorias a qualquer momento para verificar a validade dos blobs e garantir que o contentor de blobs não foi adulterado.

Pré-requisitos

Implantar o aplicativo gerenciado

Para encontrar a aplicação gerida no Azure Marketplace, veja Sumários do Blob Storage suportados por ledger confidencial (prévia).

Recursos a criar

Depois de preenchidos os campos necessários e a aplicação ser implementada, os seguintes recursos são criados sob um grupo de recursos geridos:

Ligue uma conta de armazenamento à aplicação gerida

Depois de a aplicação gerida ser implementada com sucesso, pode ligá-la a uma conta Azure Storage para permitir o processamento e registo dos digestos de blobs containers no livro de registos confidenciais.

A aplicação gerida suporta atualmente os seguintes tipos de contas de armazenamento:

  • Contas de armazenamento padrão General-Purpose v2, incluindo as contas configuradas para os níveis Ativo, Frio ou Arquivo.
  • Contas do Azure Data Lake Storage Gen2, com Namespace Hierárquico ativado.
  • Contas de armazenamento com configurações de endpoint públicas ou privadas, se forem concedidas permissões de rede e identidade apropriadas.
  • Níveis de desempenho Standard ou Premium se o serviço Blob estiver ativado.

Apenas o Armazenamento Blob é suportado. Outros serviços (por exemplo, Azure Files, Table Storage ou Queue Storage) não são aplicáveis para uso com a aplicação gerida.

Criar uma assinatura de tópico e evento para a conta de armazenamento

A aplicação gerida utiliza uma fila do Service Bus para rastrear e registar todos os eventos Criar Blob e Eliminar Blob. Utiliza-se a fila criada no grupo de recursos geridos pela aplicação gerida e adiciona-a como assinante de eventos para qualquer conta de armazenamento em que esteja a criar blobs. Além disso, certifique-se de que o valor do Nome do Tópico do Sistema associado à conta de armazenamento que está a acompanhar seja atribuído a Azure Service Bus Data Sender para a fila do Service Bus criada pela aplicação gerida.

Captura de ecrã que mostra como configurar um papel de Service Bus.

Captura de ecrã que mostra como configurar uma subscrição de evento de armazenamento.

No portal Azure, podes ir à conta de armazenamento para a qual queres começar a criar resumos de blob e ir ao painel de Eventos . Lá podes criar uma subscrição de evento e ligá-la ao endpoint da fila do Service Bus. Para o tipo de identidade gerida, selecione Sistema Atribuído.

Captura de ecrã que mostra como configurar um ID de sessão de subscrição de evento de armazenamento.

A fila de mensagens utiliza sessões para manter a ordem através de múltiplas contas de armazenamento, pelo que é necessário também ir ao separador de Propriedades de Entrega para inserir um ID de sessão único para esta subscrição de evento.

Adicionar a função necessária a uma conta de armazenamento

A aplicação gerida exige que o papel de Proprietário de Dados do Blob de Armazenamento leia e crie hashes para cada blob. Deve adicionar esta função para que o digesto seja calculado corretamente.

Captura de ecrã que mostra como configurar uma identidade gerida para a aplicação gerida.

Nota

Pode ligar várias contas de armazenamento a uma única instância de aplicação gerida. Atualmente recomendamos um máximo de 10 contas de armazenamento que contenham contentores de blob de alta utilização.

Adicionar blobs e criar digestões

Depois de a conta de armazenamento estar devidamente ligada à aplicação gerida, pode começar a adicionar blobs aos contentores dentro da conta de armazenamento. Os blobs são rastreados em tempo real. Os digestos são calculados e armazenados num registo confidencial.

Tabelas de transações e blocos

Todos os eventos de criação de blobs são acompanhados em tabelas internas armazenadas dentro da aplicação gerida.

Captura de ecrã que mostra a tabela de transações onde os hashes blob são armazenados.

A tabela de transações contém informação sobre cada blob e um hash único que é gerado usando uma combinação dos metadados ou conteúdos do blob.

Captura de ecrã que mostra a tabela de blocos onde a informação do resumo está armazenada.

A tabela de blocos contém informação relacionada com cada digest criado para o contentor do blob. O ID de transação associado ao resumo é armazenado num livro-razão confidencial.

Configurações de resumo

Captura de ecrã do provisionamento de aplicações geridas que mostra as definições do resumo.

Pode selecionar algumas definições de resumo ao criar a aplicação gerida:

  • Algoritmo de hashing: Selecione MD5 ou SHA256 para o algoritmo usado para criar os resumos.
  • Conteúdo do hash: Selecione Conteúdo do Ficheiro + Metadados ou Conteúdo do Ficheiro para identificar o valor de cada blob e o que é aplicado no hash quando cada digest é criado.
  • Tamanho do digest: Selecione o número de blobs contidos em cada digest. O tamanho do digest varia de 1 a 16 e é o número de blobs que são interligados por hash dentro de cada bloco.

Veja o resumo em registo confidencial

Pode ver os resumos armazenados diretamente no livro de registos confidenciais indo ao painel do explorador do Livro Maior .

Captura de ecrã que mostra o painel explorador do Ledger com transações resumidas.

Realizar uma auditoria

Para verificar a validade dos blobs adicionados a um contentor para garantir que não foram adulterados, pode fazer uma auditoria a qualquer momento. A auditoria reproduz cada evento de criação de blob e recalcula os resumos com os blobs armazenados no contêiner durante a auditoria. Depois, compara os digestos recalculados com os digestos armazenados no registo confidencial. A auditoria fornece um relatório que mostra todas as comparações de digest e se o recipiente do blob foi adulterado ou não.

Desencadear uma auditoria

Pode desencadear uma auditoria incluindo a seguinte mensagem na fila do Service Bus associada à sua aplicação gerida:

{
    "eventType": "PerformAudit",
    "storageAccount": "<storage_account_name>",
    "blobContainer": "<blob_container_name>"
}

Captura de ecrã que mostra como desencadear uma auditoria adicionando uma mensagem à fila.

Certifique-se de incluir um ID de sessão à medida que a fila permite as sessões.

Ver resultados da auditoria

Captura de ecrã que mostra um registo de auditoria de exemplo com digestos correspondentes.

Após uma auditoria ser realizada com sucesso, pode encontrar os resultados da auditoria num contentor nomeado <managed-application-name>-audit-records dentro da respetiva conta de armazenamento. Os resultados contêm o digest recalculado, o digest recuperado do registo confidencial e se as manchas foram adulteradas ou não.

Captura de ecrã do provisionamento de aplicações geridas que mostra as definições de alerta de email de auditoria.

Se optar por receber alertas por email ao criar a aplicação gerida, recebe um alerta para o seu endereço de email. Pode selecionar Falha na Auditoria ou Sucesso e Fracasso da Auditoria.

Permitir auditorias de rastreio de utilizadores

Pode acompanhar quais os utilizadores que carregaram ou eliminaram blobs usando registos de diagnóstico enviados para a conta de armazenamento interna criada pela aplicação gerida.

1. Ativar configurações de diagnóstico

  1. Vai à tua conta de armazenamento e seleciona Monitorização>das definições de diagnóstico.
  2. Adicione uma nova configuração para o serviço blob.
  3. Ative as seguintes opções:
    • Gravação em Armazenamento
    • Eliminação de Armazenamento
  4. Defina o destino para a conta interna de armazenamento de arquivo que a aplicação gerida criou.

2. Enviar a seguinte mensagem para a fila do Service Bus (com um ID de sessão)

Depois de ver os registos de diagnóstico a fluir para a conta de armazenamento, pode adicionar o getUsers campo quando um evento de auditoria for acionado:

{
"eventType": "PerformAudit",
"storageAccount": "<storage_account_name>",
"blobContainer": "<blob_container_name>",
"getUsers": true
}

3. Verifique os resultados da auditoria

Após uma auditoria ser processada com sucesso, cada entrada inclui o utilizador que realizou a operação juntamente com o seu OID, caso encontrado:

"user": {
  "upn": "user@example.com",
  "oid": "<object-id>"
}

Registo e erros

Pode ver registos de erro num contentor nomeado <managed-application-name>-error-logs que pode encontrar dentro da respetiva conta de armazenamento. Se um evento de criação de blob ou processo de auditoria falhar, a causa da falha será registrada e armazenada nesse contêiner. Se tiver alguma dúvida sobre os registos de erro ou a funcionalidade da aplicação, contacte a equipa de suporte do Azure Confidential Ledger. As informações de contacto são fornecidas nos detalhes da aplicação gerida.

Limpar a aplicação gerida

Pode eliminar a aplicação gerida para limpar e remover todos os recursos associados. Eliminar a aplicação gerida impede que todas as transações de blob sejam rastreadas. Também impede que todos os digestos sejam criados. Os relatórios de auditoria permanecem válidos para os blobs que foram adicionados antes da exclusão.

Mais recursos

Para mais informações sobre aplicações geridas e os recursos implementados, consulte os seguintes artigos: