J'ai suivi l'exemple sur http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_examples.html#iam-policy-example-s3 pour savoir comment accorder à un utilisateur l'accès à un seul seau.
J'ai ensuite testé la configuration à l'aide du plugin W3 Total Cache Wordpress. Le test a échoué.
J'ai également essayé de reproduire le problème en utilisant
aws s3 cp --acl=public-read --cache-control='max-age=604800, public' ./test.txt s3://my-bucket/
et cela a échoué avec
upload failed: ./test.txt to s3://my-bucket/test.txt A client error (AccessDenied) occurred when calling the PutObject operation: Access Denied
Pourquoi ne puis-je pas importer dans mon bucket?
J'avais un problème similaire. Je n'utilisais pas les éléments ACL, donc je n'en avais pas besoin
s3:PutObjectAcl
.Dans mon cas, je faisais (dans Serverless Framework YML):
Au lieu de:
Ce qui ajoute un
/*
à la fin de l'ARN du compartiment.J'espère que cela t'aides.
la source
Je me cognais la tête contre un mur en essayant simplement de faire fonctionner les téléchargements S3 avec des fichiers volumineux. Au départ, mon erreur était:
Ensuite, j'ai essayé de copier un fichier plus petit et j'ai obtenu:
Je pourrais bien lister les objets mais je ne pouvais rien faire d'autre même si j'avais des
s3:*
autorisations dans ma stratégie de rôle. J'ai fini par retravailler la politique en ceci:Je peux maintenant télécharger n'importe quel fichier. Remplacez-le
my-bucket
par le nom de votre bucket. J'espère que cela aidera quelqu'un d'autre à traverser ça.la source
"Resource": "*"
.Au cas où cela aiderait quelqu'un d'autre, dans mon cas, j'utilisais une clé CMK (cela fonctionnait bien en utilisant la clé par défaut aws / s3)
J'ai dû entrer dans ma définition de clé de chiffrement dans IAM et ajouter l'utilisateur programmatique connecté à boto3 à la liste des utilisateurs qui "peuvent utiliser cette clé pour chiffrer et déchiffrer des données à partir d'applications et lors de l'utilisation de services AWS intégrés à KMS.".
la source
J'ai eu un problème similaire lors du téléchargement dans un compartiment S3 protégé par le cryptage KWS. J'ai une politique minimale qui permet l'ajout d'objets sous une clé s3 spécifique.
J'avais besoin d'ajouter les autorisations KMS suivantes à ma stratégie pour permettre au rôle de placer des objets dans le compartiment. (Peut être légèrement plus que ce qui est strictement requis)
la source
aws/s3
clé gérée par défaut vers une stratégie IAM attachée à un rôle (pas dans la stratégie KMS), et cela fonctionne bien. Les seules actions que je avais besoin contre le KMS ARNs sont:kms:Encrypt
,kms:Decrypt
,kms:ReEncrypt*
,kms:GenerateDataKey*
,kms:DescribeKey
. Ensuite, juste les autorisations S3 standard.J'avais le même message d'erreur pour une erreur que j'ai faite: assurez-vous d'utiliser un uri s3 correct tel que:
s3://my-bucket-name/
(Si my-bucket-name est à la racine de votre aws s3 évidemment)
J'insiste là-dessus parce que lorsque vous copiez le bucket s3 depuis votre navigateur, vous obtenez quelque chose comme
https://s3.console.aws.amazon.com/s3/buckets/my-bucket-name/?region=my-aws-regiontab=overview
J'ai donc fait l'erreur d'utiliser
s3://buckets/my-bucket-name
ce qui soulève:An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
la source
Pour moi, j'utilisais des clés d'authentification expirées. Généré de nouveaux et boom.
la source
Similaire à un article ci-dessus (sauf que j'utilisais les informations d'identification d'administrateur) pour que les téléchargements S3 fonctionnent avec un gros fichier de 50 Mo.
Au départ, mon erreur était:
J'ai changé le multipart_threshold pour qu'il soit au-dessus des 50M
et j'ai eu:
J'ai vérifié les paramètres d'accès public du bucket et tout était autorisé. J'ai donc constaté que l'accès public peut être bloqué au niveau du compte pour tous les compartiments S3 :
la source
Si vous avez défini un accès public pour le bucket et s'il ne fonctionne toujours pas, modifiez la stratégie de bucker et collez ce qui suit:
la source
Si vous avez spécifié votre propre clé KMS gérée par le client pour le chiffrement S3, vous devez également fournir l'indicateur
--server-side-encryption aws:kms
, par exemple:aws s3api put-object --bucket bucket --key objectKey --body /path/to/file --server-side-encryption aws:kms
Si vous n'ajoutez pas le drapeau,
--server-side-encryption aws:kms
le cli affiche uneAccessDenied
erreurla source
J'ai pu résoudre le problème en accordant un accès s3 complet à Lambda à partir des stratégies. Créez un nouveau rôle pour Lambda et attachez-y la stratégie avec un accès S3 complet.
J'espère que cela aidera.
la source
J'ai rencontré le même problème. Mon compartiment était privé et avait un cryptage KMS. J'ai pu résoudre ce problème en ajoutant des autorisations KMS supplémentaires dans le rôle. La liste suivante est l'ensemble minimal de rôles nécessaires.
Référence: https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-file-encryption-kms-key/
la source