2016-04-07 6 views
0

ユーザー間で交換されたファイルをS3バケットにアップロードするRHELサーバーでチャットアプリケーションを実行しています。これらのファイルへのアクセスを、アプリケーションを使用しているユーザーだけに制限するにはどうしますか?同時に、サーバーのSSHターミナルとそのサーバー上のコードを使用しているユーザーは誰でもファイルを取得できます。S3バケット内のすべてのURLをパブリックブラウズにアクセスできないようにするにはどうすればよいですか?

documentationに示すように、特定のHTTPリファラーまたはIPアドレスへのアクセスを制限することができます。ただし、これにより、アプリケーションサーバーまたはアプリケーションユーザーのアクセスが制限されます。これら2つのポリシーを組み合わせる方法はありますか?

結論は、アプリケーションを使用しているユーザーと、アプリケーションをホストしているサーバーがS3上のこれらのファイルにアクセスすることを希望しないことです。 ありがとうございました!

答えて

0

私はそれを理解しました。誰かが同じような問題を抱えている場合は、バケツポリシーがあります。

{ 
    "Version": "2012-10-17", 
    "Id": "RestrictAccessPolicy", 
    "Statement": [ 
     { 
      "Sid": "IPAllow", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::examplebucketname/*", 
      "Condition": { 
       "IpAddress": { 
        "aws:SourceIp": "52.12.34.56" 
       } 
      } 
     }, 
     { 
      "Sid": "Allow get requests referred by referrer", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::examplebucketname/*", 
      "Condition": { 
       "StringLike": { 
        "aws:Referer": "http://yourwebsite.com/*" 
       } 
      } 
     }, 
     { 
      "Sid": "Explicit deny to ensure requests are allowed only from specific referer.", 
      "Effect": "Deny", 
      "Principal": "*", 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::examplebucketname/*", 
      "Condition": { 
       "StringNotLike": { 
        "aws:Referer": "http://yourwebsite.com/*" 
       } 
      } 
     } 
    ] 
} 
関連する問題