Configurar uma política de expiração para assinaturas de acesso compartilhado

Você pode usar uma assinatura de acesso compartilhado (SAS) para delegar acesso a recursos em sua conta de Armazenamento do Azure. Um token SAS inclui o recurso de destino, as permissões concedidas e o intervalo durante o qual o acesso é permitido. As práticas recomendadas recomendam que você limite o intervalo para uma SAS caso ela seja comprometida. Ao definir uma política de expiração SAS para suas contas de armazenamento, você pode fornecer um limite máximo de expiração recomendado quando um usuário cria uma SAS de serviço ou uma SAS de conta.

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

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

Você pode configurar uma política de expiração SAS na conta de armazenamento. A política de expiração 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 o 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, o SAS estará em conformidade com a política de expiração do SAS.

Depois de configurar a política de expiração 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 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ê tiver configurado uma configuração de diagnóstico para registrar 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 do SAS excede o intervalo recomendado.

Quando uma política de expiração SAS está em vigor para a conta de armazenamento, o campo de início assinado é necessário para cada SAS. Se o campo de início assinado não estiver incluído na SAS e você tiver configurado uma configuração de diagnóstico para registrar 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 expiração SAS

Quando você configura uma política de expiração 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 assinadas com a chave de conta são a SAS de serviço e a SAS de conta.

Preciso de rodar primeiro as chaves de acesso à conta?

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

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

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

Para configurar uma política de expiração SAS no portal do Azure, siga estas etapas:

  1. Navegue para a sua conta de armazenamento no portal do Azure.

  2. Em Definições, selecione Configuração.

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

    Nota

    Se a configuração estiver acinzentada e você vir a mensagem mostrada na imagem abaixo, será necessário girar ambas as chaves de acesso à conta antes de definir o limite superior recomendado para valores de intervalo de expiração 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 SAS para o intervalo recomendado para quaisquer 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 Guardar para guardar as alterações.

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

Para registrar o uso de uma SAS válida em um intervalo maior do que a política de expiração SAS recomenda, primeiro crie uma configuração de diagnóstico que envie logs para um espaço de trabalho do Azure Log Analytics. Para obter mais informações, consulte Enviar logs para o Azure Log Analytics.

Em seguida, use uma consulta de log do Azure Monitor para monitorar se a política foi violada. Crie uma nova consulta no espaço de trabalho do Log Analytics, adicione o seguinte texto de consulta 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 em sua assinatura tenham configurado políticas de expiração SAS. O Armazenamento do Azure fornece uma política interna para garantir que as contas tenham essa configuração configurada. Para obter mais informações sobre a política interna, consulte Contas de armazenamento devem ter políticas de assinatura de acesso compartilhado (SAS) configuradas em Lista de definições de política internas.

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, procure Política para exibir o painel Política do Azure.

  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 opcionais.

  5. Para o campo Definição de política, selecione o botão Mais e insira as chaves da conta de armazenamento no campo Pesquisar. 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 Rever + criar para atribuir a definição de política ao âmbito especificado.

    Screenshot showing how to create the policy assignment

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

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

  1. No painel Política do Azure, 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 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íticas para a política interna, selecione Exibir conformidade. Todas as contas de armazenamento na assinatura especificada e no grupo de recursos que não atendem aos requisitos de política aparecem 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 SAS para essa conta, conforme descrito em Configurar uma política de expiração SAS.

Consulte também