Tous les produits
Search
Centre de documentation

Object Storage Service:put-bucket-policy

Dernière mise à jour :Aug 18, 2026

L'interface put-bucket-policy configure une politique de contrôle d'accès (Policy) sur un compartiment (Bucket) ou un Bucket vectoriel spécifié. Elle autorise le compte Alibaba Cloud actuel, d'autres comptes Alibaba Cloud, ainsi que des utilisateurs ou rôles RAM spécifiques à accéder aux ressources du Bucket.

Remarques importantes

Par défaut, le compte Alibaba Cloud dispose des autorisations nécessaires pour définir une stratégie d'autorisation sur un compartiment spécifique. Pour configurer cette stratégie via un utilisateur RAM ou le service STS, vous devez disposer de l'autorisation oss:PutBucketPolicy. Pour plus de détails, consultez la rubrique Grant a custom policy.

Format de la commande

ossutil api put-bucket-policy --bucket value --body value [flags]

Paramètre

Type

Description

--bucket

string

Nom du Bucket.

--body

string

Corps de la requête au format JSON, définissant en détail les droits d'accès.

Remarque

La commande put-bucket-policy correspond à l'API PutBucketPolicy.

--body

L'option --body prend en charge les syntaxes XML et JSON.

  • Syntaxe XML :

    La stratégie d'autorisation comprend les champs Version et Statement, comme illustré ci-dessous :

    <?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 : version de la stratégie d'autorisation, par défaut "1".

    • Statement : tableau contenant une ou plusieurs déclarations de stratégie, chacune définissant un ensemble de droits.

      • Action : liste des opérations autorisées ou refusées, telles que oss:PutObject et oss:GetObject.

      • Effect : effet de la règle. Valeurs possibles : Allow ou Deny.

      • Principal : sujet auquel s'applique la stratégie, ici l'UID de l'utilisateur spécifié.

      • Resource : portée des ressources concernées par la stratégie, selon le format OSS.

  • Syntaxe JSON :

    {
      "Version": "1",
      "Statement": [
        {
          "Action": ["oss:PutObject", "oss:GetObject"],
          "Effect": "Deny",
          "Principal": ["1234567890"],
          "Resource": ["acs:oss:*:1234567890:*/*"]
        }
      ]
    }
Remarque
  • Pour plus d'informations sur les champs Version et Statement, consultez la rubrique Examples.

  • Pour les options de ligne de commande globales prises en charge, reportez-vous à la section Global command-line options.

Exemples d'utilisation

Bucket

Les exemples suivants montrent comment configurer une stratégie d'autorisation pour le compartiment nommé examplebucket, afin de refuser les opérations PutObject et GetObject pour un utilisateur spécifié :

  • Utilisez un fichier de configuration XML. Le contenu du fichier cors-configuration.xml est le suivant :

    <?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 
  • Utilisez un fichier de configuration JSON. Le contenu du fichier cors-configuration.json est le suivant :

    {
      "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
  • Utilisez directement les paramètres JSON :

    ossutil api put-bucket-policy --bucket examplebucket --body "{\"Version\":\"1\",\"Statement\":[{\"Action\":[\"oss:PutObject\",\"oss:GetObject\"],\"Effect\":\"Deny\",\"Principal\":[\"1234567890\"],\"Resource\":[\"acs:oss:*:1234567890:*/*\"]}]}"

Bucket vectoriel

Remarque : Les espaces de stockage vectoriels nécessitent l'utilisation de noms de domaine dédiés. En pratique, vous devez utiliser la commande vectors-api et inclure le paramètre --account-id.

L'exemple ci-dessous illustre la configuration d'une stratégie d'autorisation pour un espace de stockage vectoriel, permettant à un utilisateur spécifique d'effectuer des opérations liées aux vecteurs. Utilisez un fichier de configuration JSON dont le contenu (vector-policy.json) est le suivant :

{
  "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

Configurez la stratégie du Bucket vectoriel via des paramètres JSON directs :

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