54
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-01-12

img

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


事前準備


ファイル公開

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を操作し、基礎からふりかえるのもすごく大事だなと思いました :bulb:

次回は、Amazon CloudFrontと組み合わせた別の方法も紹介できたらと思います。


Amazon S3について、他にも記事を書いています。よろしければぜひ :bow:
tags - Amazon S3

やってみたシリーズ :grinning:
tags - Try



book

54
53
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?