Application Load Balancer での相互 TLS の設定
相互 TLS パススルーモードの使用に必要な手順は、クライアントからの証明書を受け入れるようにリスナーを設定することだけです。相互 TLS パススルーを使用する場合、Application Load Balancer は HTTP ヘッダーを使用してクライアント証明書チェーン全体をターゲットに送信します。これにより、対応する認証ロジックと認可ロジックをアプリケーションに実装することができます。詳細については、 のCreate an HTTPS Listener for Your Application Load Balancerを参照してください。
相互 TLS 検証モードを使用すると、Application Load Balancer は、ロードバランサーが TLS 接続をネゴシエートするときに、クライアントに対して X.509 クライアント証明書認証を実行します。
相互 TLS 検証モードを使用するには、以下を実行します。
Application Load Balancer で相互 TLS 検証モードを設定するには、以下の手順を使用します。
トラストストアを作成する
ロードバランサーまたはリスナーを作成するときにトラストストアを追加すると、トラストストアは自動的に新しいリスナーに関連付けられます。それ以外の場合は、自分でリスナーに関連付ける必要があります。
- Console
-
次の例では、コンソールの [トラストストア] 部分を使用してトラストストアを作成します。または、HTTP リスナーを作成するときに信頼ストアを作成することもできます。
トラストストアを作成するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
ナビゲーションペインで [トラストストア] を選択します。
-
[トラストストアを作成] を選択します。
-
トラストストアの設定
-
[トラストストアの名前] に、トラストストアの名前を入力します。
-
[認証局バンドル] に、使用する CA 証明書バンドルへの、Amazon S3 パスを入力します。
-
(オプション) 以前のバージョンの CA 証明書バンドルを選択するときは [オブジェクトバージョン] を使用します。選択しなければ現在のバージョンが使用されます。
-
(オプション) [失効] では、証明書失効リストをトラストストアに追加できます。
-
[新しい CRL を追加] を選択し、Amazon S3 で証明書失効リストの場所を入力します。
-
(オプション) 以前のバージョンの証明書失効リストを選択するときは [オブジェクトバージョン] を使用します。選択しなければ現在のバージョンが使用されます。
-
(オプション) [トラストストアのタグ] を展開し、トラストストアに最大 50 個のタグを入力します。
-
[トラストストアを作成] を選択します。
- AWS CLI
-
トラストストアを作成するには
create-trust-store コマンドを使用します。
aws elbv2 create-trust-store \
--name my-trust-store \
--ca-certificates-bundle-s3-bucket amzn-s3-demo-bucket \
--ca-certificates-bundle-s3-key certificates/ca-bundle.pem
- CloudFormation
-
トラストストアを作成するには
AWS::ElasticLoadBalancingV2::TrustStore リソースタイプを追加します。
Resources:
myTrustStore:
Type: 'AWS::ElasticLoadBalancingV2::TrustStore'
Properties:
Name: my-trust-store
CaCertificatesBundleS3Bucket: amzn-s3-demo-bucket
CaCertificatesBundleS3Key: certificates/ca-bundle.pem
トラストストアを関連付ける
トラストストアを作成したらこれをリスナーに関連付け、Application Load Balancer がトラストストアの使用を開始できるようにします。各セキュアリスナーに関連付けることができるトラストストアは 1 つのみですが、1 つのトラストストアは複数のリスナーに関連付けることができます。
- Console
-
次の手順に示すように、トラストストアを既存のリスナーに関連付けることができます。トラストストアは、HTTPS リスナーの作成中に関連付けることもできます。詳細については、「HTTPS リスナーを作成する」を参照してください。
トラストストアを関連付けるには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
ナビゲーションペインで、[ロードバランサー] を選択します。
-
ロードバランサーを選択します。
-
[リスナーとルール] タブで [Protocol:Port] 列のリンクをクリックし、セキュアリスナーの詳細ページを開きます。
-
[セキュリティ] タブで [セキュアリスナーの設定を編集] を選択します。
-
相互 TLS が有効になっていない場合は、[クライアント証明書の処理] の [相互認証 (mTLS)] を選択し、[トラストストアで検証] を選択します。
-
[トラストストア] では、トラストストアを選択します。
-
[変更の保存] をクリックします。
- AWS CLI
-
トラストストアを関連付けるには
modify-listener コマンドを使用します。
aws elbv2 modify-listener \
--listener-arn listener-arn \
--mutual-authentication "Mode=verify,TrustStoreArn=trust-store-arn"
- CloudFormation
-
トラストストアを関連付けるには
AWS::ElasticLoadBalancingV2::Listener リソースを更新します。
Resources:
myHTTPSListener:
Type: 'AWS::ElasticLoadBalancingV2::Listener'
Properties:
LoadBalancerArn: !Ref myLoadBalancer
Protocol: HTTPS
Port: 443
DefaultActions:
- Type: "forward"
TargetGroupArn: !Ref myTargetGroup
SslPolicy: ELBSecurityPolicy-TLS13-1-2-2021-06
Certificates:
- CertificateArn: certificate-arn
MutualAuthentication:
- Mode: verify
TrustStoreArn: trust-store-arn
CA 証明書バンドルを置き換える
CA 証明書バンドルはトラストストアの必須コンポーネントです。認証機関が検証した、信頼できるルート証明書と中間証明書で構成されています。検証済みのこれらの証明書により、クライアントは、提示された証明書がロードバランサーによって所有されているものであることを確認できます。
トラストストアに含めることのできる CA 証明書バンドルは一度に 1 つのみですが、トラストストアを作成した後は、随時 CA 証明書バンドルを置き換えることができます。
- Console
-
CA 証明書バンドルを置き換えるには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
ナビゲーションペインで [トラストストア] を選択します。
-
トラストストアを選択します。
-
[アクション] を選択し [CA バンドルを置き換える] を選択します。
-
[CA バンドルを置き換える] ページの [認証局バンドル] で、目的の CA バンドルの、Amazon S3 でのロケーションを入力します。
-
(オプション) 以前のバージョンの証明書失効リストを選択するときは [オブジェクトバージョン] を使用します。選択しなければ現在のバージョンが使用されます。
-
[CA バンドルを置き換える] を選択します。
- AWS CLI
-
CA 証明書バンドルを置き換えるには
modify-trust-store コマンドを使用します。
aws elbv2 modify-trust-store \
--trust-store-arn trust-store-arn \
--ca-certificates-bundle-s3-bucket amzn-s3-demo-bucket-new \
--ca-certificates-bundle-s3-key certificates/new-ca-bundle-pem
- CloudFormation
-
CA 証明書バンドルを更新するには
AWS::ElasticLoadBalancingV2::TrustStore リソースタイプを追加します。
Resources:
myTrustStore:
Type: 'AWS::ElasticLoadBalancingV2::TrustStore'
Properties:
Name: my-trust-store
CaCertificatesBundleS3Bucket: amzn-s3-demo-bucket-new
CaCertificatesBundleS3Key: certificates/new-ca-bundle.pem
証明書失効リストを追加する
必要に応じてトラストストアの証明書失効リストを作成できます。失効リストは認証機関が発行するもので、失効した証明書のデータが含まれています。Application Load Balancer がサポートしているのは PEM 形式の証明書失効リストのみです。
証明書失効リストがトラストストアに追加されると、リストに失効 ID が付与されます。失効 ID はトラストストアに失効リストが追加されるたびに増え、変更することはできません。
Application Load Balancer は、証明書失効リストでシリアル番号がマイナスになっている証明書を取り消すことはできません。
- Console
-
失効リストを追加するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
ナビゲーションペインで [トラストストア] を選択します。
-
トラストストアを選択して詳細ページを表示します。
-
[証明書失効リスト] タブで [アクション] を選択し、[失効リストを追加] を選択します。
-
[失効リストを追加] ページの [証明書失効リスト] に、目的の証明書失効リストの、Amazon S3 でのロケーションを入力します。
-
(オプション) 以前のバージョンの証明書失効リストを選択するときは [オブジェクトバージョン] を使用します。選択しなければ現在のバージョンが使用されます。
-
[失効リストを追加] を選択します。
- AWS CLI
-
失効リストを追加するには
add-trust-store-revocations コマンドを使用します。
aws elbv2 add-trust-store-revocations \
--trust-store-arn trust-store-arn \
--revocation-contents "S3Bucket=amzn-s3-demo-bucket,S3Key=crl/revoked-list.crl,RevocationType=CRL"
- CloudFormation
-
失効リストを追加するには
AWS::ElasticLoadBalancingV2::TrustStoreRevocation リソースタイプを追加します。
Resources:
myRevocationContents:
Type: 'AWS:ElasticLoadBalancingV2::TrustStoreRevocation'
Properties:
TrustStoreArn: !Ref myTrustStore
RevocationContents:
- RevocationType: CRL
S3Bucket: amzn-s3-demo-bucket
S3Key: crl/revoked-list.crl
証明書失効リストを削除する
証明書失効リストが不要になった場合は、削除できます。証明書失効リストをトラストストアから削除した場合、その失効 ID も削除されてそのトラストストアの存続中は再利用されません。
- Console
-
- AWS CLI
-
失効リストを削除するには
remove-trust-store-revocations コマンドを使用します。
aws elbv2 remove-trust-store-revocations \
--trust-store-arn trust-store-arn \
--revocation-ids id-1 id-2 id-3
トラストストアを削除する
トラストストアとして使用する必要がなくなったときは、これを削除できます。リスナーに関連付けられているトラストストアは削除できません。
- Console
-
- AWS CLI
-
トラストストアを削除するには
delete-trust-store コマンドを使用します。
aws elbv2 delete-trust-store \
--trust-store-arn trust-store-arn