GCS (Google Cloud storage) のデフォルト URL は Google ドメイン (SSL 証明書付き) で配信されています。
独自ドメインにして配信することができますが SSL 証明書を設定することができないため、http として配信されます。
https で配信するにはロードバランサに SSL 証明書を設定する必要があります。
この記事では Google Cloud Storage で独自ドメインを https として配信する方法をご紹介します。
今回は、Google Cloud ロードバランシングを利用して Google マネージドで SSL 証明書を発行します。
独自ドメインを https として配信するには
デフォルトでは GCS 内にあるファイルは https://storage.googleapis.com/~~ として配信されます。、独自ドメインを置き換えた場合は GCS に SSL 証明書のサポートがないため、http として配信されてしまいます。
独自ドメインを https として配信するには Google Cloud ロードバランシングを利用して SSL 証明書を使用することができます。
または Cloudflare などの外部 CDN サービスを使うことで独自ドメインを https で無料配信することができます。
手順
- GCS バゲットを公開設定にする
- Google Cloud ロードバランサを作成する
- Google マネージドの証明書を作成する
- DNS にレコードを登録する
- ブラウザで確認する
GCS バケットを公開する
バケットを作成する
- 左ナビゲーション メニューから [Cloud storage> バゲット] を選択して上部の [作成] をクリックします。
- バケット名を公開するドメインを入力し、ロケーションを [Region] にして使用するリージョンを選択し、ストレージ クラスを [Standard] を選択して [作成] をクリックします。
作成したバケット名が配信されるドメインになります。
バケット内のファイルは一般公開で頻繁にアクセスされるため、ストレージ クラスは Standard します。
- [このバケットに対する公開アクセス禁止を適用する] のチェックマークを外し、[確認] をクリックします。
オブジェクトの公開設定
このバゲット内のファイルを誰でもアクセスできるように一般公開の設定を行います。
すべてのユーザーがバケッド内のファイルにアクセスできるようになるため、機密情報やプライベートなファイルなどを格納しないでください。
- 作成した [バゲット] をクリックします。
- [権限] タブをクリックし、[アクセス権を付与] をクリックします。
- 新しいプリンシパルを [allUsers] を入力し、プリンシパルのロールを [Cloud Storage > Storage オブジェクト閲覧者] に選択し、[保存] をクリックします。
allUsers は、認証されたユーザーと認証されていないユーザーの両方を含めて、インターネット上の全ユーザーを指します。
Storage オブジェクト閲覧者は、オブジェクトとそのメタデータ (ACL を除く) を閲覧するためのアクセス権を持つロールです。
Google Cloud ロードバランサを作成する
GCS をロードバランサで配信する設定を行います。また、Google マネージドで SSL 証明書を作成し、ロードバランサに設定します。
ロードバランサの種類を選択する
- 左ナビゲーション メニューから [ネットワーク > ロード バランシング] を選択し、上部の [ロードバランサを作成] クリックします。
- [HTTP(S) ロード バランシング] の [構成を開始] をクリックします。
- [インターネットから VM またはサーバーレス サービスへ] を選択し、[グローバル HTTP(S) ロードバランサ] を選択して [続行] をクリックします。
フロントエンドの構成
- [フロントエンドの構成] をクリックします。
- 適用な名前を入力し、プロトコルを [HTTPS (HTTP/2 を含む)]、 IP バージョン を [IPv4]、IP address を [エフェメラル]、ポートを [443] に設定します。
エフェメラル (自動) から [IP アドレスを作成] をすることで http を https への強制リダイレクトを利用することができます。
- [証明書] 項目から [新しい証明書を作成] をクリックします
- 適当な名前を入力し、作成モードを [Google マネージドの証明書を作成する] を選択し、証明書で使用するドメインを入力して [作成] クリックします。
バックエンドの構成
- [バックエンドの構成] をクリックします。
- バックエンド サービスとバックエンド バケットから [バックエンド バケットを作成] をクリックします。
- 適当なバックエンド バケット名を入力し、Cloud Storage バケットを公開するバケットを選択し、[Cloud CDN を有効にする] にチェックを入れ、高度な構成を展開して圧縮モード [自動] に選択して [作成] をクリックします。
ルーティング ルール
- [ルーティング ルール] をクリックします。
- モードを [単純なホストとパスのルール] を選択します。
確認と完了
- [確認と完了] をクリックします。
- 作成するロードバランサの内容を確認して [作成] をクリックします。
DNS サーバーの登録する
作成した Google Cloud ロードバランサの IPアドレスを DNS サーバに登録します。
- 作成したロードバランサをクリックし、IP アドレスをコピーします。
- ドメイン コントローラーを開き、コピーした IP アドレスを A レコードで登録します。
動作確認
GCS のオブジェクトがカスタムドメインが https で表示されていることを確認します。
作成した SSL 証明書を確認する
設定したレコードと証明書が紐付いていることを確認します。
A レコードを作成してからステータスが有効になるまで数十分かかります。
- ナビゲーション メニュー [セキュリティ > Certificate Manager] を選択して [従来の証明書] タブを開き、作成した証明書のステータスが [有効] と表示されていることを確認します。
ステータスが [FAILED_NOT_VISIBLE] と表示されている場合は、作成した DNS の A レコードが正しく設定できていない可能性があります。
ブラウザで SSL を確認する
- GCS バケットに適当な画像をアップロードします。
- ブラウザを起動し、検索バーにその画像 URL を貼り付けて画像がhttps として表示されるかを確認します
Leave a Reply
View Comments