Configure uma política de término para assinaturas de acesso compartilhado

É possível usar uma SAS (assinatura de acesso compartilhado) para delegar acesso a recursos em sua conta do Armazenamento do Microsoft Azure. Um token SAS inclui o recurso de destino, as permissões concedidas e o intervalo pelo qual o acesso é permitido. As melhores práticas recomendam que você limite o intervalo de uma SAS em caso de comprometimento. Ao definir uma política de expiração de SAS para as contas de armazenamento, você poderá fornecer um limite de expiração superior recomendado quando um usuário criar uma SAS de serviço ou uma SAS de conta.

Para obter mais informações sobre assinaturas de acesso compartilhado, confira Conceder acesso limitado a recursos de Armazenamento do Azure usando SAS (assinaturas de acesso compartilhado).

Sobre as políticas de expiração de SAS

Você pode configurar uma política de expiração de SAS na conta de armazenamento. A política de expiração de SAS especifica o limite superior recomendado para o campo de expiração assinado em uma SAS de serviço ou uma SAS de conta. O limite superior recomendado é especificado como um valor de data/hora, que é um número combinado de dias, horas, minutos e segundos.

O intervalo de validade para a SAS é calculado, subtraindo o valor de data/hora do campo de início assinado do valor de data/hora do campo de expiração assinado. Se o valor resultante for menor ou igual ao limite superior recomendado, a SAS estará em conformidade com a política de expiração de SAS.

Depois de configurar a política de expiração da SAS, qualquer usuário que criar uma SAS de serviço ou SAS de conta com um intervalo que exceda o limite superior recomendado verá um aviso.

Uma política de expiração de SAS não impede que um usuário crie uma SAS com uma expiração que exceda o limite recomendado pela política. Quando um usuário cria uma SAS que viola a política, ele vê um aviso, juntamente com o intervalo máximo recomendado. Se você configurou uma configuração de diagnóstico para registro em log com o Azure Monitor, o Armazenamento do Azure gravará uma mensagem na propriedade SasExpiryStatus nos logs sempre que um usuário usar uma SAS que expira após o intervalo recomendado. A mensagem indica que o intervalo de validade de SAS excede o intervalo recomendado.

Quando uma política de expiração de SAS estiver em vigor para a conta de armazenamento, o campo de início assinado será obrigatório para cada SAS. Se o campo de início assinado não estiver incluído na SAS e você definiu uma configuração de diagnóstico para registro em log com o Azure Monitor, o Armazenamento do Azure gravará uma mensagem na propriedade SasExpiryStatus nos logs sempre que um usuário usar uma SAS sem um valor para o campo de início assinado.

Configurar uma política de término de SAS

Quando você configura uma política de término de SAS em uma conta de armazenamento, a política se aplica a cada tipo de SAS assinado com a chave de conta. Os tipos de assinaturas de acesso compartilhado que são assinados com a chave de conta são a SAS de serviço e a SAS de conta.

Preciso girar as chaves de acesso da conta primeiro?

Para configurar uma política de expiração da SAS, você precisará girar cada uma das chaves de acesso de sua conta pelo menos uma vez. Se a propriedade keyCreationTime da conta de armazenamento tiver um valor nulo para uma das chaves de acesso da conta (key1 e key2), você precisará girá-las. Para determinar se a propriedade keyCreationTime é nula, consulte Obter a hora de criação das chaves de acesso da conta para uma conta de armazenamento. Se você tentar configurar uma política de expiração da SAS e as chaves precisarem ser giradas primeiro, a operação falhará.

Como configurar uma política de expiração da SAS

Você pode configurar uma política de expiração da SAS usando o portal do Microsoft Azure, o PowerShell ou a CLI do Azure.

Para configurar uma política de término de SAS no portal do Microsoft Azure, siga estas etapas:

  1. Navegue até sua conta de armazenamento no portal do Azure.

  2. Em Configurações, escolha Configuração.

  3. Localize a configuração de Permitir o limite superior recomendado de intervalo de expiração de SAS (assinatura de acesso compartilhado) e defina-a como Habilitado.

    Observação

    Se a configuração estiver esmaecida e for exibida a mensagem mostrada na imagem abaixo, será necessário girar as duas chaves de acesso da conta antes de definir o limite superior recomendado para valores de intervalo de expiração da SAS:

    Screenshot showing the option to configure a SAS expiration policy is grayed out in the Azure portal.

  4. Especifique os valores de tempo em Limite superior recomendado para o intervalo de expiração da SAS para o intervalo recomendado para as novas assinaturas de acesso compartilhado criadas em recursos nesta conta de armazenamento.

    Screenshot showing how to configure a SAS expiration policy in the Azure portal.

  5. Selecione Salvar para salvar as alterações.

Logs de consulta de violações de política

Para registrar a criação de uma SAS válida por um intervalo maior do que o recomendado pela política de expiração de SAS, crie uma configuração de diagnóstico que envie logs para um workspace do Log Analytics do Azure. Para obter mais informações, consulte Enviar logs para o Log Analytics do Azure.

Depois, use uma consulta de log do Azure Monitor para monitorar se a política foi violada. Crie uma nova consulta no workspace do Log Analytics, adicione o texto de consulta a seguir e pressione Executar.

StorageBlobLogs 
| where SasExpiryStatus startswith "Policy violated"
| summarize count() by AccountName, SasExpiryStatus

Usar uma política interna para monitorar a conformidade

Você pode monitorar suas contas de armazenamento com o Azure Policy para garantir que as contas de armazenamento na sua assinatura tenham configurado políticas de expiração da SAS. O Armazenamento do Azure fornece uma política interna para garantir que as contas tenham essa configuração definida. Para obter mais informações sobre a política interna, confira As contas de armazenamento devem ter políticas de SAS (Assinatura de Acesso Compartilhado) configuradas em Lista de definições de política interna.

Atribuir a política interna para um escopo de recurso

Siga estas etapas para atribuir a política interna ao escopo apropriado no portal do Azure:

  1. No portal do Azure, pesquise Política para exibir o painel do Azure Policy.

  2. Na seção Criação, selecione Atribuições.

  3. Escolha Atribuir política.

  4. Na guia Noções Básicas da página Atribuir política, na seção Escopo, especifique o escopo da atribuição de política. Selecione o botão Mais para escolher a assinatura e o grupo de recursos opcional.

  5. Para o campo Definição de política, selecione o botão Mais e insira as chaves da conta de armazenamento no campo Pesquisa. Selecione a definição de política chamada As chaves de conta de armazenamento não devem expirar.

    Screenshot showing how to select the built-in policy to monitor validity intervals for shared access signatures for your storage accounts

  6. Selecione Revisar + criar para atribuir a definição de política ao escopo especificado.

    Screenshot showing how to create the policy assignment

Monitorar a conformidade com a política de expiração de chave

Para monitorar suas contas de armazenamento para conformidade com a política de expiração de chave, siga estas etapas:

  1. No painel do Azure Policy, localize a definição de política interna para o escopo especificado na atribuição de política. Você pode pesquisar Storage accounts should have shared access signature (SAS) policies configured não devem expirar na caixa Pesquisar para filtrar a política interna.

  2. Selecione o nome da política com o escopo desejado.

  3. Na página Atribuição de política para a política interna, selecione Exibir conformidade. Todas as contas de armazenamento no grupo de recursos e assinatura especificados que não atenderem aos requisitos de política aparecerão no relatório de conformidade.

    Screenshot showing how to view the compliance report for the SAS expiration built-in policy

Para colocar uma conta de armazenamento em conformidade, configure uma política de expiração de SAS para essa conta, conforme descrito em Configurar uma política de término de SAS.

Confira também