SAABlog
보안초급

AWS ACM 완벽 가이드: 무료 SSL/TLS 인증서 발급과 관리

AWS Certificate Manager로 무료 SSL/TLS 인증서를 발급받고 ALB, CloudFront에 적용하는 방법을 상세히 설명합니다. SAA-C03 시험 필수 개념.

PHILOLAMB-
ACMSSLTLS인증서HTTPS보안

관련 시험 도메인

  • Domain 1: Design Secure Architectures

핵심 요약

AWS Certificate Manager(ACM)는 SSL/TLS 인증서를 무료로 발급하고 자동 갱신하는 서비스입니다. ACM 인증서는 ALB, CloudFront, API Gateway와 통합되며, EC2에 직접 설치할 수 없습니다.

시험 팁

시험 핵심: ACM 퍼블릭 인증서는 무료이고 자동 갱신됩니다. 단, EC2에 직접 설치 불가 (Nitro Enclave 제외). DNS 검증이 이메일 검증보다 권장됩니다 (자동 갱신 지원). CloudFront에서 사용하려면 인증서를 **us-east-1 (버지니아)**에서 발급해야 합니다.

항목ACM 퍼블릭 인증서가져온 인증서
비용무료무료 (인증서 구매 비용 별도)
자동 갱신✅ (DNS 검증 시)❌ (수동 갱신)
EC2 설치❌ 불가❌ 불가 (동일)
사용 서비스ALB, CloudFront, API Gateway 등동일

ACM이란?

개념

**AWS Certificate Manager(ACM)**는 SSL/TLS 인증서를 쉽게 프로비저닝, 관리, 배포할 수 있는 서비스입니다.

ACM의 주요 기능:
├── 퍼블릭 인증서 무료 발급
├── 인증서 자동 갱신 (DNS 검증 시)
├── AWS 서비스와 원클릭 통합
├── 외부 인증서 가져오기
└── 프라이빗 CA 운영 (Private CA)

ACM 인증서 유형

유형설명비용
ACM 퍼블릭 인증서ACM에서 직접 발급무료
가져온 인증서외부 CA에서 발급받아 가져옴무료 (발급 비용 별도)
ACM Private CA사설 인증서 발급월 $400 + 인증서당 비용

인증서 발급 방법

발급 절차

ACM 인증서 발급 흐름:
1. ACM 콘솔 → 인증서 요청
2. 도메인 이름 입력 (example.com, *.example.com)
3. 검증 방법 선택 (DNS 또는 이메일)
4. 도메인 소유권 검증 완료
5. 인증서 발급 완료

도메인 검증 방법

검증 방법DNS 검증이메일 검증
작동 방식DNS에 CNAME 레코드 추가도메인 관리자 이메일로 승인
자동 갱신✅ 지원❌ 미지원
권장 여부권장제한적 상황에서 사용
Route 53자동 레코드 생성 가능-

시험 팁

시험 포인트: DNS 검증을 사용하면 ACM이 인증서를 자동으로 갱신합니다. 이메일 검증은 갱신 시마다 수동 승인이 필요합니다.

DNS 검증 설정

DNS 검증 절차:
1. ACM에서 인증서 요청
2. ACM이 CNAME 레코드 값 제공
   - 이름: _abc123.example.com
   - 값: _xyz789.acm-validations.aws
3. DNS에 CNAME 레코드 추가
   - Route 53: "Route 53에서 레코드 생성" 버튼
   - 외부 DNS: 수동으로 레코드 추가
4. ACM이 자동으로 검증 확인
5. 인증서 발급 완료

와일드카드 인증서

와일드카드 인증서 예시:
├── *.example.com
│   ├── www.example.com ✅
│   ├── api.example.com ✅
│   ├── app.example.com ✅
│   └── sub.api.example.com ❌ (2단계 하위 도메인)
│
└── 추가 도메인
    └── example.com (루트 도메인은 별도 추가)

ACM 통합 서비스

지원 서비스

ACM 인증서 사용 가능 서비스:
├── Elastic Load Balancer (ALB, NLB)
├── Amazon CloudFront
├── Amazon API Gateway
├── AWS App Runner
├── AWS Elastic Beanstalk
├── AWS Amplify
└── Amazon Cognito (사용자 풀)

사용 불가:
├── EC2 인스턴스 (직접 설치 불가)
├── 온프레미스 서버
└── 다른 클라우드

ALB에 ACM 인증서 적용

ALB HTTPS 설정:
1. ACM에서 인증서 발급 (같은 리전)
2. ALB 리스너 생성/수정
   - 프로토콜: HTTPS
   - 포트: 443
   - 인증서: ACM 인증서 선택
3. 보안 정책 선택 (TLS 버전)
4. Target Group으로 라우팅

CloudFront에 ACM 인증서 적용

CloudFront HTTPS 설정:
1. ACM에서 인증서 발급 (⚠️ us-east-1 필수!)
2. CloudFront 배포 설정
   - Alternate Domain Names: example.com
   - Custom SSL Certificate: ACM 인증서 선택
   - Security Policy: TLSv1.2_2021 권장

시험 팁

시험 핵심: CloudFront에서 사용할 ACM 인증서는 반드시 us-east-1 (버지니아 북부) 리전에서 발급해야 합니다. 다른 리전의 인증서는 CloudFront에서 사용할 수 없습니다!


EC2에서 HTTPS 사용하기

왜 EC2에 ACM 인증서를 직접 설치할 수 없나요?

ACM 퍼블릭 인증서의 프라이빗 키는 AWS가 관리하며 내보내기(Export)가 불가능합니다. 따라서 EC2 인스턴스에 직접 설치할 수 없습니다.

EC2에서 HTTPS를 사용하는 방법

EC2 HTTPS 구성 방법:

1. ALB + ACM (권장)
   사용자 → ALB(HTTPS) → EC2(HTTP)
   - ALB에서 SSL 종료
   - EC2는 HTTP만 처리
   - 인증서 관리 불필요

2. CloudFront + ALB + EC2
   사용자 → CloudFront(HTTPS) → ALB → EC2
   - 전 세계 엣지에서 SSL 종료
   - 캐싱 + HTTPS

3. 외부 인증서 직접 설치
   사용자 → EC2(HTTPS)
   - Let's Encrypt 등 외부 CA 사용
   - 인증서 수동 관리 필요

ALB를 사용한 HTTPS 구성

ALB + ACM 아키텍처:

인터넷 → ALB (HTTPS:443)
              │
              │ ACM 인증서
              │ SSL 종료
              ↓
         Target Group (HTTP:80)
              │
         ┌────┼────┐
         ↓    ↓    ↓
       EC2  EC2  EC2

시험 팁

시험 포인트: EC2에 HTTPS가 필요하면 ALB + ACM 조합을 사용하세요. ALB에서 SSL을 종료(SSL Termination)하고, ALB와 EC2 사이는 HTTP 또는 HTTPS를 사용합니다.


인증서 자동 갱신

갱신 조건

자동 갱신 조건:
├── DNS 검증 사용
├── DNS 레코드가 유효함
├── 인증서가 AWS 서비스에 연결됨
└── 만료 60일 전부터 갱신 시도

자동 갱신 불가:
├── 이메일 검증 사용
├── 가져온 인증서 (외부 CA)
└── DNS 레코드가 삭제됨

갱신 모니터링

# AWS CLI로 인증서 상태 확인
aws acm describe-certificate \
  --certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/xxx \
  --query 'Certificate.{Status:Status,RenewalEligibility:RenewalEligibility}'

# 만료 예정 인증서 알림
# CloudWatch Events/EventBridge 사용
{
  "source": ["aws.acm"],
  "detail-type": ["ACM Certificate Approaching Expiration"]
}

인증서 가져오기

외부 인증서 가져오기

기존에 보유한 인증서나 다른 CA에서 발급받은 인증서를 ACM으로 가져올 수 있습니다.

가져오기 필요 항목:
├── 인증서 본문 (PEM 형식)
├── 인증서 프라이빗 키 (PEM 형식)
└── 인증서 체인 (선택, PEM 형식)

가져온 인증서 주의사항

항목ACM 발급가져온 인증서
자동 갱신❌ (수동 갱신)
만료 알림
EC2 설치
키 관리AWS 관리사용자 관리

보안 정책 (TLS 버전)

ALB 보안 정책

정책TLS 버전권장 대상
ELBSecurityPolicy-TLS13-1-2-2021-06TLS 1.3, 1.2최신 클라이언트
ELBSecurityPolicy-TLS-1-2-2017-01TLS 1.2일반 권장
ELBSecurityPolicy-2016-08TLS 1.0, 1.1, 1.2레거시 호환

CloudFront 보안 정책

정책TLS 버전설명
TLSv1.2_2021TLS 1.2+권장
TLSv1.1_2016TLS 1.1+레거시
TLSv1_2016TLS 1.0+매우 오래된 클라이언트

시험 팁

시험 포인트: TLS 1.2 이상이 보안상 권장됩니다. PCI-DSS 준수가 필요하면 TLS 1.2 이상을 사용해야 합니다. TLS 1.0, 1.1은 보안 취약점이 있어 비권장입니다.


ACM Private CA

프라이빗 CA란?

ACM Private CA는 조직 내부에서 사용할 사설 인증서를 발급하는 서비스입니다.

Private CA 사용 사례:
├── 내부 API 간 mTLS
├── 마이크로서비스 통신 암호화
├── IoT 디바이스 인증
├── 내부 웹사이트 HTTPS
└── 코드/문서 서명

비용

항목비용
Private CA월 $400
인증서 발급$0.75/개 (1,000개 이상 $0.35)

시험 출제 포인트

자주 나오는 문제 유형

시나리오정답
"무료 SSL 인증서 + 자동 갱신"ACM (DNS 검증)
"CloudFront에 HTTPS 적용"us-east-1에서 ACM 인증서 발급
"EC2에 HTTPS 적용"ALB + ACM (직접 설치 불가)
"외부 인증서 사용"ACM에 가져오기 (자동 갱신 불가)
"도메인 검증 방법 권장"DNS 검증 (자동 갱신 지원)
"TLS 1.2 강제"보안 정책 설정

오답 함정

❌ ACM 인증서를 EC2에 직접 설치할 수 있다
   → 불가능 (Nitro Enclave 제외)

❌ CloudFront에 서울 리전 ACM 인증서를 사용할 수 있다
   → us-east-1 인증서만 사용 가능

❌ 이메일 검증도 자동 갱신을 지원한다
   → DNS 검증만 자동 갱신 지원

❌ 가져온 인증서도 자동 갱신된다
   → ACM에서 발급한 인증서만 자동 갱신

❌ ACM 인증서는 유료이다
   → 퍼블릭 인증서는 무료 (Private CA는 유료)

FAQ

Q1: ACM 인증서와 Let's Encrypt 중 어떤 것을 선택해야 하나요?

AWS 서비스(ALB, CloudFront)를 사용한다면 ACM, EC2에 직접 설치가 필요하다면 Let's Encrypt를 사용하세요.

항목ACMLet's Encrypt
비용무료무료
자동 갱신✅ (AWS 관리)✅ (certbot 설정)
EC2 설치
관리 편의성높음낮음

Q2: 하나의 인증서에 여러 도메인을 포함할 수 있나요?

, ACM에서 인증서 요청 시 **SAN(Subject Alternative Names)**으로 최대 10개의 도메인을 추가할 수 있습니다. 예: example.com, www.example.com, api.example.com

Q3: 인증서 발급에 얼마나 걸리나요?

DNS 검증: DNS 레코드 전파 후 수 분 내 발급 (보통 30분 이내) 이메일 검증: 이메일 승인 후 즉시 발급

Q4: 인증서가 만료되면 어떻게 되나요?

인증서가 만료되면 HTTPS 연결이 실패합니다. 브라우저에서 보안 경고가 표시됩니다. DNS 검증을 사용하면 자동 갱신되므로 만료 걱정이 없습니다.

Q5: 리전 간 인증서 공유가 가능한가요?

아니요, ACM 인증서는 리전별로 관리됩니다. 여러 리전에서 동일 도메인에 대한 인증서가 필요하면 각 리전에서 별도로 발급해야 합니다. 단, CloudFront는 us-east-1 인증서만 사용합니다.


마무리

ACM은 AWS에서 HTTPS를 구현하는 가장 쉬운 방법입니다:

  1. 무료 퍼블릭 인증서: ACM에서 직접 발급
  2. DNS 검증 권장: 자동 갱신 지원
  3. CloudFront: us-east-1 인증서 필수
  4. EC2: ALB + ACM 조합 사용
  5. 자동 갱신: DNS 검증 시 AWS가 자동 관리

다음으로 ELB 유형 비교CloudFront 배포 최적화를 학습하면 HTTPS 관련 내용을 완성할 수 있습니다.