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.
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
eOBJECT_OVERWRITE
, além dePAR_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
eOBJECT_OVERWRITE
além das permissõesPAR_MANAGE
.
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
ePUT
para objetos com o nome do prefixo especificado na solicitação. Falha ao tentar chamar as operaçõesGET
ouPUT
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.