日々学んだことを残しておこう。きっと未来の自分が探しにくる。 (ただ忘れっぽいだけです…)

S3のバケットポリシーをセットしてみる


S3にWEBの画像やhtmlをアップして、[Make Public]して公開データとして使っていました。
アップするデータの個数が多いと、アップ後の[Make Public]が完了する時間を待つのが面倒なのと、たまに[Make Public]し忘れて、データ表示されないという悲しいことがありました。

これじゃいかんということで、S3バケットのポリシーを変更して公開データ用バケットを作成することに。
そうすれば、そのバケットのアップするだけで、公開設定になるので、一手間少なくてすみますね。

マネジメントコンソールでS3バケットポリシーを追加する方法


マネジメントコンソールにアクセス

バケットポリシーをセットするバケット名を右クリック、[Properties]選択

[Permissions]タブを選択

[Add bucket policy]クリック

Bucket Policy Editorが表示されます。

JSON形式の記述ですが、いきなり書ける気がしないので、
ひとまず、[Sample Bucket Policies]クリック

サンプルサイトにジャンプします。
2012年12月時点では、以下の8つのサンプルが示されていました。()はグーグル翻訳結果。
①Granting Permissions to Multiple Accounts with Added Restrictions
(追加された制限で複数のアカウントに権限を付与)

②Granting Permission to an Anonymous User
(匿名ユーザーへのパーミッションの付与)

③Restricting Access to Specific IP Addresses
(特定のIPアドレスへのアクセスを制限する)

④Restricting Access to Specific HTTP Referer
(特定のHTTPリファラーへのアクセスを制限する)

⑤Granting Permissions to Enable Log Delivery to an S3 Bucket
(S3バケットにログ·デリバリーを使用可能にする権限の付与)

⑥Granting Permission, Using Canonical ID, to a CloudFront Origin Identify
(CloudFrontのOriginには、Canonical IDを使用して、権限の付与特定)

⑦Adding Bucket Policy to Require MFA Authentication
(MFAの認証を要求するようにバケットポリシーの追加)

⑧Granting Cross-Account Permissions to Upload Objects While Ensuring the Bucket Owner Has Full Control
(バケツ所有者を確保しながら、オブジェクトをアップロードするクロスアカウントの権限を付与すると、フルコントロールを持ってい)


今回、私の場合、②Granting Permission to an Anonymous Userが該当しそうなので、以下をコピーして、フォームに貼り付け。
{
"Version":"2008-10-17",
"Statement":[{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::bucket/*"
]
}
]
}



ただし、以下のbucket部分を自分のバケット名に変更します。
"Resource":["arn:aws:s3:::bucket/*"
例えば、バケット名がabcの場合、以下のように変更
"Resource":["arn:aws:s3:::abc/*"

[Save]クリック

実験


バケットポリシー変更したバケットに画像ファイルをアップ

ファイルの[Properties]の[Details]タブのLinkをクリックすると、ちゃんとブラウザに画像が表示されました。

確認


バケットポリシー変更前には、ファイルをMake Publicにしていたのですが、その際のファイルのPermissionsを見ると、以下のようになっていました。
自分のユーザ名にフルコントロールがセットしてあるのに加えて、Granteeが[Everyone]でOpen/Downloadのみにチェック状態

今回のバケットポリシー変更後に、アップしたファイルのPermissionsを見ても同じになっていました。
ということで一安心。

日本語サンプルページが欲しいのと、自動的にbucket名変更してくれたりすると、うれしいな。
この記述方法に慣れていないので、ちょっとつまづいたのでメモしました。

その他のポリシーはおいおい勉強して行こっと。
関連記事

2012-12-05 : AWS : コメント : 0 : トラックバック : 0
Pagetop
コメントの投稿
非公開コメント

Pagetop
« next  ホーム  prev »

広告

読みたいと思っている書籍

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく Amazon Web Services 定番業務システム12パターン 設計ガイド イラストで学ぶ 機械学習 最小二乗法による識別モデル学習を中心に (KS情報科学専門書) イラストで学ぶ ディープラーニング (KS情報科学専門書)

カウンタ

メールフォーム

名前:
メール:
件名:
本文:

GoogleTranslate

管理人のつぶやき

人気記事ランキング

カテゴリ

openclose

ブログ内検索

全記事表示リンク

全ての記事を表示する

ブログパーツ