A interface put-bucket-policy configura políticas de controle de acesso (Policy) em um Bucket ou Vector Bucket específico. Esse recurso autoriza a conta atual do Alibaba Cloud, outras contas do Alibaba Cloud, usuários RAM ou funções RAM a acessar recursos no Bucket.
Considerações
Por padrão, a conta Alibaba Cloud tem permissão para definir políticas de autorização em Buckets específicos. Para configurar essa política com um usuário RAM ou STS, você precisa da permissão oss:PutBucketPolicy. Para mais detalhes, consulte Conceder uma política personalizada.
Formato do comando
ossutil api put-bucket-policy --bucket value --body value [flags]
|
Parâmetro |
Tipo |
Descrição |
|
--bucket |
string |
Nome do Bucket. |
|
--body |
string |
Corpo da requisição em formato JSON que define as permissões de acesso. |
O comando put-bucket-policy corresponde à interface da API PutBucketPolicy.
--body
A opção de configuração --body aceita sintaxe XML e JSON.
-
Sintaxe XML:
A política de autorização contém os campos
VersioneStatement. Exemplo:<?xml version="1.0" encoding="UTF-8"?> <Policy> <Version>1</Version> <Statement> <Action> <Item>oss:PutObject</Item> <Item>oss:GetObject</Item> </Action> <Effect>Deny</Effect> <Principal> <Item>*</Item> </Principal> <Resource> <Item>acs:oss:*:1234567890:*/*</Item> </Resource> </Statement> </Policy>Version: Versão da política de autorização. O valor padrão é "1".-
Statement: Array com uma ou mais declarações de política. Cada declaração define um conjunto de permissões operacionais.Action: Lista de operações permitidas ou negadas, comooss:PutObjecteoss:GetObject.Effect: Define o efeito da regra. Os valores aceitos sãoAllowouDeny.Principal: Especifica as entidades às quais a política se aplica. Neste caso, refere-se ao UID dos usuários indicados.Resource: Determina o escopo de recursos abrangido pela política, seguindo o formato especificado pelo OSS.
-
Sintaxe JSON:
{ "Version": "1", "Statement": [ { "Action": ["oss:PutObject", "oss:GetObject"], "Effect": "Deny", "Principal": ["1234567890"], "Resource": ["acs:oss:*:1234567890:*/*"] } ] } Para obter mais informações sobre os campos
VersioneStatement, consulte Exemplos.Para detalhes sobre as opções globais de linha de comando suportadas, consulte Opções globais de linha de comando.
-
Use um arquivo de configuração XML. O conteúdo de cors-configuration.xml deve ser:
<?xml version="1.0" encoding="UTF-8"?> <Policy> <Version>1</Version> <Statement> <Action> <Item>oss:PutObject</Item> <Item>oss:GetObject</Item> </Action> <Effect>Deny</Effect> <Principal> <Item>*</Item> </Principal> <Resource> <Item>acs:oss:*:1234567890:*/*</Item> </Resource> </Statement> </Policy>ossutil api put-bucket-policy --bucket examplebucket --body file://cors-configuration.xml -
Use um arquivo de configuração JSON. O conteúdo de cors-configuration.json deve ser:
{ "Version": "1", "Statement": [ { "Action": ["oss:PutObject", "oss:GetObject"], "Effect": "Deny", "Principal": ["1234567890"], "Resource": ["acs:oss:*:1234567890:*/*"] } ] }ossutil api put-bucket-policy --bucket examplebucket --body file://cors-configuration.json -
Passe a configuração JSON diretamente como parâmetro:
ossutil api put-bucket-policy --bucket examplebucket --body "{\"Version\":\"1\",\"Statement\":[{\"Action\":[\"oss:PutObject\",\"oss:GetObject\"],\"Effect\":\"Deny\",\"Principal\":[\"1234567890\"],\"Resource\":[\"acs:oss:*:1234567890:*/*\"]}]}"
Exemplos de uso
Bucket
Os exemplos abaixo mostram como definir uma política de autorização para o Bucket examplebucket, negando as operações PutObject e GetObject aos usuários especificados:
Vector Bucket
Nota : Buckets vetoriais exigem um domínio dedicado. Na prática, use o comando vectors-api acompanhado do parâmetro --account-id.
O exemplo a seguir mostra a definição de uma política de autorização para um Vector Bucket, permitindo que usuários específicos executem operações relacionadas a vetores. Use um arquivo de configuração JSON com o seguinte conteúdo em vector-policy.json:
{
"Version": "1",
"Statement": [
{
"Action": [
"ossvector:PutVectors",
"ossvector:GetVectors",
"ossvector:QueryVectors"
],
"Effect": "Allow",
"Principal": ["1234567890"],
"Resource": ["acs:ossvector:cn-hangzhou:1234567890:bucket/vector-example/*"]
},
{
"Action": ["ossvector:DeleteVectors"],
"Effect": "Deny",
"Principal": ["9876543210"],
"Resource": ["acs:ossvector:cn-hangzhou:1234567890:bucket/vector-example/*"]
}
]
}
ossutil vectors-api put-bucket-policy --bucket vector-example --body file://vector-policy.json
Configure a política do Vector Bucket passando o JSON diretamente como parâmetro:
ossutil vectors-api put-bucket-policy --bucket vector-example --body "{\"Version\":\"1\",\"Statement\":[{\"Action\":[\"ossvector:PutVectors\",\"ossvector:GetVectors\",\"ossvector:QueryVectors\"],\"Effect\":\"Allow\",\"Principal\":[\"1234567890\"],\"Resource\":[\"acs:ossvector:cn-hangzhou:1234567890:bucket/vector-example/*\"]}]}"