Une liste de contrôle d'accès (ACL) est une politique qui régit l'accès aux compartiments et aux objets. Vous pouvez définir une ACL lors de la création d'un compartiment ou du chargement d'un objet, puis la modifier à tout moment. La commande set-acl configure ou modifie l'ACL d'un compartiment ou d'un objet.
Remarques
Pour configurer ou modifier l'ACL d'un compartiment, vous devez disposer de l'autorisation
oss:PutBucketAcl. Pour configurer ou modifier l'ACL d'un objet, vous devez disposer de l'autorisationoss:PutObjectAcl. Pour modifier les ACL de plusieurs objets via une opération par lot, vous devez détenir à la fois les autorisationsoss:PutObjectAcletoss:ListObjects. Pour plus d'informations, consultez la rubrique Accorder une stratégie personnalisée.À partir de la version 1.6.16 d'ossutil, vous pouvez utiliser directement « ossutil » comme nom binaire. Pour les versions antérieures, utilisez le nom binaire spécifique à votre système d'exploitation. Pour en savoir plus, reportez-vous au guide Démarrage rapide de l'outil de ligne de commande ossutil.
Configurer ou modifier l'ACL d'un compartiment
-
Syntaxe
ossutil set-acl oss://bucketname acl -b [--retry-times <value>]Les paramètres et options sont décrits ci-dessous.
Paramètre/Option
Description
bucketname
Nom du compartiment cible.
acl
ACL du compartiment. Valeurs possibles :
private (par défaut) : seul le propriétaire du compartiment dispose d'un accès en lecture et en écriture aux objets qu'il contient.
public-read : seul le propriétaire du compartiment peut écrire. Tous les autres utilisateurs, y compris les anonymes, ont un accès en lecture seule. L'octroi d'un accès public en lecture peut entraîner des fuites de données et des frais imprévus. En cas de téléchargement de contenu illicite par des utilisateurs malveillants, vous pourriez engager votre responsabilité juridique. N'accordez cet accès que si cela s'avère strictement nécessaire.
public-read-write : toute personne, y compris les utilisateurs anonymes, peut lire et écrire des objets dans le compartiment. Cette autorisation permet à n'importe quel utilisateur de lire, d'écrire et de supprimer des objets, ce qui expose vos données à des pertes et génère des coûts inattendus. Utilisez cette option avec une extrême prudence.
-b
Indique que l'opération cible un compartiment. Sans cette option, la commande s'applique par défaut à un objet.
--retry-times
Nombre de tentatives en cas d'échec de l'opération. Valeur par défaut : 10. Plage valide : 1 à 500.
-
Exemple
Exécutez la commande suivante pour définir l'ACL du compartiment examplebucket sur private :
ossutil set-acl oss://examplebucket private -b
Configurer ou modifier l'ACL des objets
-
Syntaxe
ossutil set-acl oss://bucketname[/prefix] acl [-r] [--include <value>] [--exclude <value>] [--version-id <value>] [--job <value>] [--retry-times <value>] [--encoding-type <value>]Les paramètres et options sont décrits ci-dessous.
Paramètre/Option
Description
bucketname
Nom du compartiment contenant les objets dont vous souhaitez configurer ou modifier l'ACL.
prefix
Préfixe présent dans les noms des ressources, tels que les répertoires et les objets.
acl
ACL des objets. Valeurs possibles :
default : l'ACL des objets correspond à celle du compartiment dans lequel ils sont stockés.
private (par défaut) : seul le propriétaire du compartiment peut lire et écrire les objets. Les autres utilisateurs ne peuvent pas y accéder.
public-read : seul le propriétaire du compartiment peut écrire dans les objets. Les autres utilisateurs, y compris les anonymes, disposent d'un accès en lecture seule. Cela peut entraîner un accès non restreint aux données de votre compartiment et des frais élevés inattendus. Si un utilisateur télécharge des données interdites, vos droits légaux pourraient être violés. Nous vous recommandons de ne pas définir l'ACL sur public-read sauf nécessité absolue.
public-read-write : tous les utilisateurs, y compris les anonymes, peuvent lire et écrire les objets du compartiment. Cela expose vos données à un accès non restreint et risque de générer des frais imprévus. Soyez extrêmement prudent lorsque vous définissez l'ACL sur public-read-write.
-r
Si vous spécifiez cette option, ossutil configure l'ACL de tous les objets dont le nom contient le préfixe indiqué. Sans cette option, ossutil applique la modification uniquement à l'objet désigné par cloud_url.
--include
Indique que la commande s'applique à tous les objets répondant aux conditions spécifiées.
Pour plus d'informations, voir --include et --exclude.
--exclude
Indique que la commande s'applique à tous les objets ne répondant pas aux conditions spécifiées.
Pour plus d'informations, voir --include et --exclude.
--version-id
ID de version de l'objet dont vous souhaitez configurer ou modifier l'ACL. Ce paramètre s'applique uniquement aux objets situés dans des compartiments pour lesquels le contrôle de version est activé ou suspendu.
--job
Nombre de tâches simultanées pouvant être exécutées sur plusieurs objets. Plage valide : 1 à 10 000. Valeur par défaut : 3.
--retry-times
Nombre de tentatives après l'échec de la commande. Valeur par défaut : 10. Plage valide : 1 à 500.
--encoding-type
Méthode d'encodage appliquée à la valeur du paramètre prefix suivant
oss://bucket_name. Valeur possible : url. Si vous n'indiquez pas cette option, le préfixe n'est pas encodé. -
Exemples
-
Pour définir l'ACL de l'objet unique
exampleobject.txtsitué dansexamplebucketsurprivate:ossutil set-acl oss://examplebucket/exampleobject.txt private -
Pour définir l'ACL de la version spécifiée (
CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****) deexampleobject.txtdansexamplebucketsur private :ossutil set-acl oss://examplebucket/exampleobject.txt private --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3**** -
Pour définir l'ACL des objets dont le nom commence par le préfixe test dans
examplebucketsur default :ossutil set-acl oss://examplebucket/test default -r -
Pour définir l'ACL des objets portant l'extension .jpg dans
examplebucketsur private :ossutil set-acl oss://examplebucket private --include "*.jpg" -r -
Pour définir l'ACL des objets contenant la chaîne « abc » mais ne portant pas les extensions .png ou .txt dans
examplebucketsur default :ossutil set-acl oss://examplebucket default --include "*abc*" --exclude "*.png" --exclude "*.txt" -r
-
Options courantes
Pour accéder à un compartiment situé dans une autre région, utilisez -e afin de spécifier l'endpoint. Pour accéder à un compartiment appartenant à un autre compte Alibaba Cloud, indiquez l'AccessKey ID avec -i et l'AccessKey Secret avec -k.
Par exemple, pour définir l'ACL de testbucket (situé dans la région Chine (Shanghai) et appartenant à un autre compte) sur private, exécutez la commande suivante :
ossutil set-acl oss://testbucket private -b -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret