[Cloud] ACM(AWS Certificate Manager)의 이해
AWS Certificate Manager(인증서 관리자)
- 학습 목표 - AWS Certificate Manager(ACM)에 대해 이해합니다.
- 인증서를 사용하는 이유를 확인합니다.
- AWS Certificate Manager(ACM)을 생성하고 운영하는 방법을 알아봅니다.
AWS Certificate Manager(인증서 관리자)
- AWS Certificate Manager(ACM)는 손쉽게 SSL/TLS 인증서를 프로비저닝, 관리 및 배포할 수 있도록 도와주는 서비스
- 이 서비스를 사용하면 웹 애플리케이션, 웹 서버 등에서 HTTPS를 구현하는 데 필요한 SSL/TLS 인증서를 쉽게 관리할 수 있음.
- AWS Certificate Manager를 사용하면 무료로 공인된 SSL/TLS 인증서를 생성 및 사용
- ACM을 통해 생성된 인증서는 AWS의 다양한 서비스와 통합하여 사용할 수 있음
인증서와 SSL 통신
- SSL 통신
HTTP와 HTTPS(HTTP+SSL)의 주요 차이점
기능 HTTP HTTPS 암호화 데이터는 일반 텍스트(Plain text)로 전송. 보안에 취약 데이터는 TLS 또는 SSL을 사용하여 인증서 기반의 데이터 암호화 통신 Port TCP 80 TCP 443 URL 접두사 http:// 로 시작 https:// 로 시작 보안 평문 데이터를 기반으로 하기 때문에, 유저 정보와 같은 민감한 정보가 인터넷 상에 그대로 노출되어 수집 되거나 변조될 수 있음. 인증서를 이용해서, 접속 사이트를 신뢰할 수 있는지 평가할 수 있고, 암호화된 데이터 통신으로 민감한 정보를 보호할 수 있음. SSL 통신 과정
(1),(2) 클라이언트가 서버에 접속하면 서버 인증서(서버의 공개키를 인증기관이 전자서명으로 인증한 것)를 전송받는다. (이때, 클라이언트 인증을 필요로 할 경우 클라이언트의 인증서를 전송하게 된다.)
(3) 클라이언트는 받은 서버 인증서를 분석하여 신뢰할 수 있는 인증서인지를 검토한 후, 서버의 공개키를 추출한다.
(4) 클라이언트가 세션키로 사용할 임의의 메세지를 서버의 공개키로 암호화하여 서버에 전송합니다.
(5) 서버에서는 자신의 개인키로 세션키를 복호화하여 (6) 그 키를 사용하여 (7)대칭키 암호방식으로 메시지를 암호화하여 클라이언트와 통신하게 됩니다.(https://)
AWS Certificate Manager를 사용하는 이유
- 간소화된 관리: ACM은 AWS 서비스에 대한 SSL/TLS 인증서 생성, 저장 및 관리의 복잡성을 처리합니다.
- 원활한 통합: Elastic Load Balancing, Amazon CloudFront, AWS Elastic Beanstalk 및 Amazon API Gateway와 같은 다른 AWS 서비스와 쉽게 통합됩니다.
- 자동 갱신: ACM은 관리되는 인증서를 자동으로 갱신합니다. 즉, 인증서를 수동으로 추적하고 갱신할 필요가 없습니다.
- 보안: 민감한 데이터를 보호하는 데 중요한 HTTPS를 활성화하여 웹사이트나 애플리케이션의 보안을 강화합니다.
- 비용 효율적: 적격 AWS 서비스와 함께 사용하기 위해 ACM을 통해 SSL/TLS 인증서를 프로비저닝하는 데 추가 비용이 부과되지 않습니다.
AWS Certificate Manager 설정 순서
- 인증서 요청:
- AWS Certificate Manager로 이동 → “인증서 요청”을 선택하고 필요한 인증서 유형(공용 또는 개인)을 선택.
- 인증서 기반 서비스를 진행할 도메인 이름을 입력(하위 도메인을 포함하는 와일드카드 인증서를 요청 가능)
- 인증서 유효성 검사: 검증 방법을 선택
- DNS 검증 또는 이메일 검증. DNS 검증이 Route 53에서 관리하는 도메인에 인증서를 더해서 검증하므로 더 간단.
- 검증 및 발급이 완료되면 ACM에서 인증서를 사용할 수 있음.
- AWS 서비스로 ACM 구성:
- 인증서 기반의 서비스 구성(예: 보안그룹 설정, ALB 구성, 웹서비스 연결 허용 등)
- 인증서 상태 모니터링 및 관리: ACM은 인증서 상태를 모니터링할 수 있는 대시보드를 제공. 필요한 경우 인증서 갱신이나 기타 중요한 이벤트에 대한 알림 설정.
- 자동 갱신: 도메인 검증 기록이 그대로 유지되고 도메인 소유권이 변경되지 않은 경우 인증서가 만료되기 전에 자동으로 갱신을 시도함.
LAB: ACM 인증서 생성 및 설정하기
- 인증서 생성
- AWS Certificate Manager → [인증서 요청]
- 퍼블릭 인증서 요청
- 완전히 정규화 된 도메인 이름: weplat.store
- 인증서에 다른이름 추가 : *.weplat.store
- 검증 방법: DNS 검증 - 권장
- 키 알고리즘: RSA 2048
- 퍼블릭 인증서 요청
- 인증서 → 새로 생성된 인증서 선택 후 → 도메인: [Route 53에서 레코드 생성] 선택
ACM 서비스 화면의 인증서 상태가 “발급됨”으로 전환될 때까지 대기.
- AWS Certificate Manager → [인증서 요청]
- 인증서 서비스에 연결하기 : ALB에 발급된 인증서를 연결해서 http가 아닌 https 서비스가 가능하도록 구성
- 로드벨런서
- (https 의 443 포트 허용을 위한 리스너 추가) web-alb 선택
- 리스너 및 규칙: 리스너 추가
- 리스너 세부 정보
- 프로토콜: HTTPS
- 포트: 443
- 라우팅 액션: 대상 그룹으로 전달
- 대상 그룹: weplat-ap2-web-alb-tg
- 보안 리스너 설정
- 보안 정책: 모든 보안 정책 / ELBSecurityPolicy-TLS13-1-2-2021-06 (권장)
- 기본 SSL/TLS 서버 인증서
- 인증서 소스: ACM에서
- 인증서(ACM에서): weplat.store
- (기존에 있는 http로 연결 요청시 https로 리디렉션 되도록 구성) HTTP:80 리스너 선택 후 [리스너 관리] - 리스너 편집
- 리스너 구성은 원래값 HTTP , 포트 80을 수정하지 않고 아래 라우팅 액션을 수
- 라우팅 액션: URL로 리디렉션
- 프로토콜: HTTPS
- 포트: 443
- (https 의 443 포트 허용을 위한 리스너 추가) web-alb 선택
인증서 적용 확인하기. 브라우저: https://weplat.store 또는 http://weplat.store
- 로드벨런서
리소스 제거
- Route53
- ALB
- ACM 삭제
- EC2
- VPC
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.