Permitindo acesso público

Às vezes, os dados são destinados a serem compartilhados. Os depósitos podem reter conjuntos de dados abertos para pesquisa acadêmica e privada ou repositórios de imagem que são usados por aplicativos da web e redes de entrega de conteúdo. Torne esses depósitos acessíveis usando o grupo Acesso público.

Há três funções do IAM que podem ser usadas para o acesso público a um depósito: Administrator, ContentReader e ObjectReader A diferença entre eles é que o Administrator e o ContentReader podem listar os objetos em um depósito, que é útil para aplicativos que requerem facilidade de listagem (por exemplo, uma UI da web), além de objetos de leitura. Para obter mais informações, consulte a documentação de referência do IAM

Se o External Identity Isolation (EII) estiver definido como Limited, o acesso público falhará porque as solicitações anônimas não têm ID de conta e não podem atender ao requisito de correspondência de identidade.

Usando o console para configurar o acesso público

Primeiro, certifique-se de que você tenha um depósito. Caso contrário, siga o tutorial de introdução para se familiarizar com o console.

Ativar o acesso público

Antes de habilitar o acesso público a um bucket, o grupo “Acesso Público” deve estar habilitado no nível da conta. Somente o titular da conta ou um usuário com a função de Administrador de Grupos de Acesso do IAM pode alterar essa configuração. Para verificar ou ativar essa opção, acesse Gerenciar > Acesso (IAM) > Configurações e confirme se a opção Acesso público está definida como Ativado. Se essa configuração no nível da conta estiver desativada, os controles no nível do bucket descritos a seguir não terão efeito.

  1. No painel do console do IBM Cloud, selecione Armazenamento para visualizar sua lista de recursos.
  2. Em seguida, selecione a instância de serviço com seu depósito no menu Armazenamento. Isso leva você para o Object Storage Console.
  3. Escolha o depósito que você deseja que seja publicamente acessível. Lembre-se de que essa política torna todos os objetos de um bucket disponíveis para download por qualquer pessoa que possua o URL adequado.
  4. Selecione a aba “Permissões” entre as abas de navegação do bucket.
  5. Role a página até a seção “Acesso público ” e clique em “Criar política de acesso ”.
  6. Depois de ler o aviso, escolha Ativar.
  7. Agora todos os objetos nesse depósito são publicamente acessíveis!

Desativar o acesso público

  1. De qualquer lugar no console do IBM Cloud, selecione o menu Gerenciar e o Acesso (IAM).
  2. Selecione Grupos de acesso no menu de navegação.
  3. Selecione Acesso público para ver uma lista de todas as políticas de acesso público atualmente em uso.
  4. Localize a política que corresponde ao depósito que você deseja retornar ao controle de acesso cumprido.
  5. Na lista de ações na extrema direita da entrada de política, escolha Remover.
  6. Confirme a caixa de diálogo e a política é agora removida do depósito.

Permitindo acesso público em objetos individuais

Para tornar um objeto publicamente acessível por meio da API de REST, um cabeçalho x-amz-acl: public-read pode ser incluído na solicitação. A configuração desse cabeçalho efetua bypass de qualquer verificação de política do IAM e permite as solicitações HEAD e GET não autenticadas. Para obter mais informações sobre terminais, consulte Terminais e locais de armazenamento.

Além disso, as credenciais HMAC tornam possível permitir o acesso público temporário que usa URLs pré-assinadas.

Fazer upload de um objeto público

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}" \
     -H "x-amz-acl: public-read" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: text/plain; charset=utf-8" \
     -d "{object-contents}"

Permitir acesso público a um objeto existente

Usando o parâmetro de consulta ?acl sem uma carga útil e o cabeçalho x-amz-acl: public-read permite acesso público ao objeto sem a necessidade de sobrescrever os dados.

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
     -H "x-amz-acl: public-read" \
     -H "Authorization: Bearer {token}"

Tornar um objeto público privado novamente

Usar o parâmetro de consulta ?acl sem uma carga útil e um cabeçalho vazio x-amz-acl: revoga o acesso público ao objeto sem precisar sobrescrever os dados.

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
     -H "Authorization: Bearer {token}" \
     -H "x-amz-acl:"

Websites estáticos

Embora o IBM Cloud Object Storage não ofereça suporte à hospedagem automática de sites estáticos, é possível configurar manualmente um servidor web e usá-lo para disponibilizar conteúdo acessível ao público hospedado em um bucket. Para obter mais informações, consulte a visão geral de opções de website estático