Aws-cli: Les politiques doivent être JSON valides et le premier octet doit être '{'

Créé le 19 août 2017  ·  3Commentaires  ·  Source: aws/aws-cli

Bonjour. J'ai vu cette erreur dans quelques numéros, et je dois être fatigué. Il n'est pas évident pour moi quelle devrait être la solution. J'essaie de télécharger une stratégie de compartiment et j'obtiens une erreur JSON. J'ai ensuite téléchargé (utilisé l'interface utilisateur pour entrer et cela a bien fonctionné)/téléchargé et j'obtiens la même erreur. Une suggestion sur la façon d'utiliser l'outil pour télécharger cela? Continuez votre bon travail!

$ aws s3api get-bucket-policy --bucket cloud-1-$NAME > student-1-bucket.manual.json
$ aws s3api put-bucket-policy --bucket cloud-1-$NAME --policy student-1-bucket.manual.json 

An error occurred (MalformedPolicy) when calling the PutBucketPolicy operation: Policies must be valid JSON and the first byte must be '{'
$ cat student-1-bucket.manual.json 
{
    "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"ExampleStatement1\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::934017622331:user/student-1-cloud\"},\"Action\":\"*\",\"Resource\":\"arn:aws:s3:::cloud-1-14604\"}]}"
}
$

Commentaire le plus utile

--policy accepte normalement une chaîne JSON, qui pense que votre nom de fichier est en fait le document JSON que vous souhaitez utiliser. Pour le faire avec des fichiers, vous devrez utiliser le protocole file:// comme ceci :

aws s3api put-bucket-policy --bucket cloud-1-$NAME --policy file://student-1-bucket.manual.json

Remarque Je n'ai pas accès à votre environnement, donc si le bit file:// échoue, vous voudrez peut-être lui fournir le chemin absolu vers student-1-bucket.manual.json place.

Tous les 3 commentaires

--policy accepte normalement une chaîne JSON, qui pense que votre nom de fichier est en fait le document JSON que vous souhaitez utiliser. Pour le faire avec des fichiers, vous devrez utiliser le protocole file:// comme ceci :

aws s3api put-bucket-policy --bucket cloud-1-$NAME --policy file://student-1-bucket.manual.json

Remarque Je n'ai pas accès à votre environnement, donc si le bit file:// échoue, vous voudrez peut-être lui fournir le chemin absolu vers student-1-bucket.manual.json place.

@cwgem tu as tout à fait raison ! Merci.

Spécification:

aws s3api put-bucket-policy \
--bucket $BucketName \ 
--policy file://$PathToPolicy/bucketpolicy.json

Par example:

aws s3api put-bucket-policy \
--bucket firstbucket.mydomain.com \
--policy file:///Users/Andy/Desktop/bucketpolicy.json
Cette page vous a été utile?
0 / 5 - 0 notes