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 superior de expiração recomendado quando um usuário cria uma SAS de delegação de usuário, 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).
Importante
Para cenários em que as assinaturas de acesso compartilhado são usadas, a Microsoft recomenda o uso de uma SAS de delegação de usuário. Uma SAS de delegação de usuário é protegida com credenciais do Microsoft Entra em vez da chave da conta, o que fornece segurança superior.
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 delegação de usuário, 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 do SAS, qualquer usuário que crie um SAS 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 SAS em uma conta de armazenamento, a política se aplica a cada tipo de SAS: SAS de delegação de usuário, SAS de serviço e SAS de conta. Os tipos SAS de serviço e SAS de conta são assinados com a chave de conta, enquanto a SAS de delegação de usuário é assinada com credenciais do Microsoft Entra.
Nota
Uma SAS de delegação de usuário é assinada com uma chave de delegação de usuário, que é obtida usando credenciais do Microsoft Entra. A chave de delegação do usuário tem seu próprio intervalo de expiração que não está sujeito à política de expiração SAS. A política de expiração SAS aplica-se apenas à SAS de delegação de utilizador, não à chave de delegação de utilizador com a qual está assinada.
Uma SAS de delegação de usuário tem um intervalo de expiração máximo de 7 dias, independentemente da política de expiração do SAS. Se a política de expiração SAS estiver definida para um valor superior a 7 dias, a política não terá efeito para uma SAS de delegação de usuário. Se a chave de delegação do usuário expirar, qualquer SAS de delegação de usuário assinada com essa chave será inválida e qualquer tentativa de usar a SAS retornará um erro.
Preciso de rodar primeiro as chaves de acesso à conta?
Esta seção se aplica aos tipos SAS de serviço e SAS de conta, que são assinados com a chave de 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:
Navegue para a sua conta de armazenamento no portal do Azure.
Em Definições, selecione Configuração.
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:
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.
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:
No portal do Azure, procure Política para exibir o painel Política do Azure.
Na seção Criação, selecione Atribuições.
Escolha Atribuir política.
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.
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.
Selecione Rever + criar para atribuir a definição de política ao âmbito especificado.
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:
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.Selecione o nome da política com o escopo desejado.
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.
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.