記事の概要
ここでは、WordPress環境をGCP(Google Cloud Platform)で構築する方法について説明します。
記事が長くなるため、前編・中編・後編で構成したいと思います。
前編では、登録が必要なものを紹介し、中編では実際にGCP環境を構築する手順を紹介します。
後編では、セキュリティ対策について紹介します。
前編・中編はこちらから
考えるべきセキュリティ項目
前編・中編でWordPress環境を構築しましたが、あくまでWordPressが使えるようになるまでしか行っていません。
システムを作るうえで、セキュリティ対策を行うことは必須です。
今回のシステムに対し、以下の項目についてセキュリティ対策を考えます。
- ウェブサイト環境
- WordPress環境
- GCP環境
それぞれについて何を対策するのか見てみましょう。
ウェブサイト環境
ウェブサイトでセキュリティ対策?と思う方もいるかもしれません。
具体的にいうと、サイトをHTTPS化します。
これは自分の環境を守る意味合いもありますが、どちらかというとユーザも守る意味合いが強いと思います。
最近では、企業サイトだけでなく個人サイトやブログなどでもHTTPSを利用する例が増えています。むしろほぼ必須といってよいかもしれません。
HTTPSに関しては、Wikipediaにまとまっています。
色々書かれていますが、要はサイトを見ている人とサイトの間の通信を暗号化しましょうということです。暗号化することで、通信の内容を第三者が傍受できなくなります。
HTTPS化する手順
では、実際にWordPress環境をHTTPS化する方法を紹介します。
私自身サーバ系の仕事をしているので、すぐにやろうと思えばできるのですが、より簡単にやる方法を色々試してみました。
結論から言うと、以下のサイトの記事が素晴らしかったです。
他のサイトのやり方も色々やりましたが、色々前提条件が多く、サーバを触ったことがない人がやろうとすると結構苦労すると思います。
具体的には、3と5の手順を行っていただければ問題ありません。
ただし、AWSを前提としているようなので、GCPでの設定手順を紹介します。
まずは、GCPコンソールへログイン後、メニューから「Compute Engine」を選択します。
Compute Engineの画面の「VMインスタンス」の表示に構築したサーバが表示されていると思います。
そのサーバの接続欄にある「SSH」を選択します。
すると新しいポップアップが開き、サーバの操作画面が開きます。
(ドラマとかでよく出るプログラマーが触ってそうな画面ですね)
その後、コマンドを実行してください。あとはコマンドが勝手にやってくれます(便利!)
実行が終わったら実際にサイトを確認してみてください。
その時は以下のURLを指定してください。
https://xx.xx.xx.xx/wp-login.php
※ xx.xx.xx.xx にはサイト名を指定してください。
2021年9月 追記
SSL証明書は、定期的に更新する必要があります。
以下の記事で自動更新する手順をまとめていますので参考にしてください。
WordPress環境
続いてWordPress環境のセキュリティ対策を考えます。
こちらはすでに色々記事を書かれている方がいますので、色々なサイトを参考にしてもらえればよいと思います。(急な投げやり)
セキュリティ対策の一例を紹介します。
All In One WP Securityの導入
WordPress用のセキュリティ対策プラグインです。
- ログインのロック (不正なログインを行わせない)
- ファイアウォールの設定 (サイトの防御力アップ!)
- ログインページのURL変更 (特定されやすい情報を変えておく)
といったセキュリティ対策の設定を簡単に行うことができます。
何か対策を怠るといざというときに困りますので、できるだけの対策は行っておきましょう!
GCP環境
最後に、GCP環境のセキュリティ対策について考えます。
これまでとりあえずWordPressが使えるようになるまでしか説明していないので、結構セキュリティがざるの状態です。
具体的にやることは、アカウントの保護とサーバの保護です。
アカウントの保護
Googleのアカウントを発行して、ユーザ名とパスワードでログインしたかと思いますが、仮にユーザ名とパスワードが何かしらの要因で漏洩した場合、GCP環境のすべてが勝手に触られる可能性があり、高価なサーバを作られた日には、超高額な請求が来る可能性があります。
その対策として、Googleアカウントを守る手段が必要です。
Googleアカウントは、二段階認証と呼ばれるログインを行う際複数の認証を行わせることが可能です。
設定は、Googleのナビゲーションに従って行えばよいのですが、テキストまたは電話による認証コードの確認が行われます。
基本はこれでOKですが、2段階認証プロセスの設定画面で、「認証システムアプリ」という設定をおこなうことをお勧めします。これは、スマートフォンにアプリをインストールし、バーコードを読み取っておくことで、一時的なパスワードの発行が可能になります。
ログイン時にこの一時的なパスワード入力を行うことで認証が可能です。
サーバの保護
続いてサーバの保護を行います。
サーバを構築したときにほとんどデフォルトの設定を行ったと思いますが、デフォルトの設定はあまり適切とは言えません。
具体的には、不要な時はサーバへのログインを禁止します。WordPressへのログインは頻繁に行うと思いますが、サーバへのログインはめったにしないと思いますので設定します。
( GCPだとそこまでやるの?という意見もあるかと思いますが、やらないに越したことはないので紹介します)
まず、GCPコンソールへログイン後、メニューから「VPCネットワーク」を選択します。
VPCネットワーク画面の「ファイアウォールルール」を開くと、いくつかのdefault設定があると思いますが、「default-allow-ssh」を選択します。
詳細画面の編集から「ソースIPの範囲」の設定を、サーバの外部IPアドレスにでも変更してください。
(例) x.x.x.x/32 ※「x.x.x.x」までは自分の外部IPアドレスを、「/32」は固定にしてください。
上記で「にでも」という表現を使ったのは、要は「0.0.0.0/0」を消してほしかったからです。
今回構築したサーバの仕様上、デフォルトの設定値でも勝手にログインされる可能性は低いのですが、0とは言えませんので、明示的にログインできないようにします。
なお、この設定を行うと自分もログインできなくなりますので、もしログインを行いたい場合は、設定を 「0.0.0.0/0」に戻してください。
まとめ
これまで、GCPの導入からWordPressの構築まで説明しました。
突き詰めるとまだまだ必要な設定項目はありますが、いったん最低限必要であると思うところまでを記載しました。
今後、これもあったほうがいいなーと思うことは、追記したいと考えています。
3記事にわたり長文をご覧いただきありがとうございます。