dayjournal memo

Total 975 articles!!

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

Yasunori Kirimoto's avatar

画像




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