
Amazon S3の公開設定を色々とためしてみました!
事前準備
- Amazon S3のバケット作成とファイル登録
Amazon S3 #001 - バケット作成
Amazon S3 #002 - ファイル登録・ダウンロード
ファイル公開
Amazon S3のファイルを公開する方法です。
アクセス許可 → ブロックパブリックアクセス(バケット設定)の「編集」をクリック。

パブリックアクセスをすべてブロックのチェックをOFF。

これだけでは公開されないので、バケットポリシーの「編集」をクリック。

バケットポリシーを設定 → 「変更の保存」をクリック。今回は、Amazon S3からオブジェクトを取得するためのアクセス許可を付与。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/*"
}
]
}

アクセス権限が公開になっているのを確認。

URLに直接アクセスするとファイルが表示されます。

指定IPのみファイル公開
Amazon S3の指定IPのみファイルを公開する方法です。
アクセス許可 → ブロックパブリックアクセス(バケット設定)の「編集」をクリック。

パブリックアクセスをすべてブロックのチェックをOFF。

これだけでは公開されないので、バケットポリシーの「編集」をクリック。

バケットポリシーを設定 → 「変更の保存」をクリック。今回は、Amazon S3からオブジェクトを取得するためのアクセス許可と指定IPのアクセス許可を付与。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/*"
},
{
"Sid": "IP",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "許可したいIP"
}
}
}
]
}

アクセス権限が公開になっているのを確認。IP制限をした場合は公開表示にはならない。

設定したIPからURLに直接アクセスするとファイルが表示されます。指定IP以外はファイルが表示されません。

指定期間のみファイル公開
Amazon S3の指定期間のみファイルを公開する方法です。
対象のファイルを選択。

オブジェクトアクション → 「署名付きURLで共有」をクリック。

対象の期間を設定 → 「署名付きURLを作成」をクリック。クリップボードにコピーされたURLにアクセスすると期間中ファイルが表示されます。

静的ウェブサイトホスティング
Amazon S3の静的ウェブサイトホスティングで公開する方法です。
公開したいHTML等のファイル一式をアップロード。

アクセス許可 → ブロックパブリックアクセス(バケット設定)の「編集」をクリック。

パブリックアクセスをすべてブロックのチェックをOFF。

これだけでは公開されないので、バケットポリシーの「編集」をクリック。

バケットポリシーを設定 → 「変更の保存」をクリック。今回は、Amazon S3からオブジェクトを取得するためのアクセス許可を付与。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/*"
}
]
}

アクセス権限が公開になっているのを確認。

プロパティ → 静的ウェブサイトホスティングの「編集」をクリック。

有効にする・静的ウェブサイトをホストする・ルートのHTMLを設定 → 「変更の保存」をクリック。

静的ウェブサイトホスティングが有効になったのを確認します。URLが発行されるのでアクセスします。

アップロードしたWebSiteが表示されます。

Amazon S3単体で色々と設定可能なことが改めて把握できました。AWS Amplify・ServerlessFramework・CloudFormation等でも構築可能ですが、AWSマネジメントコンソールからS3を操作し、基礎からふりかえるのもすごく大事だなと思いました。
次回は、Amazon CloudFrontと組み合わせた別の方法も紹介できたらと思います。
Amazon S3について、他にも記事を書いています。よろしければぜひ。
tags - Amazon S3
- 参考文献
Amazon S3

