Explore as políticas de acesso armazenado
Uma política de acesso armazenado fornece um nível extra de controle sobre assinaturas de acesso compartilhado (SAS) de nível de serviço no lado do servidor. O estabelecimento de uma política de acesso armazenado agrupa SAS e fornece mais restrições para assinaturas vinculadas pela política. Você pode usar uma política de acesso armazenado para alterar a hora de início, a hora de expiração ou as permissões de uma assinatura, ou para revogá-la depois que ela for emitida.
Os seguintes recursos de armazenamento oferecem suporte a políticas de acesso armazenado:
- Contentores de blobs
- Partilhas de ficheiros
- Queues
- Tabelas
Criando uma política de acesso armazenado
A política de acesso para uma SAS consiste na hora de início, na hora de expiração e nas permissões para a assinatura. Você pode especificar todos esses parâmetros no URI de assinatura e nenhum dentro da política de acesso armazenado; tudo na política de acesso armazenado e nenhum no URI; ou alguma combinação dos dois. No entanto, não é possível especificar um determinado parâmetro no token SAS e na política de acesso armazenado.
Para criar ou modificar uma política de acesso armazenado, chame a Set ACL
operação para o recurso (consulte Definir ACL de contêiner, Definir ACL de fila, Definir ACL de tabela ou Definir ACL de compartilhamento) com um corpo de solicitação que especifique os termos da política de acesso. O corpo da solicitação inclui um identificador assinado exclusivo de sua escolha, com até 64 caracteres, e os parâmetros opcionais da política de acesso, da seguinte maneira:
Nota
Quando você estabelece uma política de acesso armazenado em um contêiner, tabela, fila ou compartilhamento, ela pode levar até 30 segundos para entrar em vigor. Durante esse período, as solicitações contra uma SAS associada à política de acesso armazenado podem falhar com o código de status 403 (Proibido), até que a política de acesso se torne ativa. As restrições de intervalo de entidades de tabela (startpk
, startrk
, endpk
e endrk
) não podem ser especificadas em uma política de acesso armazenado.
A seguir estão exemplos de criação de uma política de acesso armazenado usando C# .NET e a CLI do Azure.
BlobSignedIdentifier identifier = new BlobSignedIdentifier
{
Id = "stored access policy identifier",
AccessPolicy = new BlobAccessPolicy
{
ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
Permissions = "rw"
}
};
blobContainer.SetAccessPolicy(permissions: new BlobSignedIdentifier[] { identifier });
az storage container policy create \
--name <stored access policy identifier> \
--container-name <container name> \
--start <start time UTC datetime> \
--expiry <expiry time UTC datetime> \
--permissions <(a)dd, (c)reate, (d)elete, (l)ist, (r)ead, or (w)rite> \
--account-key <storage account key> \
--account-name <storage account name> \
Modificar ou revogar uma política de acesso armazenado
Para modificar os parâmetros da política de acesso armazenado, você pode chamar a operação de lista de controle de acesso para o tipo de recurso para substituir a política existente. Por exemplo, se sua política existente conceder permissões de leitura e gravação a um recurso, você poderá modificá-la para conceder somente permissões de leitura para todas as solicitações futuras.
Para revogar uma política de acesso armazenado, você pode excluí-la, renomeá-la alterando o identificador assinado ou alterar o tempo de expiração para um valor no passado. A alteração do identificador assinado quebra as associações entre quaisquer assinaturas existentes e a política de acesso armazenada. Alterar o tempo de expiração para um valor no passado faz com que todas as assinaturas associadas expirem. A exclusão ou modificação da política de acesso armazenado afeta imediatamente todas as SAS associadas a ela.
Para remover uma única política de acesso, chame a operação do Set ACL
recurso, passando o conjunto de identificadores assinados que você deseja manter no contêiner. Para remover todas as políticas de acesso do recurso, chame a Set ACL
operação com um corpo de solicitação vazio.