読者です 読者をやめる 読者になる 読者になる

【調査】AWS SDK for JavaScript in the Browserを利用してS3のセキュリティを確認する

要旨

Facebookでログインしたアカウントを利用してAmazonのs3にファイルをアップロードした場合、 他ユーザ(別アカウントでFacebookからログインしたユーザ)からどう見えるかを検証。

詳細

  • プライベートなバケットを用意(CORS Configuration EditorでCROSを許可しておく)
  • AWS.WebIdentityCredentialsを利用してFacebookのアカウントにAMIを発行する
  • 発行したAMIのアカウントでS3に対してプライベートなバケットにファイルをアップロード
  • 他のユーザでログインして確認した場合どのように表示されるか。
  • S3からファイルを表示する際は、有効期限付きのURLを生成する(getSignedUrl)

AWS SDK for JavaScript in the Browser

※【AWS SDK for JavaScript in the Browser】はDeveloper Previewです。

AWS SDK for JavaScript in the Browser

権限の種類

権限 意味
private 所有者に FULL_CONTROL が付与される。
public-read 所有者に FULL_CONTROL 、All Users に READ が付与される。
public-read-write 所有者に FULL_CONTROL 、All Users に READ/WRITE が付与される。
authenticated-read 所有者に FULL_CONTROL 、Authenticated Users に READ が付与される。
bucket-owner-read オブジェクト所有者に FULL_CONTROL 、バケット所有者に READ が付与される。
bucket-owner-full-control バケット所有者とオブジェクト所有者に FULL_CONTROL が付与される。

権限の参考

結果

本人が表示

f:id:mitsugi-bb:20141025132923j:plain

他人が表示

f:id:mitsugi-bb:20141025132822j:plain

結果

private、bucket-owner-read、bucket-owner-full-controlで保存したファイルは

ログインユーザまたは、バケット所有者しかアクセスできない。

参考