As políticas de bucket são políticas de autorização baseadas em recursos. Os proprietários de buckets podem usá-las para autorizar outros usuários a acessar recursos específicos no Object Storage Service (OSS). Este tópico descreve como executar o comando bucket-policy para adicionar, modifique, consultar ou exclua políticas de bucket.
Observações de uso
Para adicionar ou modifique políticas de bucket, é necessária a permissão
oss:PutBucketPolicy. Para consultar políticas de bucket, é necessária a permissãooss:GetBucketPolicy. Para exclua políticas de bucket, é necessária a permissãooss:DeleteBucketPolicy. Para mais informações, consulte Conceder uma política personalizada.No ossutil 1.6.16 e versões posteriores, use diretamente ossutil como nome do binário na linha de comando, sem necessidade de alteração conforme o sistema operacional. Em versões anteriores à 1.6.16, atualize o nome do binário de acordo com o sistema operacional. Para mais detalhes, consulte Guia de início rápido da ferramenta de linha de comando ossutil.
Para mais informações sobre políticas de bucket, consulte Política de Bucket.
Adicionar ou modifique políticas de bucket
Antes de adicionar ou modifique políticas de bucket, crie um arquivo JSON no computador local e defina as políticas nesse arquivo. É possível configure várias políticas em um único arquivo JSON, desde que o tamanho total não ultrapasse 16 KB.
Ao adicionar ou modifique políticas, o ossutil lê as definições do arquivo JSON e as aplica ao bucket especificado. As novas políticas substituem integralmente as políticas existentes no bucket.
-
Sintaxe do comando
ossutil bucket-policy --method put oss://bucketname local_json_fileA tabela a seguir descreve os parâmetros mencionados.
Parâmetro
Descrição
bucketname
Nome do bucket onde você deseja adicionar ou modifique as políticas.
local_json_file
Nome do arquivo JSON local que contém as configurações das políticas de bucket.
-
Exemplos
-
Crie um arquivo chamado local_json_file no computador local e configure diferentes políticas de bucket conforme o cenário desejado.
Os exemplos abaixo ilustram a configuração de políticas de bucket comuns.
NotaNestes exemplos, o proprietário do bucket com UID
174649585760****no parâmetro Resource configura políticas para conceder permissões distintas a usuários RAM, como o usuário RAM com UID20214760404935****no parâmetro Principal, e também a um usuário anônimo representado por*.-
Permitir que apenas solicitações anônimas originadas de um endereço IP específico acessem todos os recursos no bucket examplebucket:
{ "Statement": [ { "Action": [ "oss:GetObject", "oss:GetObjectAcl", "oss:ListObjects", "oss:RestoreObject", "oss:GetVodPlaylist", "oss:ListObjectVersions", "oss:GetObjectVersion", "oss:GetObjectVersionAcl", "oss:RestoreObjectVersion" ], "Condition": { "IpAddress": { "acs:SourceIp": [ "10.10.10.10" ] } }, "Effect": "Allow", "Principal": [ "*" ], "Resource": [ "acs:oss:*:174649585760xxxx:examplebucket/*" ] }, { "Action": [ "oss:ListObjects", "oss:GetObject" ], "Condition": { "StringLike": { "oss:Prefix": [ "*" ] }, "IpAddress": { "acs:SourceIp": [ "10.10.10.10" ] } }, "Effect": "Allow", "Principal": [ "*" ], "Resource": [ "acs:oss:*:174649585760xxxx:examplebucket" ] } ], "Version": "1" } -
Conceder permissões somente leitura a um usuário RAM nos diretórios
hangzhou/2020ehangzhou/2015do bucket examplebucket:{ "Statement": [ { "Action": [ "oss:GetObject", "oss:GetObjectAcl", "oss:ListObjects", "oss:RestoreObject", "oss:GetVodPlaylist", "oss:ListObjectVersions", "oss:GetObjectVersion", "oss:GetObjectVersionAcl", "oss:RestoreObjectVersion" ], "Effect": "Allow", "Principal": [ "20214760404935xxxx" ], "Resource": [ "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2020/*", "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2015/*" ] }, { "Action": [ "oss:ListObjects", "oss:GetObject" ], "Condition": { "StringLike": { "oss:Prefix": [ "hangzhou/2020/*", "hangzhou/2015/*" ] } }, "Effect": "Allow", "Principal": [ "20214760404935xxxx" ], "Resource": [ "acs:oss:*:174649585760xxxx:examplebucket" ] } ], "Version": "1" } -
Bloquear solicitações anônimas para todos os objetos no diretório
hangzhou/2021/do bucket examplebucket:{ "Statement": [ { "Action": [ "oss:RestoreObject", "oss:ListObjects", "oss:AbortMultipartUpload", "oss:PutObjectAcl", "oss:GetObjectAcl", "oss:ListParts", "oss:DeleteObject", "oss:PutObject", "oss:GetObject", "oss:GetVodPlaylist", "oss:PostVodPlaylist", "oss:PublishRtmpStream", "oss:ListObjectVersions", "oss:GetObjectVersion", "oss:GetObjectVersionAcl", "oss:RestoreObjectVersion" ], "Effect": "Deny", "Principal": [ "*" ], "Resource": [ "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2021/*" ] }, { "Action": [ "oss:ListObjects", "oss:GetObject" ], "Condition": { "StringLike": { "oss:Prefix": [ "hangzhou/2021/*" ] } }, "Effect": "Deny", "Principal": [ "*" ], "Resource": [ "acs:oss:*:174649585760xxxx:examplebucket" ] } ], "Version": "1" }
-
-
Adicione uma política de bucket ao bucket examplebucket.
ossutil bucket-policy --method put oss://examplebucket local_json_fileSe a saída abaixo for exibida, a política foi adicionada com sucesso ao bucket examplebucket:
1.125101(s) elapsed
-
Consultar políticas de bucket
-
Sintaxe do comando
ossutil bucket-policy --method get oss://bucketname local_json_fileParâmetro
Descrição
bucketname
Nome do bucket cujas políticas você deseja consultar.
local_json_file
Arquivo JSON local destinado a armazenar as políticas consultadas. Caso este parâmetro não seja especificado, as políticas serão exibidas na tela, mas não salvas em arquivo.
-
Exemplos
Execute o comando abaixo para consultar as políticas do bucket examplebucket:
ossutil bucket-policy --method get oss://examplebucket local_json_fileA seguinte saída indica que as políticas do examplebucket foram consultadas e gravadas no arquivo JSON local:
0.212407(s) elapsed
Exclua políticas de bucket
Caso não precise mais autorizar outros usuários a acessar seus recursos do OSS por meio de políticas de bucket, exclua as políticas configuradas.
-
Sintaxe do comando
ossutil bucket-policy --method delete oss://bucketname -
Exemplos
Execute o comando a seguir para exclua todas as políticas do bucket examplebucket:
ossutil bucket-policy --method delete oss://examplebucketA seguinte saída indica que todas as políticas do examplebucket foram excluídas:
0.530750(s) elapsed
Opções comuns
Para acessar um bucket em outra região, utilize -e para especifique o endpoint. Para acessar um bucket pertencente a outra conta Alibaba Cloud, informe o AccessKey ID com -i e o AccessKey Secret com -k.
Por exemplo, execute o comando abaixo para configure uma política para o bucket examplebucket, localizado na região China (Hangzhou) e pertencente a outra conta Alibaba Cloud:
ossutil bucket-policy --method put oss://examplebucket local_json_file -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret
Consulte Opções comuns.