見出し画像

ALBへのアクセス許可をCloudFront経由のみに限定する

こんにちは。PHR事業開発部の水澤です。

度々ご紹介していますが、弊社のサービスではインフラにAWS/GCPなどのクラウドサービスを利用しています。
構築するのもお手軽で、便利に利用させていただいております。
しかし、所々クラウドサービス側の設定に引きずられてしまうことがあります。

弊社では医療データを扱う関係から、セキュリティ設定は重要です。
厚生労働省から出ているガイドラインにもある通り、
セキュリティ品質を高く保つ必要があります。

ちょっと困るよALB

そんな「セキュリティって大事だよね」って言っている矢先、AWSのElastic Load BalancerのApplication Load Balancer(ALB)を利用しようとしても、設定できるセキュリティポリシーがTLS1.2のサポートまでで、TLS1.3の設定ができない。。
Network Load Balancer(NLB)では設定できるのに・・・
なんでポリシーが別々なのよ。仲悪いの?

それでもTLS1.3に対応したい!

ということで、CloudFront経由でALBにアクセスすることでTLS1.3の対応を行っています。

CloudFrontはTLS1.3にも対応しているので、CloudFrontで受けてALBに流すことで暗号化通信のセキュリティを保つことができます。
CloudFrontが対応しているセキュリティポリシーはこちら。

ALBはCloudFrontからのリクエストのみ受付

ALBはCloudFrontからのアクセスのみ受け付ける必要があるので、アクセス制限を付ける必要があります。
今まではCloudFrontにカスタムヘッダーを設定して、ALBでは特定のヘッダーを含むリクエストのみ、転送するように設定する必要がありました。

もっと便利に

それが2022年2月にCloudFront用のマネージドプレフィックスリストが利用できるようになりました。

プレフィックスリストとはCIDRブロックをリストにして管理できるものです。
セキュリティグループのINBOUND設定にプレフィックスリストを設定している方も多いのではないでしょうか。
マネージドプレフィックスリストとはAWSサービスのCIDRブロックが登録されたプレフィクスリストのことです。
このマネージドプレフィックスリストにCloudFrontが対応したことで、「CloudFrontからのアクセスのみ受け付けるようにしたい」という願望がさらりと設定できるようになりました。

まとめると・・

  1. CloudFrontのOriginにALBを設定する

  2. ALBのセキュリティグループのINBOUND設定にCloudFrontのマネージドプレフィックスリストを設定する

この2つだけ行えばALBはCloudFrontからのアクセスのみ受け付けるようになります。
すっごい便利。簡単。
CloudFrontに代替ドメインを設定する場合は、Originにも同一ドメインの設定が必要になります。ここは要注意。

CloudFrontのマネージドプレフィックスリストはエントリー数が最大で55個となるようです。
セキュリティグループのルール数はデフォルトで60個までなので、状況に応じて緩和依頼をする必要があります。

おわりに

クラウドサービスは提供されるサービスを組み合わせて利用することで、本来は複雑なインフラ環境も用意に構築することができます。
各サービスもすごい速さでアップデートされているので、さらに便利に利用しやすくなっていっています。
サービスのリリース/アップデート情報はアンテナを張って見逃すことがないようにしたいところです。