スクリーンショット_2020-01-30_00

AWS習得編 ゼロからわかるAWS超入門 CHAPTER7

https://www.amazon.co.jp/ゼロからわかる-Amazon-Services超入門-はじめてのクラウド-かんたんIT基礎講座-ebook/dp/B07TFTGHMX/ref=dp_kinw_strp_2
こちらの書籍について学んだことです。

CHAPTER7 安全な通信を使おう

https化
通信を複数のサーバーに割り振りできるロードバランサー

7-1 通信をSSL/TLSで暗号化するには

SSLとTLS

7-1-1 SSL/TLSによる暗号化の基本

Webサーバー側に秘密鍵と証明書が必要

秘密鍵は第三者に見られたらNG

証明書はその鍵が正しいことを証明する

7-1-2 秘密鍵と証明書の作成

証明書は認証局と呼ばれる第三者が鍵の正当性を保証したデータ

流れは以下の通り
①秘密鍵と公開鍵の作成
専用ツール使ってランダム生成

②CSR
①は暗号化に使うための鍵でしかない。
ドメイン名、企業名、部署名などの「どこで使うのか」というデータを追加してCSRを作成する。
Certificate Signing Request
日本語訳で証明書署名要求

③証明書を作ってもらう
②のファイルを、認証局と呼ばれる、いわゆる「サーバー証明書の作成を業とする企業」に送る。そうすると内容の正当性が確認され、確認が済むと証明書がもらえる

サーバー証明書はお金かかる。
ただ、AWSでは特定の条件を満たす場合に限り、AWS Certificate Managerという機能を使って無料で証明書を作れる。

7-1-3 AWSにおいてSSL/TLSを使うための構成

2通りある

①EC2インスタンスなどに証明書をインストール

AWS以外でも使われる一般的な方法

②ロードバランサー(ELB)やCloudFrontを利用

ユーザーとEC2インスタンスやS3バケットとの間に、通信を暗号化して中継する機能を持つ「Elastic Load Balancer」や「CloudFront」と呼ばれるサービスを導入する

web->ロードバランサー->EC2
web->CloudFront->S3

暗号化するのはwebとロードバランサーおよびwebとCloudFrontの間のみ。
秘密鍵と証明書を置くのはロードバランサーとCloudFront

今回は②を使う

EC2インスタンスなどに証明書をインストールする場合のメリットとデメリット
メリット
AWSではない従来のオンプレミスの場合と設定が同じ
ロードバランサーの費用がかからない
デメリット
AWS Certificate Managerが使えないので証明書発行のコストがかかる
S3バケットのWeb site hostingでは使えない

ロードバランサーやCloudFrontを使う場合のメリット・デメリット
メリット
AWS Certificate Managerが使えるので証明書発行のコストはかからない
EC2インスタンスやS3バケットの設定変更が必要ない
デメリット
全体が暗号化されるわけではなくロードバランサーから先は暗号化されない。その先はAWS網なので第三者による盗聴される恐れはないが、気になることもあるかも知れない。
EC2インスタンスやS3バケットはユーザーが直接アクセスしているのではなくロードバランサーやCloudFrontから接続されているように見える。そのためアクセスログを記録しているような場合には、ロードバランサーやCloudFrontから渡されるユーザーのIPアドレスを集計するように修正しなければならないことがある
ロードバランサーやCloufFrontの費用がかかる

ロードバランサーやCloudFrontの費用

東京リージョンの場合1時間当たり0.243ドル。一ヶ月で17.5ドル

CloudFront
めんどい

いずれも変な使い方しなきゃ無料枠

7-2 この章での操作の流れ

6章で作ったやつ使うらしい


7-2-1 証明書の作成

ロードバランサーも東京リージョンにする

CloudFrontはバージニアリージョン(米国東部(バージニア北部))で作成しなければならないという決まりがある。つまり、この部分だけはバージニアリージョンでAWS Certificate Managerを操作する

7-2-2 SSL/TLSを有効にしたロードバランサーの配置

ロードバランサーの下にはEC2インスタンスを配置

7-2-3 SSL/TLSを有効にしたCloudFrontの配置

S3バケット向けにCloudFrontを配置

AWSはLambdaが人気高い
他にも、
VPS AWS Lightsail
NoSQLデータベースのDynamoDB
データ分析に用いるRedshift
も人気高い

7-3 証明書の作成

URLのおさらい

EC2
http://ec2-13-112-230-25.ap-northeast-1.compute.amazonaws.com
ドメイン名はec2-13-112-230-25.ap-northeast-1.compute.amazonaws.com

S3
http://www.jun-web-free.com.s3-website-ap-northeast-1.amazonaws.com
ドメイン名はwww.jun-web-free.com.s3-website-ap-northeast-1.amazonaws.com

7-3-1 AWS Certificate Managerを開く

AWS Certificate managerを開く
証明書のプロビジョニングをポチ

7-3-2 証明書を作成する(ロードバランサー)

東京リージョンであることを確認
パブリック証明書のリクエストを選択した状態で証明書のリクエストをポチ
ドメイン名をec2-13-112-230-25.ap-northeast-1.compute.amazonaws.comにして次へをポチ
今回はRoute53を使っていないためEmailを選択して次へをポチ
タグは特にいらないので空欄で確認をポチ
確定とリクエストをポチ
リクエストが失敗した。
追加の検証が必要とのこと。

まぁここから先はRoute53でドメインを取得してからやろうかな。
S3でCloudFrontはやらない気がする。

7-3-3 証明書を作成する(CloudFront)

7-4 ロードバランサーを構成する
7-4-1 ロードバランサーを作成する
7-4-2 通信を暗号化するロードバランサー
7-4-3 ロードバランサーにドメイン名でアクセスできるようにする
7-5 CloudFrontを構成する
7-5-1 CloudFrontダッシュボードを開く
7-5-2 SSL/TLS通信するCloudFrontディストリビューション
7-5-3 CloudFrontにドメイン名でアクセスできるようにする
7-5-4 静的Webホスティングを指すように調整する

後始末
EC2インスタンス削除
DBインスタンス削除
S3バケット削除

SSL/TLSで暗号化するには証明書が必要。証明書は秘密鍵と公開鍵を作成し、その公開鍵を認証局に確認してもらったもの・
AWS Certificate Managerを使うと、無料で証明書を生成できる。
ロードバランサーは負荷を分散するシステム。証明書をインストールすれば、SSL/TLSで暗号化通信できるようになる
CloudFrontはキャッシュするシステム。証明書をインストールすればSSL/TLSで暗号化通信できるようになる。


この記事が気に入ったらサポートをしてみませんか?