こんにちは。 私はいくつかの問題でこのエラーを見てきました、そして私は疲れているに違いありません。 解決策がどうあるべきかは私にはわかりません。 バケットポリシーをアップロードしようとしていますが、JSONエラーが発生します。 次に、ダウンロード(UIを使用して入力し、正常に機能しました)/アップロードすると、同じエラーが発生します。 ツールを使用してこれをアップロードする方法について何か提案はありますか? 良い仕事を続けてください!
$ 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\"}]}"
}
$
--policy
は通常、JSON文字列を受け入れます。これは、ファイル名が実際に使用するJSONドキュメントであると見なします。 ファイルでそれを行うには、次のようにfile://
プロトコルを利用する必要があります。
aws s3api put-bucket-policy --bucket cloud-1-$NAME --policy file://student-1-bucket.manual.json
私はあなたの環境にアクセスできないことに注意してください。そのため、 file://
ビットが失敗した場合は、代わりにstudent-1-bucket.manual.json
への絶対パスを提供することをお勧めします。
@cwgemあなたは完全に正しいです! ありがとう。
仕様:
aws s3api put-bucket-policy \
--bucket $BucketName \
--policy file://$PathToPolicy/bucketpolicy.json
例えば:
aws s3api put-bucket-policy \
--bucket firstbucket.mydomain.com \
--policy file:///Users/Andy/Desktop/bucketpolicy.json
最も参考になるコメント
--policy
は通常、JSON文字列を受け入れます。これは、ファイル名が実際に使用するJSONドキュメントであると見なします。 ファイルでそれを行うには、次のようにfile://
プロトコルを利用する必要があります。私はあなたの環境にアクセスできないことに注意してください。そのため、
file://
ビットが失敗した場合は、代わりにstudent-1-bucket.manual.json
への絶対パスを提供することをお勧めします。