GCPで静的コンテンツをサイトの公開(CCDN→CLB→CS)をしてみました
はじめに
前回に引き続き備忘録としてGCPの設定内容を記載しておきます。
GCPで静的コンテンツを公開する際はCloud Storage(CS)というサービスにバケットを作成しコンテンツをアップロード。
作成したバケットを公開してアクセスするようになります。
しかし、これでは独自ドメインなどが使えないためCloud Load Balancer(CLB)をフロントに立てて、バックエンドとしてCSへ内部連携する形になります。
今回はGCPのサービス調査も兼ねているためCLBの更に上段にCCDNというCDNサービスを立ててみました。
論理構成図
設定内容
手順はこちらを実施
CS
CLB/CCDN
※HTTPSのみにしていますが、今後HTTPからHTTPSへのリダイレクト設定も追加する予定です。
現状感じている課題
CLBにて自動割り振りされたGlobal IPを直打ちするとコンテンツが表示されてしまう
CLBのホストとパスのルール設定にてデフォルトルールだとHTTPプロトコルで来たパケットをバックエンドにそのまま流す設定が入っています。
この設定だと例えばIP直打ちなどでアクセスがあった場合にリクエストが通ってしまうことになります。
ロギングサービスを見てみると
このようにIP直で怪しげなアクセスが来ていることがわかります。
対策としてはIP直アクセスの場合はCLBのバックエンドにnginxをGAEなどで立てて設定側でHTTPステータスコード444でコネクションを閉じる処理をする方法があるようです。
HTTP→HTTPSリダイレクトの設定
こちらは上記の設定を行ったあとにCLBのフロントエンドにてHTTPプロトコルの設定を追加し対応する予定です。
DDoS/DoS対策をどうするか
DDoSの場合はGCPのWAFサービス(Cloud Armor)がやってくれるようです。
普段触っているのはIaaS環境に構築したVMですのでDoSの場合は上段のLBやリバプロあたりでiptablesで制限かけてやれば対応できますが、Cloud Armorだとどのような条件でDDoS判定するのかがわからないのでこのあたりを調べておきたいと思います。
調査メモ
GCPに関連する調査内容はこちらのTwitterのスレッドに記載しています。
おわりに
ここ数日触った所感としてはインフラ周りの煩わしいところ(プロビジョニング処理やSSL証明書周りの設定、LB設定等)をGCP側に任せられるところが良いなと思いました。
しかしセキュリティ面を意識しておこないと事故りそうな雰囲気を感じていますのでクラウドにてインフラ構築する際の勘所などを調査及び実験していこうと思います。
Discussion