2016-12-21 4 views
0

AWS CLIについて学んでいませんでした。ローカルフォルダからS3のバケットにコピーしようとしましたが、次のエラーを返す:バケットポリシーエディタ:ポリシーを有効なJSON文字列として解析できませんでした

upload failed: ./lalala.txt to s3://buecket_name/ An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

だから私はこのことについての検索だと、インターネットはその問題がバケットポリシーエディタであるので、私はポリシーを編集しようと私に語ったが、私はエラーが名前を付けて保存]をクリックしたときに次のとおりです。

Bucket Policy Editor:Policy could not be parsed as a valid JSON string

マイポリシースクリプト:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "s3:ListAllMyBuckets" 
     "Resource": "arn:aws:s3:::bucket-name*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:ListBucket", 
     "s3:GetBucketLocation", 
     "s3:PutObject" 
     ], 
     "Resource": "arn:aws:s3:::bucket-name" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:PutObject", 
     "s3:GetObject", 
     "s3:DeleteObject" 
     ], 
     "Resource": "arn:aws:s3:::bucket-name/*" 
    } 
    ] 
} 

_____UPDATE_____:

Policy could not be parsed as a valid JSON string

現在のスクリプト:

を男は下記をお勧めしますが、エラーが続くよう

だからみんな、私は、 "主" を追加するスクリプトを変更してみてください

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "s3:ListAllMyBuckets", 
     "Resource": "arn:aws:s3:Sao Paulo:X1X8XX6YYY16X:name-bucket*" 
    }, 
    "Principal": { 
     "AWS": [ 
     "arn:aws:iam::AWS-account-ID:root" 
     ] 
    } 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:ListBucket", 
     "s3:GetBucketLocation", 
     "s3:PutObject" 
     ], 
     "Resource": "arn:aws:s3:::bucket-name" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:PutObject", 
     "s3:GetObject", 
     "s3:DeleteObject" 
     ], 
     "Resource": "arn:aws:s3:::bucket-name/*" 
    } 
    ] 
} 

だから私は間違っていますか?

ありがとうございました!

答えて

1

あなたが最初のアクション部分の後にカンマが含まれていない:

"Action": "s3:ListAllMyBuckets", 

検証JSONsはjslintのようなサービスを介して行うことができます。読み取り/特定のバケットに書き込むための

+0

私はコンマを入れましたが、エラーは次のようになります: '必須フィールドプリンシパルが未定義です' –

+1

@DouglasDiasdaSilva - あなたのS3バケットへのアクセスが許可されている人を示す 'Principal'フィールドを指定する必要があります。詳細は彼の[S3 Documentation](http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html)を参照してください。 – birryree

0

ポリシーは

{ 
"Version": "2012-10-17", 
"Statement": [   
    { 
     "Sid": "S3Actions", 
     "Resource": [ 
      "arn:aws:s3:::bucket-name/*", 
      "arn:aws:s3:::bucket-name"    
     ], 
     "Action": [ 
      "s3:DeleteObject", 
      "s3:PutBucketAcl", 
      "s3:PutObject", 
      "s3:PutObjectAcl", 
      "s3:Get*", 
      "s3:List*" 
     ], 
     "Effect": "Allow" 
    } 
] 
} 

また、あなたがポリシーを選択し、適切な行動があなたのAPIを実行するために選択されていることを確認するために試してみることができPolicy Simulatorを使用することができ、以下の通りであります何の問題もなく電話してください。

+0

私はこれを試してみましたが、エラーは続きます... –

+0

@DouglasDiasdaSilva:おそらくポリシーが失敗する余分なカンマがありました。私はそれを更新しましたので、もう一度試してみてください。うまくいくはずです。 – Rajesh

+0

それは仕事です、ありがとう! –

関連する問題