Uma lista de controle de acesso (ACL) é uma política que concede permissões de acesso a buckets e objetos. Defina uma ACL ao criar um bucket ou carregar um objeto, ou modifique-a a qualquer momento. Use o comando set-acl para definir ou modificar a ACL de um bucket ou objeto.
Observações de uso
Para definir ou modificar a ACL de um bucket, você precisa da permissão
oss:PutBucketAcl. Para definir ou modificar a ACL de um objeto, é necessária a permissãooss:PutObjectAcl. Já para modificar as ACLs de vários objetos em lote, são exigidas as permissõesoss:PutObjectAcleoss:ListObjects. Para mais informações, consulte Grant custom permissions to a RAM user.A partir da versão 1.6.16 do ossutil, use o nome do binário diretamente na linha de comando, sem precisar renomeá-lo conforme o sistema operacional. Caso utilize uma versão anterior à 1.6.16, será necessário renomear o binário de acordo com seu sistema operacional. Para mais detalhes, veja ossutil command reference.
Definir ou modificar a ACL de um bucket
-
Sintaxe do comando
ossutil set-acl oss://bucketname acl -b [--retry-times <value>]A tabela a seguir descreve os parâmetros e opções.
Item de configuração
Descrição
bucketname
Nome do bucket cuja ACL você deseja definir ou modificar.
acl
ACL do bucket. Valores válidos:
-
private (padrão): Somente o proprietário do bucket pode ler e gravar objetos nele. Outros usuários não têm acesso aos objetos do bucket.
-
public-read: Apenas o proprietário do bucket pode gravar objetos. Demais usuários, incluindo anônimos, conseguem somente ler os objetos. Essa configuração pode causar vazamento de dados e custos inesperadamente altos. Se alguém fizer upload de conteúdo proibido, seus direitos legais podem ser violados. Evite configurar a ACL como public-read, a menos que seja estritamente necessário.
-
public-read-write: Todos os usuários, inclusive anônimos, podem ler e gravar objetos no bucket. Isso pode resultar em vazamento de dados e cobranças elevadas. Tenha cautela ao definir a ACL como public-read-write.
-b
Por padrão, este comando define a ACL de um objeto. Para aplicar a configuração a um bucket, inclua esta opção.
--retry-times
Número de tentativas em caso de erro. Valor padrão: 10. Intervalo válido: 1 a 500.
-
-
Exemplo
Defina a ACL do bucket examplebucket como private.
ossutil set-acl oss://examplebucket private -b
Definir ou modificar a ACL de um objeto
-
Sintaxe do comando
ossutil set-acl oss://bucketname[/prefix] acl [-r] [--include <value>] [--exclude <value>] [--version-id <value>] [--job <value>] [--retry-times <value>] [--encoding-type <value>]A tabela abaixo detalha os parâmetros e opções disponíveis.
Item de configuração
Descrição
bucketname
Nome do bucket.
prefix
Recurso dentro do bucket, como uma pasta ou arquivo.
acl
ACL do objeto. Valores válidos:
-
default: O objeto herda a ACL do bucket.
-
private (padrão): Apenas o proprietário do bucket tem permissão para ler e gravar o objeto. Outros usuários não podem acessá-lo.
-
public-read: A gravação é restrita ao proprietário do bucket. Qualquer outro usuário, mesmo anônimo, consegue apenas ler o objeto. Tal configuração pode gerar vazamento de dados e despesas imprevistas. Além disso, uploads de conteúdo proibido por terceiros podem infringir seus direitos legais. Configure como public-read somente se for indispensável.
-
public-read-write: Permite que todos os usuários, incluindo anônimos, leiam e gravem o objeto. Existe risco de vazamento de dados e custos elevados. Use essa configuração com extrema cautela.
-r
Define recursivamente a ACL para todos os objetos correspondentes ao prefixo especificado. Sem essa opção, o ossutil aplica a alteração apenas ao objeto único indicado na URL da cloud.
--include
Inclui exclusivamente os objetos que atendem às condições definidas.
Para mais informações, consulte --include and --exclude options.
--exclude
Exclui os objetos que correspondem às condições especificadas.
Para mais informações, consulte --include and --exclude options.
--version-id
ID da versão do objeto. Esta opção aplica-se apenas a objetos em buckets com versionamento ativado ou suspenso.
--job
Quantidade de tarefas simultâneas para operações em lote. Valor padrão: 3. Intervalo válido: 1 a 10000.
--retry-times
Número de novas tentativas caso ocorra falha. Valor padrão: 10. Intervalo válido: 1 a 500.
--encoding-type
Tipo de codificação do prefixo após
oss://bucket_name. Defina o valor como url. Se você não especificar esta opção, o prefixo não será codificado. -
-
Exemplos
-
Configure a ACL do objeto exampleobject.txt, localizado no bucket examplebucket, como private.
ossutil set-acl oss://examplebucket/exampleobject.txt private -
Altere a ACL de uma versão específica (
CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****) do objeto exampleobject.txt no bucket examplebucket para private.ossutil set-acl oss://examplebucket/exampleobject.txt private --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3**** -
Aplique a ACL default a todos os objetos com o prefixo test dentro do bucket examplebucket.
ossutil set-acl oss://examplebucket/test default -r -
Defina a ACL como private para todos os arquivos com extensão .jpg no bucket examplebucket.
ossutil set-acl oss://examplebucket private --include "*.jpg" -r -
Configure a ACL como default para todos os objetos no bucket examplebucket que contenham abc no nome, exceto aqueles com extensão .png ou .txt.
ossutil set-acl oss://examplebucket default --include "*abc*" --exclude "*.png" --exclude "*.txt" -r
-
Opções comuns
Para acessar um bucket em outra região, utilize -e para especificar o endpoint. Quando precisar acessar um bucket pertencente a outra conta Alibaba Cloud, informe o AccessKey ID com -i e o AccessKey secret com -k.
Por exemplo, para definir a ACL de um bucket chamado testbucket como private, execute o comando abaixo. O bucket está localizado na região China (Shanghai) e pertence a outra conta Alibaba Cloud.
ossutil set-acl oss://testbucket private -b -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret