Application Load Balancer에서 상호 TLS 구성 - Elastic Load Balancing

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Application Load Balancer에서 상호 TLS 구성

상호 TLS 패스스루 모드를 사용하려면 클라이언트의 인증서를 수락하도록 리스너만 구성하면 됩니다. 상호 TLS 패스스루를 사용하는 경우 Application Load Balancer는 HTTP 헤더를 사용하여 전체 클라이언트 인증서 체인을 대상으로 전송하므로 애플리케이션에서 해당 인증 및 권한 부여 로직을 구현할 수 있습니다. 자세한 내용은 Application Load Balancer에 대한 HTTPS 리스너 생성을 참조하세요.

상호 TLS 확인 모드를 사용하는 경우 Application Load Balancer는 로드 밸런서가 TLS 연결을 협상할 때 클라이언트에 대해 X.509 클라이언트 인증서 인증을 수행합니다.

상호 TLS 확인 모드를 사용하려면 다음을 수행합니다.

  • 새 트러스트 스토어 리소스를 생성합니다.

  • 인증 기관(CA) 번들 및 선택적으로 해지 목록을 업로드합니다.

  • 클라이언트 인증서를 확인하도록 구성된 리스너에 트러스트 스토어를 연결합니다.

다음 절차에 따라 Application Load Balancer에서 상호 TLS 확인 모드를 구성합니다.

트러스트 스토어 생성

로드 밸런서 또는 리스너를 생성할 때 트러스트 스토어를 추가하면 트러스트 스토어가 새 리스너와 자동으로 연결됩니다. 그렇지 않으면 리스너와 직접 연결해야 합니다.

사전 조건
  • 트러스트 스토어를 생성하려면 인증 기관(CA)의 인증서 번들이 있어야 합니다.

Console

다음 예제에서는 콘솔의 트러스트 스토어 부분을 사용하여 트러스트 스토어를 생성합니다. 또는 HTTP 리스너를 생성할 때 트러스트 스토어를 생성할 수 있습니다.

트러스트 스토어를 생성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 트러스트 스토어를 선택합니다.

  3. 트러스트 스토어 생성을 선택합니다.

  4. 트러스트 스토어 구성

    1. 트러스트 스토어 이름에 트러스트 스토어의 이름을 입력합니다.

    2. 인증 기관 번들에 사용할 CA 인증서 번들의 Amazon S3 경로를 입력합니다.

    3. (선택 사항) 객체 버전을 사용하여 이전 버전의 ca 인증서 번들을 선택합니다. 그렇지 않으면 현재 버전이 사용됩니다.

  5. (선택 사항) 해지의 경우 트러스트 스토어에 인증서 해지 목록을 추가할 수 있습니다.

    1. 새 CRL 추가를 선택하고 Amazon S3에 인증서 해지 목록의 위치를 입력합니다.

    2. (선택 사항) 객체 버전을 사용하여 이전 버전의 인증서 해지 목록을 선택합니다. 그렇지 않으면 현재 버전이 사용됩니다.

  6. (선택 사항) 트러스트 스토어 태그를 확장하고 트러스트 스토어에 최대 50개의 태그를 입력합니다.

  7. 트러스트 스토어 생성을 선택합니다.

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가 트러스트 스토어를 사용할 수 있습니다. 각 보안 리스너에 하나의 트러스트 스토어만 연결할 수 있지만 여러 리스너에 하나의 트러스트 스토어를 연결할 수 있습니다.

Console

다음 절차와 같이 트러스트 스토어를 기존 리스너와 연결할 수 있습니다. 또는 HTTPS 리스너를 생성하는 동안 트러스트 스토어를 연결할 수 있습니다. 자세한 내용은 HTTPS 리스너 생성을 참조하세요.

트러스트 스토어를 연결하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 로드 밸런서를 선택합니다.

  3. 로드 밸런서를 선택합니다.

  4. 리스너 및 규칙 탭에서 프로토콜:포트 열의 링크를 선택하여 보안 리스너에 대한 세부 정보 페이지를 엽니다.

  5. 보안 탭에서 보안 리스너 설정 편집을 선택합니다.

  6. 상호 TLS가 활성화되지 않은 경우 클라이언트 인증서 처리에서 상호 인증(mTLS)을 선택한 다음 트러스트 스토어로 확인을 선택합니다.

  7. 트러스트 스토어에서 트러스트 스토어를 선택합니다.

  8. 변경 사항 저장을 선택합니다.

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 인증서 번들만 포함될 수 있지만 트러스트 스토어가 생성된 후 언제든지 CA 인증서 번들을 교체할 수 있습니다.

Console
CA 인증서 번들을 교체하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 트러스트 스토어를 선택합니다.

  3. 트러스트 스토어를 선택합니다.

  4. 작업, CA 번들 교체를 선택합니다.

  5. CA 번들 교체 페이지의 인증 기관 번들에서 원하는 CA 번들의 Amazon S3 위치를 입력합니다.

  6. (선택 사항) 객체 버전을 사용하여 이전 버전의 인증서 해지 목록을 선택합니다. 그렇지 않으면 현재 버전이 사용됩니다.

  7. 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가 부여됩니다. 취소 IDs는 트러스트 스토어에 추가된 모든 취소 목록에 대해 증가하며 변경할 수 없습니다.

Application Load Balancer는 인증서 해지 목록 내에서 일련 번호가 음수인 인증서를 취소할 수 없습니다.

Console
해지 목록을 추가하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 트러스트 스토어를 선택합니다.

  3. 트러스트 스토어를 선택하여 세부 정보 페이지를 봅니다.

  4. 인증서 해지 목록 탭에서 작업, 해지 목록 추가를 선택합니다.

  5. 해지 목록 추가 페이지의 인증서 해지 목록에서 원하는 인증서 해지 목록의 Amazon S3 위치를 입력합니다.

  6. (선택 사항) 객체 버전을 사용하여 이전 버전의 인증서 해지 목록을 선택합니다. 그러지 않으면 현재 버전이 사용됩니다.

  7. 해지 목록 추가를 선택합니다.

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
해지 목록을 삭제하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 트러스트 스토어를 선택합니다.

  3. 트러스트 스토어를 선택합니다.

  4. 인증서 해지 목록 탭에서 작업, 해지 목록 삭제를 선택합니다.

  5. 확인 메시지가 표시되면 confirm를 입력합니다.

  6. 삭제를 선택합니다.

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
트러스트 스토어를 삭제하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 트러스트 스토어를 선택합니다.

  3. 트러스트 스토어를 선택합니다.

  4. 삭제를 선택합니다.

  5. 확인 메시지가 나타나면 confirm을 입력한 다음 삭제를 선택합니다.

AWS CLI
트러스트 스토어를 삭제하려면

delete-trust-store 명령을 사용합니다.

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