0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Last updated at Posted at 2024-06-07

AWSで静的ウェブサイトの構築と言うと、S3の静的サイトホスティングとCloudFrontのセットで対応するのは一般的ですが、何の場合でも対応できるわけではありません。

S3の静的サイトホスティングで対応できない場合

S3の静的サイトホスティングとCloudFrontの構成では、インターネットを介して接続しないといけませんので、インターネットが出られない閉域網内では実現できません。
例えばインターネットの接続できないオンプレミスのサーバーからSite-to-Site VPNやDirect ConnectでAWSに接続したりする場合。

S3のGateway Endpointを作ってPrivate SubnetからS3へアクセスする場合、Private SubnetでElastic Network Interfaceが作成されませんので、このような通信ルートでは実現できません。

1.JPG

閉域網内の場合の対応方法

S3のEndpointは、Gateway Endpoint以外、Interface Endpointもあります。それを使ってPrivateLinkを作成して対応することで解決できます。

2.JPG

具体的な構築方法

1. S3の作成、準備
事前に作成しておいたHtmlファイルをアップロードしました。閉域網内でのアクセスですから、パブリックアクセスをすべてブロックを設定しても問題ありません。又、内部からアクセスするので、静的サイトホスティングの有効化する必要もありません。

3.JPG

2. endpointからアクセスできるようなポリシーの作成
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"
                }
            }
        }
    ]
}

3. S3 interface endpoint作成
アベイラビリティーゾーンを二つ跨ぐ冗長構成となりますので、作成されたeniは二つとなります。セキュリティグループは後で作成するALBよりアクセスできるように許可設定する必要です。
4ャ.JPG

4. ALB関連リソースの設定

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

7.JPG

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

8.JPG

Internal ALB作成

5.JPG
6.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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?