2017-08-03 26 views
2

s3のオブジェクトをaws-sdk-jsからアップロードしようとしていますが、私の場合のポリシーを把握できません。私は1人のユーザーだけがアップロードアクセスと公開閲覧アクセスを許可したいと思っています。ここでs3バケットポリシーアクセスが拒否されました

は私のS3バケットポリシー

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "PublicReadForGetBucketObjects", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::some-bucket/*" 
     }, 
     { 
      "Sid": "", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::1111111111111:user/some-bucket-user" 
      }, 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::some-bucket/*" 
     } 
    ] 
} 

されており、私のIAMポリシーは以下のとおりです。

{ 
    "Version":"2012-10-17", 
    "Statement":[ 
    { 
     "Sid":"AddPerm", 
     "Effect":"Allow", 
     "Action":"s3:*", 
     "Resource":["arn:aws:s3:::some-bucket/*"] 
    } 
    ] 
} 

誰かが私がここで間違ってやっているものを指摘していただけますか?

答えて

1

私の悪い、私は正しくAWS.S3を初期化しておらず、それがユーザー/ EC2インスタンスの役割とないものを使用していました私は割り当てていた。

1

これを行うには、バケットポリシーをまったく処理する必要はありません。バケットポリシーは、サービスがユーザーではなくS3データベースにアクセスできるようにするために使用されます。

ユーザがS3データベースにアクセスできるようにするには、権限/アクセス制御リスト(これは「バケットポリシー」の隣にあります)に必要な権限で追加します。

、それは絶対にバケットポリシーを介して行われなければならない場合は、このリンクはすべてそれをカバー:http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html

+0

私は 'private' ACLを使用しています.JSでは' aws.config.update({}) 'に作成したユーザーのキー/シークレットを追加するだけです。この全部のことは、すべてのユーザに許可を与えるため、私が 'Principle:{AWS:*}'を実行すると機能します。 –

+0

ああ、その場合はこのリンクですべてをカバーする必要があります。 http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html – HerSta

関連する問題