ECS : ACL de bucket en lecture seule pour un utilisateur d’objet non propriétaire qui ne peut pas télécharger les objets téléchargés
摘要: Cette base de connaissances explique le concept de listes de contrôle d’accès (ACL) de buckets pour l’utilisateur d’objet non-propriétaire d’un point de vue en lecture seule dans le navigateur S3. ...
症狀
Un utilisateur d’objet non-propriétaire a été ajouté en lecture seule au bucket à l’aide d’une ACL de bucket.
Un utilisateur d’objets n’étant pas propriétaire d’un bucket ne peut pas télécharger les objets qui ont été chargés par l’utilisateur propriétaire du bucket d’objets avant la création de l’ACL du bucket.
Le flux du problème est le suivant :
- Le bucket a été créé avec l’utilisateur propriétaire de l’objet attribué.
- Certains fichiers ont été chargés vers le compartiment par l’utilisateur propriétaire de l’objet.
- Un utilisateur d’objet non-propriétaire a été ajouté en lecture seule au bucket à l’aide d’une ACL de bucket.
- Lorsqu’il tente d’accéder au bucket, l’utilisateur d’objets non-propriétaires peut répertorier et télécharger les objets nouvellement téléchargés, mais il ne peut pas télécharger les objets chargés avant l’ACL du bucket en lecture seule. Nous pouvons constater que les droits d’utilisateur sur les objets ne sont pas définis via le navigateur S3, conformément à la configuration de l’interface utilisateur ECS.
L’erreur lorsque l’utilisateur d’objets non-propriétaires clique sur un objet à l’aide du navigateur S3 est la suivante : (AccèsDenied : Accès refusé) :
Vous trouverez ci-dessous la configuration de l’ACL du bucket pour l’utilisateur propriétaire de l’objet (a_s3user) et l’utilisateur d’objet non-propriétaire (a_s3test) :
原因
Les autorisations S3 peuvent être définies au niveau du bucket ou de l’objet. ECS adhère aux mêmes principes qu’AWS S3, en fonction du type de stratégie appliquée. Il détermine le type d’opérations qui seront autorisées au niveau du bucket ou de l’objet.
- Lorsque les attributs READ et READ ACL sont accordés au niveau du bucket ECS, le non-propriétaire du bucket doit uniquement répertorier les objets du bucket. Le non-propriétaire du bucket ne peut pas télécharger les données à partir du bucket
- Lors de l’écriture d’un objet dans un compartiment, seul l’utilisateur qui écrit l’objet dispose d’une autorisation de lecture. Pour que d’autres utilisateurs puissent lire les objets, le propriétaire doit explicitement accorder l’autorisation aux utilisateurs.
- Pour accorder l’autorisation à des personnes qui ne sont pas propriétaires de buckets, nous devons utiliser des règles de bucket S3
Les autorisations ACL pouvant être attribuées sont indiquées dans le tableau suivant. Les autorisations applicables dépendent du type de bucket.
| ACL | Autorisation | ||
|---|---|---|---|
| Read | Permet à l’utilisateur de répertorier les objets dans le bucket | ||
| Read ACL | Permet à l’utilisateur de lire l’ACL du compartiment | ||
| Écriture | Permet à l’utilisateur de créer ou de mettre à jour n’importe quel objet dans le bucket | ||
| Écrivez l’ACL. | Permet à l’utilisateur d’écrire l’ACL pour le bucket | ||
| Exécuter | Définit l’autorisation d’exécution si l’accès s’effectue en tant que système de fichiers : cette autorisation n’a aucun effet lorsque l’accès à l’objet est effectué à l’aide des protocoles d’objet ECS. | ||
| Full Control | Donne à l’utilisateur les autorisations Read, Write, Read ACL et Write ACL.
|
||
| Privileged Write | Permet à l’utilisateur d’effectuer des écritures sur un bucket ou un objet lorsqu’il ne dispose pas d’une autorisation d’écriture normale : obligatoire pour les buckets CAS | ||
| Supprimer | Permet à l’utilisateur de supprimer des buckets et des objets : obligatoire pour les buckets CAS | ||
| Aucune | L’utilisateur ne dispose d’aucun privilège sur le bucket. |
AWS prend en charge plusieurs types de stratégies.
- Listes de contrôle d’accès (ACL)
- Politiques basées sur des identités
- Limites d’autorisation
- Politiques basées sur les ressources
Référence de l’ACL de compartiment AWS
Le tableau suivant répertorie l’ensemble des autorisations qu’Amazon S3 prend en charge dans une ACL. L’ensemble des autorisations ACL est le même pour une ACL d’objet et une ACL de bucket. Toutefois, en fonction du contexte (ACL de bucket ou ACL d’objet), ces autorisations ACL accordent des autorisations pour des buckets ou des opérations sur les objets spécifiques. Le tableau répertorie les autorisations et décrit leur signification dans le contexte des objets et des buckets.
| Autorisation | Lorsqu’elle est accordée à un bucket | Lorsqu’elle est accordée sur un objet |
|---|---|---|
READ |
Permet au bénéficiaire de répertorier les objets dans le bucket | Permet au bénéficiaire de lire les données de l’objet et leurs métadonnées |
WRITE |
Permet au bénéficiaire de créer, d’écraser et de supprimer n’importe quel objet dans le bucket | Sans objet |
READ_ACP |
Permet au bénéficiaire de lire l’ACL du compartiment | Permet au bénéficiaire de lire l’ACL de l’objet |
WRITE_ACP |
Permet au bénéficiaire d’écrire l’ACL pour le bucket applicable | Permet au bénéficiaire d’écrire l’ACL pour l’objet applicable |
FULL_CONTROL |
Accorde au bénéficiaire les autorisations READ, WRITE, READ_ACP et WRITE_ACP sur le bucket | Accorde au bénéficiaire les autorisations READ, READ_ACP et WRITE_ACP sur l’objet |
Amazon S3 Documentation
Le tableau suivant montre comment chaque autorisation ACL est mappée aux autorisations de stratégie d’accès correspondantes. Comme vous pouvez le constater, la stratégie d’accès accorde plus d’autorisations qu’une ACL. Les ACL servent principalement à accorder des autorisations de lecture/écriture de base, similaires aux autorisations du système de fichiers. Pour plus d’informations sur le moment d’utilisation d’une ACL, reportez-vous à la section Instructions relatives à l’utilisation des options de stratégie d’accès disponibles.
| Autorisation ACL | Autorisations de règle d’accès correspondantes lorsque l’autorisation ACL est accordée à un bucket | Autorisations de règle d’accès correspondantes lorsque l’autorisation ACL est accordée sur un objet |
|---|---|---|
READ |
s3:ListBucket, s3:ListBucketVersionset s3:ListBucketMultipartUploads |
s3:GetObject, s3:GetObjectVersionet s3:GetObjectTorrent |
WRITE |
En outre, lorsque le bénéficiaire est le propriétaire du bucket, l’octroi |
Sans objet |
READ_ACP |
s3:GetBucketAcl |
s3:GetObjectAcl et s3:GetObjectVersionAcl |
WRITE_ACP |
s3:PutBucketAcl |
s3:PutObjectAcl et s3:PutObjectVersionAcl |
FULL_CONTROL |
Équivaut à une subvention READ, WRITE, READ_ACPet WRITE_ACP Autorisations ACL : cette autorisation ACL correspond à une combinaison d’autorisations de stratégie d’accès correspondantes. |
Équivaut à une subvention READ, READ_ACPet WRITE_ACP Autorisations ACL. Par conséquent, cette autorisation ACL correspond à une combinaison d’autorisations de stratégie d’accès correspondantes. |
解析度
Option 1 :
Consultez le guide ECS Data Access Guide sur l’utilisation des règles de bucket. Contrairement aux ACL, qui autorisent toutes les actions ou aucune, les règles d’accès accordent à des utilisateurs spécifiques ou à tous les utilisateurs des autorisations conditionnelles et granulaires pour des actions spécifiques. Les conditions de stratégie peuvent être utilisées pour attribuer des autorisations à une gamme d’objets qui correspondent à la condition. Cela peut être utilisé pour attribuer automatiquement des autorisations aux objets nouvellement téléchargés.
Référence AWS S3 :
https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.htmlÀ partir de UI-Manage-Bucket>>-> Edit bucket policy, placez quelque chose de similaire à ceci dans l’éditeur de politique :
{
"Version": "2012-10-17",
"Id": "Policy1593674317613",
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Resource": "bucket_name/*",
"Effect": "Allow",
"Principal": "read-only_user",
"Sid": "Stmt1593673962638"
}
]
} Lorsque l’action : « S3 :GetObject » est l’action à autoriser pour pouvoir télécharger des objets.
Où Effet : « allow »
where resource » : Le nom du bucket est « bucket_name/* ».
S’il s’agit d’un mandant » : « Read-only_useR » est un utilisateur non-propriétaire du bucket.
Option 2 :
À l’aide du navigateur S3 avec le propriétaire de l’objet, modifiez l’autorisation des utilisateurs authentifiés pour les objets téléchargés avant l’ACL du compartiment en lecture seule afin de vous assurer que l’utilisateur de l’objet non-propriétaire peut télécharger l’objet :
其他資訊
Si vous rencontrez des problèmes lors du téléchargement d’un objet via le propriétaire de l’objet et que les autorisations ne sont pas appliquées aux utilisateurs authentifiés disposant d’un accès en écriture, consultez l’article 520711 de la base de connaissances