【調査】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です。
権限の種類
権限 | 意味 |
---|---|
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 が付与される。 |
権限の参考
結果
本人が表示
他人が表示
結果
private、bucket-owner-read、bucket-owner-full-controlで保存したファイルは
ログインユーザまたは、バケット所有者しかアクセスできない。