

# 백엔드 클라이언트 인증서 인증 작동 방식
<a name="rest-api-backend-auth-overview"></a>

아웃바운드 상호 TLS(mTLS)를 사용하면 API Gateway가 TLS 클라이언트 역할을 합니다. API Gateway는 백엔드 서버에 연결 시 클라이언트 인증서를 제시합니다. 백엔드는 이 인증서를 확인하여 요청이 API Gateway에서 왔는지 확인합니다.

아웃바운드 mTLS는 인바운드 mTLS와 다릅니다. 인바운드 mTLS를 사용하려면 API 클라이언트가 API Gateway에 인증서를 제시해야 합니다. 아웃바운드 mTLS는 API Gateway와 백엔드 간의 링크를 보호합니다.

## TLS 핸드셰이크 시퀀스
<a name="rest-api-backend-auth-overview-handshake"></a>

다음 단계는 API Gateway가 백엔드와 상호 TLS 연결을 설정하는 방법을 보여줍니다.

1. API Gateway가 ClientHello 메시지를 백엔드로 전송합니다.

1. 백엔드가 서버 인증서를 API Gateway로 전송합니다.

1. API Gateway가 서버 인증서를 확인합니다.

1. 백엔드가 CertificateRequest를 API Gateway로 전송합니다.

1. API Gateway가 클라이언트 인증서 체인을 백엔드로 전송합니다.

1. 백엔드가 클라이언트 인증서를 트러스트 스토어와 비교하여 확인합니다.

1. 상호 TLS 연결이 준비되었습니다. API Gateway가 API 요청을 전달합니다.

백엔드가 4단계에서 클라이언트 인증서를 요청하지 않으면 API Gateway는 TLS 핸드셰이크를 전송하지 않고 완료합니다. 연결은 표준 단방향 TLS를 사용합니다.

## 인증서 옵션 비교
<a name="rest-api-backend-auth-overview-comparison"></a>

다음 표에서는 백엔드 클라이언트 인증서를 구성하는 두 가지 접근 방식을 비교합니다.


**ACM 관리형 인증서와 API Gateway 생성 인증서 비교**  

| 기능 | ACM 관리형 인증서 | API Gateway 생성 인증서 | 
| --- | --- | --- | 
| 인증서 소스 | 사용자의 PKI 또는 AWS Private Certificate Authority | API Gateway 자체 서명 | 
| 구성 | ACM ARN을 기준으로 스테이지의 인증서를 참조하고 ACM API를 사용하여 인증서 수명 주기를 관리합니다. | 클라이언트 인증서 페이지에서 또는 API Gateway 클라이언트 인증서 API를 사용하여 관리합니다. | 
| 갱신 | 인증서 발급 방법에 따라 다릅니다. ACM이 AWS Private Certificate Authority를 통해 발급하는 인증서의 경우 ACM은 자동으로 인증서를 갱신하고 API Gateway는 재배포 및 가동 중지 없이 업데이트를 전파합니다. ACM으로 가져오는 인증서의 경우 만료 전에 인증서를 다시 가져와야 합니다. 그러면 API Gateway가 다시 가져온 인증서를 자동으로 전파합니다. | 수동입니다. 인증서는 365일 후에 만료되며 수동으로 교체해야 합니다. | 
| 체인 지원 | 전체 체인(최대 5개의 인증서) | 단일 자체 서명 인증서 | 
| 백엔드 신뢰 모델 | 백엔드는 CA를 신뢰합니다. | 백엔드는 API Gateway 인증서를 고정해야 합니다. | 