

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

# Application Load Balancer での相互 TLS の設定
<a name="configuring-mtls-with-elb"></a>

相互 TLS パススルーモードの使用に必要な手順は、クライアントからの証明書を受け入れるようにリスナーを設定することだけです。相互 TLS パススルーを使用する場合、Application Load Balancer は HTTP ヘッダーを使用してクライアント証明書チェーン全体をターゲットに送信します。これにより、対応する認証ロジックと認可ロジックをアプリケーションに実装することができます。詳細については、 の[Create an HTTPS Listener for Your Application Load Balancer](create-https-listener.md)を参照してください。

 相互 TLS 検証モードを使用すると、Application Load Balancer は、ロードバランサーが TLS 接続をネゴシエートするときに、クライアントに対して X.509 クライアント証明書認証を実行します。

相互 TLS 検証モードを使用するには、以下を実行します。
+ 新しいトラストストアリソースを作成する。
+ 認証局 (CA) バンドルと、オプションで失効リストをアップロードする。
+ クライアント証明書を検証するように設定されたリスナーにトラストストアをアタッチする。

Application Load Balancer で相互 TLS 検証モードを設定するには、以下の手順を使用します。

**Topics**
+ [トラストストアを作成する](#create-trust-store)
+ [トラストストアを関連付ける](#associate-trust-store)
+ [CA 証明書バンドルを置き換える](#replace-ca-cert-bundle)
+ [証明書失効リストを追加する](#add-cert-revocation-list)
+ [証明書失効リストを削除する](#delete-cert-revocation-list)
+ [トラストストアを削除する](#delete-trust-store)

## トラストストアを作成する
<a name="create-trust-store"></a>

ロードバランサーまたはリスナーを作成するときにトラストストアを追加すると、トラストストアは自動的に新しいリスナーに関連付けられます。それ以外の場合は、自分でリスナーに関連付ける必要があります。

**前提条件**
+ トラストストアを作成するには、認証局 (CA) の証明書バンドルが必要です。

------
#### [ Console ]

次の例では、コンソールの **[トラストストア]** 部分を使用してトラストストアを作成します。または、HTTP リスナーを作成するときに信頼ストアを作成することもできます。

**トラストストアを作成するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで **[トラストストア]** を選択します。

1. **[トラストストアを作成]** を選択します。

1. **[トラストストアの設定]**

   1. **[トラストストアの名前]** に、トラストストアの名前を入力します。

   1. **[認証局バンドル]** に、使用する CA 証明書バンドルへの、Amazon S3 パスを入力します。

   1. (オプション) 以前のバージョンの CA 証明書バンドルを選択するときは **[オブジェクトバージョン]** を使用します。選択しなければ現在のバージョンが使用されます。

1. (オプション) **[失効]** では、証明書失効リストをトラストストアに追加できます。

   1. **[新しい CRL を追加]** を選択し、Amazon S3 で証明書失効リストの場所を入力します。

   1. (オプション) 以前のバージョンの証明書失効リストを選択するときは **[オブジェクトバージョン]** を使用します。選択しなければ現在のバージョンが使用されます。

1. (オプション) **[トラストストアのタグ]** を展開し、トラストストアに最大 50 個のタグを入力します。

1. **[トラストストアを作成]** を選択します。

------
#### [ AWS CLI ]

**トラストストアを作成するには**  
[create-trust-store](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-trust-store.html) コマンドを使用します。

```
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](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-truststore.html) リソースタイプを追加します。

```
Resources:
  myTrustStore:
    Type: 'AWS::ElasticLoadBalancingV2::TrustStore'
    Properties:
      Name: my-trust-store
      CaCertificatesBundleS3Bucket: amzn-s3-demo-bucket
      CaCertificatesBundleS3Key: certificates/ca-bundle.pem
```

------

## トラストストアを関連付ける
<a name="associate-trust-store"></a>

トラストストアを作成したらこれをリスナーに関連付け、Application Load Balancer がトラストストアの使用を開始できるようにします。各セキュアリスナーに関連付けることができるトラストストアは 1 つのみですが、1 つのトラストストアは複数のリスナーに関連付けることができます。

------
#### [ Console ]

次の手順に示すように、トラストストアを既存のリスナーに関連付けることができます。トラストストアは、HTTPS リスナーの作成中に関連付けることもできます。詳細については、「[HTTPS リスナーを作成する](create-https-listener.md)」を参照してください。

**トラストストアを関連付けるには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、[**ロードバランサー**] を選択します。

1. ロードバランサーを選択します。

1. **[リスナーとルール]** タブで **[Protocol:Port]** 列のリンクをクリックし、セキュアリスナーの詳細ページを開きます。

1. **[セキュリティ]** タブで **[セキュアリスナーの設定を編集]** を選択します。

1. 相互 TLS が有効になっていない場合は、**[クライアント証明書の処理]** の **[相互認証 (mTLS)]** を選択し、**[トラストストアで検証]** を選択します。

1. **[トラストストア]** では、トラストストアを選択します。

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ AWS CLI ]

**トラストストアを関連付けるには**  
[modify-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-listener.html) コマンドを使用します。

```
aws elbv2 modify-listener \
    --listener-arn listener-arn \
    --mutual-authentication "Mode=verify,TrustStoreArn=trust-store-arn"
```

------
#### [ CloudFormation ]

**トラストストアを関連付けるには**  
[AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html) リソースを更新します。

```
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 証明書バンドルを置き換える
<a name="replace-ca-cert-bundle"></a>

CA 証明書バンドルはトラストストアの必須コンポーネントです。認証機関が検証した、信頼できるルート証明書と中間証明書で構成されています。検証済みのこれらの証明書により、クライアントは、提示された証明書がロードバランサーによって所有されているものであることを確認できます。

トラストストアに含めることのできる CA 証明書バンドルは一度に 1 つのみですが、トラストストアを作成した後は、随時 CA 証明書バンドルを置き換えることができます。

------
#### [ Console ]

**CA 証明書バンドルを置き換えるには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで **[トラストストア]** を選択します。

1. トラストストアを選択します。

1. **[アクション]** を選択し **[CA バンドルを置き換える]** を選択します。

1. **[CA バンドルを置き換える]** ページの **[認証局バンドル]** で、目的の CA バンドルの、Amazon S3 でのロケーションを入力します。

1. (オプション) 以前のバージョンの証明書失効リストを選択するときは **[オブジェクトバージョン]** を使用します。選択しなければ現在のバージョンが使用されます。

1. **[CA バンドルを置き換える] **を選択します。

------
#### [ AWS CLI ]

**CA 証明書バンドルを置き換えるには**  
[modify-trust-store](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-trust-store.html) コマンドを使用します。

```
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](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-truststore.html) リソースタイプを追加します。

```
Resources:
  myTrustStore:
    Type: 'AWS::ElasticLoadBalancingV2::TrustStore'
    Properties:
      Name: my-trust-store
      CaCertificatesBundleS3Bucket: amzn-s3-demo-bucket-new
      CaCertificatesBundleS3Key: certificates/new-ca-bundle.pem
```

------

## 証明書失効リストを追加する
<a name="add-cert-revocation-list"></a>

必要に応じてトラストストアの証明書失効リストを作成できます。失効リストは認証機関が発行するもので、失効した証明書のデータが含まれています。Application Load Balancer がサポートしているのは PEM 形式の証明書失効リストのみです。

証明書失効リストがトラストストアに追加されると、リストに失効 ID が付与されます。失効 ID はトラストストアに失効リストが追加されるたびに増え、変更することはできません。

Application Load Balancer は、証明書失効リストでシリアル番号がマイナスになっている証明書を取り消すことはできません。

------
#### [ Console ]

**失効リストを追加するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで **[トラストストア]** を選択します。

1. トラストストアを選択して詳細ページを表示します。

1. **[証明書失効リスト]** タブで **[アクション]** を選択し、**[失効リストを追加]** を選択します。

1. **[失効リストを追加]** ページの **[証明書失効リスト]** に、目的の証明書失効リストの、Amazon S3 でのロケーションを入力します。

1. (オプション) 以前のバージョンの証明書失効リストを選択するときは **[オブジェクトバージョン]** を使用します。選択しなければ現在のバージョンが使用されます。

1. **[失効リストを追加]** を選択します。

------
#### [ AWS CLI ]

**失効リストを追加するには**  
[add-trust-store-revocations](https://docs.aws.amazon.com/cli/latest/reference/elbv2/add-trust-store-revocations.html) コマンドを使用します。

```
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](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-truststorerevocation.html) リソースタイプを追加します。

```
Resources:
  myRevocationContents:
    Type: 'AWS:ElasticLoadBalancingV2::TrustStoreRevocation'
    Properties:
      TrustStoreArn: !Ref myTrustStore
      RevocationContents:
        - RevocationType: CRL
          S3Bucket: amzn-s3-demo-bucket
          S3Key: crl/revoked-list.crl
```

------

## 証明書失効リストを削除する
<a name="delete-cert-revocation-list"></a>

証明書失効リストが不要になった場合は、削除できます。証明書失効リストをトラストストアから削除した場合、その失効 ID も削除されてそのトラストストアの存続中は再利用されません。

------
#### [ Console ]

**失効リストを削除するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで **[トラストストア]** を選択します。

1. トラストストアを選択します。

1. **[証明書失効リスト]** タブで **[アクション]** を選択し、**[失効リストを削除]** を選択します。

1. 確認を求められたら、**confirm** をクリックしてください。

1. **[削除]** を選択します。

------
#### [ AWS CLI ]

**失効リストを削除するには**  
[remove-trust-store-revocations](https://docs.aws.amazon.com/cli/latest/reference/elbv2/remove-trust-store-revocations.html) コマンドを使用します。

```
aws elbv2 remove-trust-store-revocations \
    --trust-store-arn trust-store-arn \
    --revocation-ids id-1 id-2 id-3
```

------

## トラストストアを削除する
<a name="delete-trust-store"></a>

トラストストアとして使用する必要がなくなったときは、これを削除できます。リスナーに関連付けられているトラストストアは削除できません。

------
#### [ Console ]

**トラストストアを削除するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで **[トラストストア]** を選択します。

1. トラストストアを選択します。

1. **[削除]** を選択します。

1. 確認を求められたら、`confirm`と入力し、[**削除**] を選択します。

------
#### [ AWS CLI ]

**トラストストアを削除するには**  
[delete-trust-store](https://docs.aws.amazon.com/cli/latest/reference/elbv2/delete-trust-store.html) コマンドを使用します。

```
aws elbv2 delete-trust-store \
    --trust-store-arn trust-store-arn
```

------