ロードバランサーでの HTTPS 終端の設定 - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ロードバランサーでの HTTPS 終端の設定

AWS Elastic Beanstalk 環境を更新して HTTPS を使用するには、環境内でロードバランサー用の HTTPS リスナーを設定する必要があります。HTTPS リスナーは、Classic Load Balancer とApplication Load Balancer の 2 種類のロードバランサーをサポートします。

Elastic Beanstalk コンソールまたは設定ファイルのいずれかを使用して、セキュアリスナーを設定し、証明書を割り当てることができます。

注記

単一インスタンス環境にはロードバランサーが存在せず、ロードバランサーでは HTTPS 接尾辞はサポートされません。

Elastic Beanstalk コンソールを使用したセキュアリスナーの設定

お客様の環境のロードバランサーに証明書を割り当てるには
  1. Elastic Beanstalk コンソールを開き、[Regions] (リージョン) リストで AWS リージョンを選択します。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [ロードバランサー] 設定カテゴリで、[編集] を選択します。

    注記

    [ロードバランサー] 設定カテゴリに [編集] ボタンがない場合、お客様の環境にはロードバランサーがありません。

  5. [ロードバランサーの変更] ページの手順は、環境に関連付けられるロードバランサーのタイプによって異なります。

    • Classic Load Balancer

      1. [リスナーの追加] を選択します。

      2. [Classic Load Balancer リスナー] ダイアログボックスで次の設定を構成します。

        • [リスナーポート] に着信トラフィックポートを入力します (通常の場合は、443)。

        • [リスナープロトコル] で [HTTPS] を選択します。

        • [インスタンスポート] に 80 と入力します。

        • [インスタンスのプロトコル] で [HTTP] を選択します。

        • [SSL 証明書] で、証明書を選択します。

      3. [追加] を選択します。

    • Application Load Balancer

      1. [リスナーの追加] を選択します。

      2. [Application Load Balancer リスナー] ダイアログボックスで次の設定を構成します。

        • [ポート] で着信トラフィックポートを入力します (通常の場合は、443)。

        • [プロトコル] として [HTTPS] を選択します。

        • [SSL 証明書] で、証明書を選択します。

      3. [追加] を選択します。

      注記

      Classic Load Balancer および Application Load Balancer について、ドロップダウン・メニューに証明書が表示されない場合は、AWS Certificate Manager (ACM)カスタムドメイン名の証明書を作成またはアップロードします (推奨)。または、AWS CLI で 証明書を IAM にアップロードします。

    • Network Load Balancer

      1. [リスナーの追加] を選択します。

      2. [Network Load Balancer リスナー] ダイアログボックスで、[ポート] に着信トラフィックポート (通常は 443) を入力します。

      3. [追加] を選択します。

  6. ページの最下部で [適用] を選択し変更を保存します。

設定ファイルを使用したセキュアリスナーの設定

次のいずれかの 設定ファイルを使用して、ロードバランサーに対してセキュアなリスナーを設定できます。

例 .ebextensions/securelistener-clb.config

この例は、環境に Classic Load Balancer がある場合に使用します。この例では、 指定した証明書を使用して ポート 443 の HTTPS リスナーを設定し、復号化されたトラフィックがポート 80 上でお客様の環境内のインスタンスに転送されるように、aws:elb:listener 名前空間のオプションを使用します。

option_settings: aws:elb:listener:443: SSLCertificateId: arn:aws:acm:us-east-2:1234567890123:certificate/#################################### ListenerProtocol: HTTPS InstancePort: 80

強調表示されたテキストを証明書の ARN に置き換えます。証明書としては、AWS Certificate Manager (ACM) で作成またはアップロードしたものか (推奨)、AWS CLI を使用して IAM にアップロードしたものを指定できます。

Classic Load Balancer の設定オプションの詳細については、「Classic Load Balancer 設定の名前空間」を参照してください。

例 .ebextensions/securelistener-alb.config

この例は、環境に Application Load Balancer がある場合に使用します。この例では、aws:elbv2:listener 名前空間内のオプションを使用して、指定した証明書によりポート 443 上の HTTPS リスナーを設定しています。リスナーは、デフォルトのプロセスにトラフィックをルーティングします。

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true' Protocol: HTTPS SSLCertificateArns: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
例 .ebextensions/securelistener-nlb.config

この例は、環境に Network Load Balancer がある場合に使用します。この例では、aws:elbv2:listener 名前空間内のオプションを使用して、ポート 443 のリスナーを設定します。リスナーは、デフォルトのプロセスにトラフィックをルーティングします。

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true'

セキュリティグループを設定する

ポート 80 以外のインスタンスポートにトラフィックを転送するようにロードバランサーを設定する場合は、ロードバランサーからのインスタンスポート上のインバウンドトラフィックを許可するルールをセキュリティグループに追加する必要があります。カスタム VPC で環境を作成すると、Elastic Beanstalk によってこのルールが自動的に追加されます。

このルールは、Resources キーを、アプリケーションの .ebextensions ディレクトリにある設定ファイルに追加することで追加できます。

次の設定ファイルの例では、AWSEBSecurityGroup セキュリティグループに進入ルールを追加します。これにより、ロードバランサーのセキュリティグループからポート 1000 へのトラフィックが許可されます。

例 .ebextensions/sg-ingressfromlb.config
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 1000 FromPort: 1000 SourceSecurityGroupId: {"Fn::GetAtt" : ["AWSEBLoadBalancerSecurityGroup", "GroupId"]}