As políticas de bucket são políticas de autorização baseadas em recursos. Os proprietários de buckets podem usar essas políticas 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, modificar, consultar ou excluir políticas de bucket.
Notas de uso
Para adicionar ou modificar políticas de bucket, você precisa da permissão
oss:PutBucketPolicy. Para consultar políticas de bucket, você precisa da permissãooss:GetBucketPolicy. Para excluir políticas de bucket, você precisa da permissãooss:DeleteBucketPolicy. Para mais informações, consulte Grant a custom policy.A partir do ossutil 1.6.16, use diretamente ossutil como o nome do binário na linha de comando. Não é necessário atualizar o nome do binário de acordo com o sistema operacional. Em versões anteriores à 1.6.16, atualize o nome do binário conforme o sistema operacional. Para mais informações, consulte ossutil command reference.
Para mais informações sobre políticas de bucket, consulte Bucket Policy.
Adicione ou modifique políticas de bucket
Antes de adicionar ou modificar políticas de bucket, crie um arquivo JSON no computador local e configure as políticas de bucket nesse arquivo. É possível configurar várias políticas de bucket em um único arquivo JSON. No entanto, o tamanho total das políticas de bucket não pode exceder 16 KB.
Ao adicionar ou modificar políticas de bucket, o ossutil lê as políticas do arquivo JSON e as adiciona ao bucket especificado. Ao adicionar políticas de bucket, as políticas existentes são substituídas.
-
Sintaxe do comando
ossutil bucket-policy --method put oss://bucketname local_json_fileA tabela a seguir descreve os parâmetros acima.
Parâmetro
Descrição
bucketname
O nome do bucket no qual você deseja adicionar ou modificar políticas de bucket.
local_json_file
O nome do arquivo JSON local onde você configura as políticas de bucket.
-
Exemplos
-
Crie um arquivo chamado local_json_file no computador local e configure diferentes políticas de bucket para diferentes cenários.
Os exemplos a seguir mostram como configurar políticas de bucket comuns.
NotaEstes exemplos ilustram como o proprietário de um bucket com UID
174649585760****no parâmetro Resource configura políticas de bucket para conceder diferentes permissões a usuários do RAM, como um usuário do RAM com UID20214760404935****no parâmetro Principal e um usuário anônimo*.-
especifique que apenas solicitações anônimas provenientes do endereço IP especificado podem acessar todos os recursos em um bucket chamado 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" } -
Conceda a um usuário do RAM permissões de somente leitura nos diretórios
hangzhou/2020ehangzhou/2015de um bucket chamado 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" } -
Rejeite solicitações anônimas para todos os objetos no diretório
hangzhou/2021/de um bucket chamado 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 a seguir for exibida, a política de bucket foi adicionada ao bucket examplebucket:
1.125101(s) elapsed
-
Consulte políticas de bucket
-
Sintaxe do comando
ossutil bucket-policy --method get oss://bucketname local_json_fileParâmetro
Descrição
bucketname
O nome do bucket cujas políticas de bucket você deseja consultar.
local_json_file
O arquivo JSON local usado para armazenar as políticas de bucket consultadas. Caso não especifique esse parâmetro, as políticas de bucket consultadas serão exibidas, mas não armazenadas no arquivo JSON.
-
Exemplos
execute o comando a seguir para consultar as políticas de bucket de um bucket chamado examplebucket:
ossutil bucket-policy --method get oss://examplebucket local_json_fileSe a saída a seguir for exibida, as políticas de bucket do examplebucket foram consultadas e gravadas no arquivo JSON local:
0.212407(s) elapsed
Exclua políticas de bucket
Se você não precisar mais usar políticas de bucket para autorizar outros usuários a acessar seus recursos do OSS, exclua as políticas de bucket configuradas.
-
Sintaxe do comando
ossutil bucket-policy --method delete oss://bucketname -
Exemplos
execute o comando a seguir para excluir todas as políticas de bucket de um bucket chamado examplebucket:
ossutil bucket-policy --method delete oss://examplebucketSe a saída a seguir for exibida, todas as políticas de bucket do examplebucket foram excluídas:
0.530750(s) elapsed
Opções comuns
Para acessar um bucket em uma região diferente, use -e e especifique o endpoint. Para acessar um bucket de outra conta da Alibaba Cloud, use -i para o AccessKey ID e -k para o AccessKey secret.
Por exemplo, execute o comando a seguir para configurar uma política de bucket para um bucket chamado examplebucket, localizado na região China (Hangzhou) e pertencente a outra conta da Alibaba Cloud:
ossutil bucket-policy --method put oss://examplebucket local_json_file -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret