LoginSignup
0
0

【AWS】S3 PrivateLinkによる閉域網内静的ウェブサイトの構築

Last updated at Posted at 2024-06-07

静的ウェブサイトを構築する話だと、S3の静的サイトホスティングとCloudFrontのセットで対応すると考えるのは一般的にですが、インターネットを介して接続しないといけませんので、インターネットが出られない閉域網内で、実現できません(例えばインターネットの接続できないオンプレミスのサーバーからSite-to-Site VPNや、Direct Connectで接続する場合)。
1.JPG
S3のGateway Endpointを作ってPrivate SubnetからS3へアクセスする場合、Private SubnetでElastic Network Interfaceが作成されませんので、上記のような通信ルートでは実現できません。

S3のEndpointは、Gateway Endpoint以外、Interface Endpointもあります。それを使ってPrivateLinkを作成して対応することは可能です。
2.JPG
Amazon Web Services ブログもありますので、参考情報として一番最後に貼っておきます。

■S3の作成、準備

3.JPG
事前に作成しておいたHtmlファイルをアップロードしました。閉域網内でのアクセスですから、「パブリックアクセスをすべてブロック」を設定することで問題ありません。又、内部からアクセスするので、静的サイトホスティングの有効化する必要もありません。
endpointからのみで、アクセスできるように制限するパブリックポリシーですが、Actionもう少し絞ると、s3:GetObjectで良いです。

パブリックポリシー
{
    "Version": "2012-10-17",
    "Id": "Policy1415115909152",
    "Statement": [
        {
            "Sid": "Access-to-specific-VPCE-only",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::www.asp-members.net",
                "arn:aws:s3:::www.asp-members.net/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceVpce": "vpce-058919f7c51133336"
                }
            }
        }
    ]
}
■S3 interface endpoint作成

4ャ.JPG
ここで、二つAZを跨ぐ冗長構成となりますので、作成されたeni(Private IP Address)は二つとなります。セキュリティグループは後作成するALBよりアクセスできるように設定する必要です。

■内部ALB作成

5.JPG
6.JPG

■内部ALB作成時、証明書が必要ですので、ACMで証明書作成

7.JPG
お名前.comで取得した無料ドメイン名となり、ACM証明書作成にて認証時、CNAMEレコードをお名前.comに登録すれば認証されます。

■Route53(Private Zone)

内部からアクセスする時、https://www.asp-members.net/asphand.html
のようにアクセスするので、www.asp-members.netはバケット名と同じにする必要なのと、www.asp-members.netとALBのDNSとマッピングする必要です。
8.JPG

上記の設定によりオンプレミス環境 ⇒ Site-to-Site VPN ⇒ S3の静的ウェブサイトのようにアクセスできることが確認できました。

■ALBを使わない場合

構築後、直接ローカルからS3のコンテンツにアクセスしたい場合、以下のURLを使ってアクセスすれば良いです。
https://bucket.vpce-0d904c707a00c6c26-ttg0vjkv.s3.ap-northeast-1.vpce.amazonaws.com/www.asp-members.net/asphand.htm
ドメイン名を使いたい場合
https://www.asp-members.net/asphand.htm
※事前に、www.asp-members.net対応するeniのプライベートIPアドレスをC:\Windows\System32\drivers\etc\hostsに登録するとか、必要ですね。

■参考文献

ALB、S3、PrivateLinkによる内部HTTPS静的ウェブサイトのホスティング
Amazon S3 のプライベート DNS サポートのご紹介

0
0
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
0
0