web-dev-qa-db-fra.com

Problème d'autorisation Amazon S3 - Comment définir des autorisations pour tous les fichiers simultanément?

J'ai téléchargé des fichiers via la gestion Amazon AWS.

J'ai eu une erreur 403. Accès refusé. J'ai découvert que je devais régler la permisson pour voir.

Comment faire cela pour tous les fichiers du seau? Je sais que c'est une autorisation de paramétrage possible pour chaque fichier. Il faut beaucoup de temps pour avoir vraiment beaucoup de fichiers qui doivent être visibles pour tout le monde. 

74
Rails beginner

Je suggère que vous appliquiez une politique de seau1 dans le compartiment où vous souhaitez stocker du contenu public. De cette façon, vous n'avez pas à définir ACL pour chaque objet. Voici un exemple de stratégie qui rendra tous les fichiers du compartiment mybucket publics.

{
    "Version": "2008-10-17",
    "Id": "http better policy",
    "Statement": [
        {
            "Sid": "readonly policy",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
        }
    ]
}

Ce * dans "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*" autorise la récursivité.


1 Notez qu'une stratégie de compartiment est différente d'une stratégie IAM. (Par exemple, vous obtiendrez une erreur si vous essayez d'inclure Principal dans une stratégie IAM.) La stratégie de compartiment peut être modifiée en allant à la racine du compartiment dans votre console Web AWS et en développant Propriétés> Autorisations. Les sous-répertoires d'un compartiment ont également Propriétés> Autorisations, mais il n'y a pas d'option pour Edit bucket policy

115
cloudberryman

J'ai utilisé Cloudberry Explorer pour faire le travail :) C'est-à-dire: http://cloudberrylab.com/free-Amazon-s3-Explorer-cloudfront-IAM.aspx

5
Rails beginner

Vous pouvez sélectionner le répertoire que vous souhaitez rendre public.

Appuyez sur "plus" et marquez-le comme public; cela rendra le répertoire et tous les fichiers accessibles au public.

5
mohammad zein

Vous ne pouvez modifier les ACL que pour un élément unique (seau ou élément), mais vous devrez les modifier un par un. 

Certaines applications de gestion S3 vous permettent d’appliquer la même liste de contrôle d’accès à tous les éléments d’un compartiment, mais en interne, elles appliquent la liste de contrôle d’accès à chaque élément.

Si vous téléchargez vos fichiers par programme, il est important de spécifier la liste de contrôle d'accès lorsque vous téléchargez le fichier, afin de ne pas avoir à le modifier ultérieurement. Le problème de l’utilisation d’une application de gestion S3 (telle que Cloudberry, Transmit, ...) est que la plupart d’entre elles utilisent la liste de contrôle d’accès par défaut (lecture seule uniquement) lorsque vous téléchargez chaque fichier.

4
Daniel García

J'ai eu le même problème lors du téléchargement des fichiers via le programme (Java) vers le compartiment s3.

Erreur: aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée . Origin ' http: // localhost: 9000 ' n'est donc pas autorisé à accéder. La réponse avait le code d'état HTTP 403

J'ai ajouté l'identité origine et modifié la stratégie bucket et la configuration CORS, puis tout a bien fonctionné.

2
Manju Shingadi

Vous pouvez définir ACL sur chaque fichier en utilisant aws cli:

BUCKET_NAME=example
BUCKET_DIR=media
NEW_ACL=public-read

aws s3 ls $BUCKET_NAME/$BUCKET_DIR/ | \
awk '{$1=$2=$3=""; print $0}' | \
xargs -t -I _ \
aws s3api put-object-acl --acl $NEW_ACL --bucket $BUCKET_NAME --key "$BUCKET_DIR/_"
1
moppag

Pour rendre un grand nombre de fichiers publics, procédez comme suit:

  1. Aller à Interface Web S3
  2. Ouvrir le seau requis
  3. Sélectionnez les fichiers et dossiers requis en cochant les cases situées à gauche de la liste.
  4. Cliquez sur le bouton «Plus» en haut de la liste, puis sur «Rendre public».
  5. Confirmez en cliquant sur «Rendre public». Les fichiers n'auront pas d'accès public en écriture malgré l'avertissement dit «... lis cet objet, lis et écris les autorisations».
1
Finesse

Utilisation de Navigateur S3 vous pouvez mettre à jour les autorisations à l'aide de l'interface graphique, également de manière récursive. C'est un outil utile et gratuit pour une utilisation non commerciale. 

1
Paul Siersma

Utilisez Générateur de stratégies AWS pour générer une stratégie adaptée à vos besoins. Le principal du générateur de règles doit être l'utilisateur/le rôle IAM que vous utiliseriez pour accéder au (x) objet (s) . L'ARN de la ressource doit être arn: aws: s3 ::: mybucket/sub/dirs/are /. prise en charge/*

Ensuite, cliquez sur "Ajouter une déclaration" et suivez-le. Vous obtiendrez finalement un JSON représentant la stratégie. Collez-le dans la section de gestion de la stratégie de votre s3, qui se trouve dans "la page de votre s3 dans AWS -> autorisations -> stratégie du seau".

0
user2906555

Transmettre 5

Je voulais ajouter ceci ici aux utilisateurs potentiels de macOS qui disposent déjà de l'application FTP magnifiquement conçue appelée Transmit by Panic.

J'ai déjà eu Panic et il prend en charge les compartiments S3 (je ne sais pas quelle version cela a été fourni mais je pense que les mises à niveau étaient gratuites). Il prend également en charge la mise à jour récursive des autorisations de lecture et d’écriture.

Il vous suffit de cliquer avec le bouton droit sur le répertoire que vous souhaitez mettre à jour et de sélectionner les autorisations de lecture et d'écriture pour lesquelles vous souhaitez les définir.

Cela ne semble pas très rapide, mais vous pouvez ouvrir le fichier journal en allant dans Fenêtre> Transcription pour au moins savoir que cela fait quelque chose.

0
Joshua Pinter