Amazon Web Services 한국 블로그

Application Load Balancer 상호 인증 기능 – 인증서 기반 클라이언트 ID 인증 가능

오늘 AWS는 Application Load Balancer에 X509 인증서를 제공하는 상호 인증 클라이언트에 대한 지원 기능을 발표합니다. 이제 이 새로운 기능을 사용하여 클라이언트 인증을 로드 밸런서에 오프로드함으로써 신뢰할 수 있는 클라이언트만 백엔드 애플리케이션과 통신하도록 할 수 있습니다. 이 새로운 기능은 개발자가 신뢰성 높고 강력한 암호화 기능과 제로 데이 취약성에 대한 보호 기능을 제공하는 AWS의 오픈 소스 전송 계층 보안(TLS) 구현인 S2N을 기반으로 합니다.

상호 인증(mTLS)은 일반적으로 온라인 뱅킹, 자동차 또는 게임 디바이스와 같은 기업 간(B2B) 애플리케이션에서 디지털 인증서로 디바이스를 인증하는 데 사용됩니다. 기업들은 일반적으로 데이터 및 서비스에 대한 액세스 권한을 부여하기 전에, 이 기능을 사설 인증 기관(CA)과 함께 사용하여 클라이언트를 인증합니다.

기존에 고객들이 자체 제작 솔루션 또는 서드 파티 솔루션을 사용하여 상호 인증을 구현하다 보니 추가적인 시간이 들고 관리 오버헤드가 발생했습니다. 이들 고객은 엔지니어링 리소스를 사용하여 백엔드에 기능을 구축하고, 최신 보안 패치를 적용하기 위해 코드를 업데이트하며, 인증서를 생성 및 교체하기 위해 인프라에 막대한 투자를 합니다.

Application Load Balancer의 상호 인증을 사용하면 개발자 리소스가 다른 중요한 프로젝트에 집중할 수 있도록 해주는 확장 가능하고 비용 효율적인 완전관리형 솔루션을 얻게 됩니다. ALB는 해지 검사를 통해 클라이언트를 인증하고 클라이언트 인증서 정보를 대상에 전달합니다. 이 정보는 애플리케이션이 권한을 부여하는 데 사용할 수 있습니다.

ALB에서 상호 인증 시작하기
ALB에서 상호 인증을 활성화하려면 Amazon EC2 콘솔의 ALB 마법사에서 Application Load Balancer 생성을 선택합니다. 리스너 및 라우팅 섹션에서 HTTPS를 선택하면 보안 정책, 기본 서버 인증서, 상호 인증을 지원하는 새 클라이언트 인증서 처리 옵션 등의 추가 설정이 표시됩니다.

상호 인증(mTLS)을 활성화하면 리스너가 클라이언트 인증서를 제공하는 요청을 처리하는 방법을 구성할 수 있습니다. 이 같은 구성에는 Application Load Balancer가 인증서를 인증하는 방법과 백엔드 대상으로 전송되는 인증서 메타데이터의 양이 포함됩니다.

상호 인증 옵션은 두 가지가 있습니다. 패스스루 옵션을 선택하면 HTTP 헤더를 사용하여 클라이언트로부터 받은 모든 클라이언트 인증서 체인을 백엔드 애플리케이션으로 보냅니다. mTLS가 활성화된 Application Load Balancer는 핸드셰이크에서 클라이언트 인증서를 가져오고, TLS 연결을 설정한 다음, HTTPS 헤더에 있는 모든 항목을 대상 애플리케이션으로 보냅니다. 애플리케이션은 클라이언트를 인증하기 위해 클라이언트 인증서 체인을 확인해야 합니다.

Application Load Balancer와 클라이언트는 Verify with trust store(트러스트 스토어로 확인) 옵션을 사용하여 서로의 ID를 확인하고 TLS 연결을 설정하여 둘 간의 통신을 암호화합니다. 새로운 트러스트 스토어 기능이 도입되었습니다. AWS Private Certificate Authority 또는 기타 서드 파티 CA에서 생성한 루트 또는 중간 인증서가 포함된 CA 번들을 트러스트 소스에 업로드하여 클라이언트 인증서를 검증할 수 있습니다.

기존 트러스트 스토어를 선택하거나 새 트러스트 스토어를 만들어야 합니다. 트러스트 스토어에는 CA, 신뢰할 수 있는 인증서 및 선택적인 인증서 해지 목록(CRL)이 포함됩니다. 로드 밸런서는 트러스트 스토어를 사용하여 클라이언트와의 상호 인증을 수행합니다.

이 옵션을 사용하여 새 트러스트 스토어를 생성하려면 Amazon EC2 콘솔의 왼쪽 메뉴에서 트러스트 스토어를 선택하고 트러스트 스토어 생성을 선택합니다.

PEM 형식의 CA 인증서 번들을 선택할 수 있으며, Amazon Simple Storage Service(S3) 버킷에서 CRL을 선택할 수도 있습니다. CA 인증서 번들은 트러스트 스토어에 사용되는 CA 인증서(루트 또는 중간) 그룹입니다. CRL은 CA가 손상된 클라이언트 인증서를 해지하고, 사용자가 해지된 해당 인증서를 거부해야 하는 경우에 사용할 수 있습니다. CA 번들을 교체하고, 생성 후 트러스트 스토어에서 CRL을 추가 또는 제거할 수 있습니다.

create-trust-store와 같은 새 API와 함께 AWS Command Line Interface(AWS CLI)를 사용하여 CA 정보를 업로드하고, Application Load Balancer 리스너에서 상호 인증 모드를 구성하며, 사용자 인증서 정보를 대상으로 보낼 수 있습니다.

$ aws elbv2 create-trust-store --name my-tls-name \
    --ca-certificates-bundle-s3-bucket channy-certs \
    --ca-certificates-bundle-s3-key Certificates.pem \
    --ca-certificates-bundle-s3-object-version <version>
>> arn:aws:elasticloadbalancing:root:file1
$ aws elbv2 create-listener --load balancer-arn <value> \
    --protocol HTTPS \
    --port 443 \
    --mutual-authentication Mode=verify,
      TrustStoreArn=<arn:aws:elasticloadbalancing:root:file1>

AWS 사설 CA, 서드 파티 CA 또는 자체 서명 CA와 같은 자체 사설 CA가 이미 있는 경우, 해당 CA 번들 또는 CRL을 Application Load Balancer 트러스트 스토어에 업로드하여 상호 인증을 활성화할 수 있습니다.

Application Load Balancer에서 상호 인증을 테스트하려면 단계별 지침에 따라 OpenSSL을 사용하여 자체 서명된 CA 번들 및 클라이언트 인증서를 생성하고, 이를 Amazon S3 버킷에 업로드하고, ELB 트러스트 스토어에서 사용합니다.

curl--key--cert 파라미터와 함께 사용하여 요청의 일부로 클라이언트 인증서를 보낼 수 있습니다.

$ curl --key my_client.key --cert my_client.pem https://api.yourdomain.com

클라이언트가 유효하지 않거나 만료된 인증서를 제시하거나, 인증서를 제시하지 못하거나, 신뢰 체인을 찾을 수 없거나, 신뢰 체인의 링크가 만료되었거나, 인증서가 해지 목록에 있는 경우 상호 인증이 실패할 수 있습니다.

Application Load Balancer는 클라이언트 인증에 실패할 때마다 연결을 닫고 로드 밸런서로 전송된 요청에 대한 세부 정보를 캡처하는 새 연결 로그를 기록합니다. 각 로그에는 클라이언트의 IP 주소, 핸드셰이크 지연 시간, 사용된 TLS 암호, 클라이언트 인증서 세부 정보 등의 정보가 포함됩니다. 이 연결 로그를 사용하여 요청 패턴을 분석하고 문제를 해결할 수 있습니다.

자세한 내용은 AWS 설명서에서 Mutual authentication on Application Load Balancer(Application Load Balancer의 상호 인증)를 참조하세요.

정식 출시
Application Load Balancer의 상호 인증은 현재 중국을 제외하고 Application Load Balancer가 지원되는 모든 상용 AWS 리전에서 사용할 수 있습니다. 선결제 비용이나 약정이 필요하지 않으며, 사용한 만큼만 요금을 지불하면 됩니다. 자세히 알아보려면 Elastic Load Balancing 요금 페이지를 참조하세요.

사용해 보시고 AWS re:Post for Amazon EC2 또는 AWS Support 담당자를 통해 피드백을 보내주세요.

자세히 알아보기
Application Load Balancer 제품 페이지

Channy