Solicitações Pré-autenticadas do Serviço Object Storage

Saiba como usar o recurso de solicitação pré-autenticada para permitir que os usuários acessem um bucket ou um objeto sem fornecer suas credenciais de sign-on.

As solicitações pré-autenticadas fornecem uma forma de permitir que os usuários acessem um bucket ou objeto sem ter suas próprias credenciais. Os usuários continuam tendo acesso ao bucket ou objeto, desde que o criador da solicitação tenha permissões para acessar esses recursos. Por exemplo, você pode criar uma solicitação que permita que uma operação suporte backups de upload do usuário para um bucket sem chaves de API proprietárias. Ou você pode criar uma solicitação que permita que um parceiro de negócios acesse todos os seus relatórios financeiros trimestrais em um bucket sem possuir chaves de API.

Quando você cria uma solicitação pré-autenticada, um URL exclusivo é gerado. Qualquer um a quem você forneça esse URL poderá acessar os recursos do serviço Object Storage identificados na solicitação pré-autenticada, usando ferramentas HTTP padrão como curl e wget.

Importante

Avalie o requisito de negócios para acesso pré-autenticado a um bucket ou objetos. Um URL de solicitação pré-autenticada fornece a qualquer pessoa que tenha o URL acesso aos destinos identificados na solicitação. Gerencie com cuidado a distribuição do URL.

Você pode executar estas tarefas de solicitação pré-autenticada:

Permissões Obrigatórias

Criando uma Solicitação Pré-Autenticada

Para criar ou gerenciar solicitações pré-autenticadas, você precisa da permissão PAR_MANAGE para o bucket de destino.

Embora você só precise da permissão PAR_MANAGE para criar uma solicitação pré-autenticada, também precisa ter as permissões apropriadas para o tipo de acesso que está concedendo. Por exemplo:

  • Se você estiver criando uma solicitação pré-autenticada para fazer upload de objetos para um bucket, precisará das permissões OBJECT_CREATE e OBJECT_OVERWRITE, além de PAR_MANAGE.
  • Se você estiver criando uma solicitação pré-autenticada para acesso de leitura/gravação a objetos em um bucket, precisará das permissões OBJECT_READ, OBJECT_CREATE e OBJECT_OVERWRITE além das permissões PAR_MANAGE.

Importante

Se o criador de uma solicitação pré-autenticada for excluído ou perder as permissões necessárias após a criação da solicitação, a solicitação não funcionará mais.

Usando uma Solicitação Pré-autenticada

As permissões do criador da solicitação pré-autenticada são verificadas toda vez que você usa uma solicitação pré-autenticada. A solicitação pré-autenticada não funciona mais quando ocorre um dos seguintes casos:

  • As permissões do criador da solicitação pré-autenticada foram alteradas.

  • O usuário que criou a solicitação pré-autenticada for excluído.

  • O usuário federado que criou a solicitação pré-autenticada tiver perdido os recursos de usuário que ele tinha quando criou a solicitação.

  • A solicitação pré-autenticada tiver expirado ou tiver sido excluída.

Opções

Você pode criar uma solicitação pré-autenticada que conceda acesso de leitura, gravação ou leitura/gravação a um dos seguintes itens:

  • Todos os objetos do bucket.

  • Um objeto específico no bucket.

  • Todos os objetos no bucket que têm um prefixo especificado.

Para solicitações que se aplicam a vários objetos, você também pode decidir se deseja permitir que os usuários listem esses objetos.

Escopo e Restrições

Entenda o seguinte escopo e restrições referentes a solicitações pré-autenticadas:

  • É possível criar um número ilimitado de solicitações pré-autenticadas.

  • Uma solicitação pré-autenticada criada para todos os objetos em um bucket permite que os usuários façam upload de qualquer número de objetos para o bucket.

  • A data de expiração é obrigatória, mas não tem limites. Você pode defini-la para qualquer data futura que desejar.

  • Não é possível editar uma solicitação pré-autenticada. Para alterar as opções de acesso do usuário ou ativar a listagem de objetos em resposta à alteração de requisitos, você deve criar uma nova solicitação pré-autenticada.

  • Por padrão, as solicitações pré-autenticadas de um bucket ou objetos com prefixo não podem ser usadas para listar objetos. Você pode ativar explicitamente a listagem de objetos ao criar uma solicitação pré-autenticada.

  • Quando você cria uma solicitação pré-autenticada que limita o escopo a objetos com um prefixo específico, os usuários da solicitação só podem chamar as operações GET e PUT para objetos com o nome do prefixo especificado na solicitação. Falha ao tentar chamar as operações GET ou PUT para um objeto sem o prefixo especificado ou com outro prefixo.

  • O destino e as ações para uma solicitação pré-autenticada são baseados nas permissões do criador. A solicitação não está, no entanto, vinculada às credenciais de acesso da conta do criador. Se as credenciais de acesso do criador forem alteradas, uma solicitação pré-autenticada não será afetada.

  • A exclusão de uma solicitação pré-autenticada revoga o acesso do usuário ao bucket ou objeto associado.

  • As solicitações pré-autenticadas não podem ser usadas para excluir buckets ou objetos.

  • Não é possível excluir um bucket que tenha uma solicitação pré-autenticada associada a esse bucket ou a um objeto nesse bucket.