画像






Amazon S3の公開設定を色々とためしてみました!




事前準備




ファイル公開

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





book


Q&A