2017-11-28 3 views
2

ECSクラスター内のコンテナーへのAPIゲートウェイ要求をプロキシする必要があります。 APIゲートウェイをセキュリティグループに配置できないため、インターネットに面したALBロードバランサを介してサービスを公開する必要があります。サービスがAPI GWからのトラフィックのみを処理することを確認するには、client certificatesを使用します。ELBでのAPIゲートウェイクライアント証明書の確認

ELBに私用のAPIゲートウェイクライアント証明書を確認させ、HTTPバックエンドにリクエストを渡す前にSSL接続を終了させる方法はありますか?

ELBが証明書を確認できない場合は、プロキシをTCPプロキシに「ダウングレード」し、私のサービスでSSLハンドシェイクを実行する必要があるようです。ただし、これを行うには、サービスから証明書を提供する必要もあります。 AWSプロビジョニングされたSSL証明書を使用しているため、私は秘密鍵を持っていないので、これは問題です。したがって、SSLハンドシェイクを再作成するだけでなく、SSL証明書を別の場所から取得する必要がありますが、これは正しいですか?

ALBの背後にあるAPIゲートウェイとECSサービスの間の信頼関係を確立することが、低コストの方法です。

+0

残念ながら私は、AWS :: ElasticLoadBalancingV2 :: LoadBalancer'を使用しています。古いものではありません。これは私が "ELB"と呼んでいるものです。これはもっと適切に "ALB"でなければならないと思いますか? –

答えて

0

残念ながら、ELBはクライアント証明書の検証をサポートしていません。サービスでSSL終了を実装し、ELBをTCPモードで使用する(または新しいNLBを使用する)ことができます。クライアント証明書の秘密鍵は必要ありません。公開鍵/証明書をサービスの信頼できるCAに追加するだけで、サービスがAPI GWクライアント証明書を信頼するようにするだけです。

+0

ジャック、AWS PrivateLinkが信頼を「確立」するためにここに適用できるかどうか知っていますか? (証明書とは関係ありませんが)もう1つの質問があります - VPC内で(パブリックIPアドレスなしで)ロックされているEC2でホストされているhttpへの統合バックエンドを設定する方法はありますか? – Nicholas

+0

私が話している秘密鍵は、クライアント証明書ではなく、SSL証明書のためのものです。証明書を確認するには、NLB経由でトラフィックをパイプする必要がありますが、サービスはSSL証明書を提供する必要があります。私たちが秘密鍵を取得できないため、現在ALB上でSSLを終了するために使用しているAWSプロビジョニングされたものを使用することはできません。多分(うまくいけば)私は何かを誤解していますか? –

+0

Ah。あなたが見たように、VPC LinkはAPI GWで利用できるようになりました。これにより、クライアント認証SSLなしでバックエンド接続を保護することができます。 –

関連する問題