Aws-cli: Las políticas deben ser JSON válidas y el primer byte debe ser '{'

Creado en 19 ago. 2017  ·  3Comentarios  ·  Fuente: aws/aws-cli

Hola. He visto este error en algunos problemas y debo estar cansado. No me resulta obvio cuál debería ser la solución. Estoy intentando cargar una política de depósito y obtengo un error JSON. Luego descargué (usé la interfaz de usuario para ingresar y funcionó bien) / cargué y obtuve el mismo error. ¿Alguna sugerencia sobre cómo usar la herramienta para cargar esto? ¡Sigan con el buen trabajo!

$ 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\"}]}"
}
$

Comentario más útil

--policy normalmente acepta una cadena JSON, que cree que su nombre de archivo es en realidad el documento JSON que desea usar. Para hacerlo con archivos, deberá utilizar el protocolo file:// así:

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

Tenga en cuenta que no tengo acceso a su entorno, por lo que si el bit file:// falla, es posible que desee proporcionarle la ruta absoluta a student-1-bucket.manual.json lugar.

Todos 3 comentarios

--policy normalmente acepta una cadena JSON, que cree que su nombre de archivo es en realidad el documento JSON que desea usar. Para hacerlo con archivos, deberá utilizar el protocolo file:// así:

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

Tenga en cuenta que no tengo acceso a su entorno, por lo que si el bit file:// falla, es posible que desee proporcionarle la ruta absoluta a student-1-bucket.manual.json lugar.

@cwgem, ¡ tienes toda la razón! Gracias.

Especificación:

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

Por ejemplo:

aws s3api put-bucket-policy \
--bucket firstbucket.mydomain.com \
--policy file:///Users/Andy/Desktop/bucketpolicy.json
¿Fue útil esta página
0 / 5 - 0 calificaciones