Todos os produtos
Search
Central de documentação

Object Storage Service:put-bucket-policy

Última atualização: Jul 03, 2026

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.

Nota

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 Version e Statement. 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, como oss:PutObject e oss:GetObject.

      • Effect: Define o efeito da regra. Os valores aceitos são Allow ou Deny.

      • 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:*/*"]
        }
      ]
    }
  • Nota

    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:

    • 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:*/*\"]}]}"

    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/*\"]}]}"