Definir ACL de compartilhamento

A Set Share ACL operação define uma política de acesso armazenada para uso com assinaturas de acesso compartilhado. Para obter mais informações sobre como definir políticas de acesso, consulte Conceder acesso limitado aos recursos do Armazenamento do Azure usando assinaturas de acesso compartilhado.

Disponibilidade do protocolo

Protocolo de compartilhamento de arquivos habilitado Disponível
SMB Sim
NFS Não

Solicitação

Você pode construir a solicitação da Set Share ACL seguinte maneira. Recomendamos HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento.

Método URI da solicitação Versão HTTP
PUT https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl HTTP/1.1

Parâmetros do URI

Você pode especificar os seguintes parâmetros adicionais no URI da solicitação:

Parâmetro Descrição
timeout Opcional. O parâmetro timeout é expresso em segundos. Para obter mais informações, consulte Definir tempos limite para operações de Arquivos do Azure.

Cabeçalhos da solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais:

Cabeçalho da solicitação Descrição
Authorization Obrigatórios. Especifica o esquema de autorização, o nome da conta e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
Date ou x-ms-date Obrigatórios. Especifica o UTC (Tempo Universal Coordenado) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
x-ms-version Necessário para todas as solicitações autorizadas. Especifica a versão da operação a ser usada para esta solicitação. Essa operação só está disponível na versão 2015-02-21 e posterior.

Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres KiB (1 kibibyte) que é registrado nos logs de Análise de Armazenamento quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Monitorar Armazenamento de Blobs do Azure.
x-ms-lease-id:<ID> Obrigatório se o compartilhamento de arquivos de destino tiver uma concessão ativa. Disponível para a versão 2020-02-10 e posterior. Se a solicitação não incluir a ID de concessão ou não for válida, a operação falhará com status código 412 (Falha na pré-condição).

Se esse cabeçalho for especificado e o compartilhamento de arquivos de destino não tiver uma concessão ativa no momento, a operação falhará com status código 412 (Falha na pré-condição).

Corpo da solicitação

Para especificar uma política de acesso armazenada, forneça um identificador exclusivo e uma política de acesso no corpo da solicitação da operação Set Share ACL.

O SignedIdentifier elemento inclui o identificador exclusivo, conforme especificado no Id elemento . SignedIdentifier também inclui os detalhes da política de acesso, conforme especificado no AccessPolicy elemento . O comprimento máximo do identificador exclusivo é 64 caracteres.

Os campos Start e Expiry devem ser expressos como hora UTC e devem atender a um formato ISO 8061 válido. Os formatos ISO 8061 com suporte incluem:

  • YYYY-MM-DD
  • YYYY-MM-DDThh:mmTZD
  • YYYY-MM-DDThh:mm:ssTZD
  • YYYY-MM-DDThh:mm:ss.fffffffTZD

Para a parte de data desses formatos, YYYY é uma representação de ano com quatro dígitos, MM é uma representação de mês com dois dígitos e DD é uma representação de dia com dois dígitos. Na parte de hora, hh é a representação de hora na notação de 24 horas, mm é a representação de minuto com dois dígitos, ss é a representação de segundos com dois dígitos e fffffff é a representação de milissegundo com sete dígitos. O designador T de hora separa as partes de data e hora da cadeia de caracteres. O designador TZD de fuso horário especifica um fuso horário.

<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>unique-64-character-value</Id>  
    <AccessPolicy>  
      <Start>start-time</Start>  
      <Expiry>expiry-time</Expiry>  
      <Permission>abbreviated-permission-list</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  

Solicitação de exemplo

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-02-21  
x-ms-date: <date>  
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>  
    <AccessPolicy>  
      <Start>2015-07-01T08:49:37.0000000Z</Start>  
      <Expiry>2015-07-02T08:49:37.0000000Z</Expiry>  
      <Permission>rwd</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 200 (OK).

Cabeçalhos de resposta

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
ETag Retorna a data e a hora em que o contêiner foi modificado pela última vez. O formato da data segue RFC 1123. Para obter mais informações, consulte Representação de valores de data/hora em cabeçalhos.
Last-Modified Qualquer operação que modifique o compartilhamento ou suas propriedades ou metadados atualiza a hora da última modificação, incluindo a definição das permissões do arquivo. As operações em arquivos não afetam a hora da última modificação do compartilhamento.
x-ms-request-id Identifica exclusivamente a solicitação que foi feita e pode ser usada para solucionar problemas da solicitação. Para obter mais informações, consulte Solucionar problemas de operações de API.
x-ms-version Indica a versão de Arquivos do Azure que foi usada para executar a solicitação.
Date ou x-ms-date Um valor de data/hora UTC que indica a hora em que o serviço enviou a resposta.
x-ms-client-request-id Pode ser usado para solucionar problemas de solicitações e respostas correspondentes. O valor desse cabeçalho será igual ao valor do x-ms-client-request-id cabeçalho, se ele estiver presente na solicitação e o valor for no máximo 1.024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, esse cabeçalho não estará presente na resposta.

Resposta de exemplo

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: <date>  
ETag: "0x8CB171613397EAB"  
Last-Modified: <date>  
x-ms-version: 2015-02-21  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

Autorização

Somente o proprietário da conta pode chamar essa operação.

Comentários

Somente o proprietário da conta pode acessar recursos em um compartilhamento específico, a menos que uma das seguintes condições seja verdadeira:

  • O proprietário especificou que os recursos de compartilhamento estão disponíveis para acesso público definindo as permissões no compartilhamento.
  • O proprietário emitiu uma assinatura de acesso compartilhado para um recurso dentro do compartilhamento.

Quando você define permissões para um contêiner, as permissões existentes são substituídas. Para atualizar as permissões do contêiner, chame Obter ACL de Compartilhamento para buscar todas as políticas de acesso associadas ao contêiner. Modifique a política de acesso que você deseja alterar e, em seguida, chame Set Share ACL com o conjunto completo de dados para executar a atualização.

Estabelecer políticas de acesso no nível do compartilhamento

Uma política de acesso armazenada pode especificar a hora de início, a hora de expiração e as permissões para as assinaturas de acesso compartilhado às quais está associada. Dependendo de como você deseja controlar o acesso ao seu recurso de compartilhamento ou arquivo, você pode:

  • Especifique todos esses parâmetros dentro da política de acesso armazenada e omita-os da URL para a assinatura de acesso compartilhado. Isso permite modificar o comportamento da assinatura associada ou revogá-la a qualquer momento.
  • Especifique um ou mais dos parâmetros de política de acesso dentro da política de acesso armazenada e especifique os outros parâmetros na URL.
  • Especifique todos os parâmetros na URL. Nesse caso, você pode usar a política de acesso armazenada para revogar a assinatura, mas não para modificar seu comportamento.

Para obter mais informações sobre como definir políticas de acesso, consulte Conceder acesso limitado aos recursos do Armazenamento do Azure usando assinaturas de acesso compartilhado.

Juntos, a assinatura de acesso compartilhado e a política de acesso armazenado devem incluir todos os campos necessários para autorizar a assinatura. Se qualquer campo obrigatório estiver ausente, a solicitação falhará. Da mesma forma, se um campo for especificado na URL da assinatura de acesso compartilhado e na política de acesso armazenada, ocorrerá uma falha na solicitação com o código de status 400 (Solicitação Incorreta). Para obter mais informações sobre os campos que compõem uma assinatura de acesso compartilhado, consulte Usar uma assinatura de acesso compartilhado.

Você pode definir no máximo cinco políticas de acesso separadas para um compartilhamento a qualquer momento. Se mais de cinco políticas de acesso forem passadas no corpo da solicitação, o serviço retornará status código 400 (Solicitação Incorreta).

Uma assinatura de acesso compartilhado pode ser emitida em um compartilhamento ou em um arquivo, independentemente de os dados de contêiner estarem disponíveis para acesso de leitura anônimo. Uma assinatura de acesso compartilhado fornece mais controle sobre como, quando e para quem um recurso se torna acessível.

Você não pode definir ou recuperar uma política de acesso para um instantâneo de compartilhamento. Se você tentar definir uma política de acesso, o serviço retornará status código 400 (InvalidQueryParameterValue).

Observação

Quando você estabelece uma política de acesso armazenada em um contêiner, pode levar até 30 segundos para entrar em vigor. Durante esse intervalo, uma assinatura de acesso compartilhado associada à política de acesso armazenada falhará com status código 403 (Proibido), até que a política de acesso se torne ativa.

Confira também

Operações em recursos fileshare (Arquivos do Azure)