AWS Certificate Manager
사용 설명서 (버전 1.0)

모범 사례

모범 사례는 AWS Certificate Manager(AWS Certificate Manager)을 더욱 효과적으로 사용할 수 있도록 도와주는 권장 사항입니다. 다음 모범 사례는 현재 ACM 고객의 실제 경험을 기반으로 합니다.

AWS CloudFormation

AWS CloudFormation을 통해 사용하려는 AWS 리소스를 설명하는 템플릿을 만들 수 있습니다. 그런 다음 AWS CloudFormation은 해당 리소스를 프로비저닝하고 구성합니다. AWS CloudFormation은 Elastic Load Balancing, Amazon CloudFront, Amazon API Gateway 등 ACM이 지원하는 리소스를 프로비저닝할 수 있습니다. 자세한 내용은 AWS Certificate Manager에 통합된 서비스 단원을 참조하십시오.

AWS CloudFormation을 사용하여 여러 테스트 환경을 빠르게 생성 및 삭제하는 경우 각 환경에 대해 별도의 ACM 인증서를 생성하지 않는 것이 좋습니다. 그렇게 하면 인증서 제한에 빠르게 도달하게 됩니다. 자세한 내용은 제한 단원을 참조하십시오. 대신 테스트를 위해 사용중인 모든 도메인 이름을 포함하는 와일드카드 인증서를 생성합니다. 예를 들어 <version>.service.example.com 등 버전 번호만 다른 도메인 이름에 대해 ACM 인증서를 반복적으로 생성하는 경우, <*>.service.example.com에 대해 단일 와일드카드 인증서를 대신 생성합니다. AWS CloudFormation이 테스트 환경을 생성하는 데 사용하는 템플릿에 와일드카드 인증서를 포함하십시오.

인증서 고정

인증서 고정(SSL 고정이라고도 함)은 애플리케이션에서 해당 호스트를 인증서 계층 대신 X.509 인증서 또는 퍼블릭 키와 직접 연결하여 원격 호스트의 유효성을 검증하는 데 사용할 수 있는 프로세스입니다. 따라서 애플리케이션은 SSL/TLS 인증서 체인 유효성 검증을 피하기 위해 고정을 사용합니다. 일반적인 SSL 유효성 검증 프로세스는 루트 인증 기관(CA) 인증서에서 하위 CA 인증서(있는 경우)를 통해 인증서 체인 전체의 서명을 확인합니다. 또한 저계층부터 원격 호스트를 위해 인증서를 확인합니다. 대신 애플리케이션은 루트 인증서 또는 체인의 다른 인증서가 아닌 해당 인증서만 유일하게 신뢰할 수 있다는 원격 호스트에 대한 인증서를 고정할 수 있습니다. 과정 중에도 원격 호스트의 인증서 혹은 퍼블릭 키를 사용자 애플리케이션에 추가할 수 있습니다. 그렇지 않으면 호스트에 처음 연결할 때 원격 호스트의 인증서 혹은 퍼블릭 키를 사용자 애플리케이션에 추가할 수 있습니다.

주의

애플리케이션이 ACM 인증서를 고정하지 않는 것이 좋습니다. ACM에서는 ACM의 Amazon 발행 인증서에 대한 관리형 갱신을 수행하여 Amazon에서 발급한 SSL/TLS 인증서를 만료되기 이전에 자동으로 갱신합니다. 인증서를 갱신하기 위해 ACM에서는 새로운 퍼블릭-프라이빗 키 페어를 생성합니다. 애플리케이션에서 ACM 인증서를 고정하고 인증서가 새 퍼블릭 키로 성공적으로 갱신되면 애플리케이션에서 도메인 연결을 할 수 없게 될 수 있습니다.

인증서를 고정하기로 결정한 경우 다음 옵션을 사용하면 애플리케이션이 도메인에 연결하는 데 지장을 주지 않습니다.

  • ACM으로 자체 인증서를 가져온 다음 애플리케이션을 가져온 인증서에 고정합니다. ACM은 가져온 인증서는 자동으로 갱신하지 않습니다.

  • 퍼블릭 인증서를 사용하는 경우, 애플리케이션을 Amazon 루트 인증서에 고정합니다. 프라이빗 인증서를 사용하는 경우 애플리케이션을 CA의 루트 인증서에 고정합니다.

도메인 검증

Amazon 인증 기관(CA)에서 사용자 사이트에 대한 인증서를 발급하려면 AWS Certificate Manager(ACM)에서 요청에 지정한 모든 도메인에 대한 소유권 또는 제어권이 사용자에게 있는지 확인해야 합니다. 이메일 혹은 DNS를 사용하여 확인할 수 있습니다. 자세한 내용은 DNS를 사용하여 도메인 소유권 확인이메일을 사용하여 도메인 소유권 확인 단원을 참조하십시오.

도메인 이름 추가 또는 삭제

기존 ACM 인증서에서 도메인 이름을 추가하거나 제거할 수 없습니다. 대신 수정된 도메인 이름 목록을 사용하여 새 인증서를 요청해야 합니다. 예를 들어 인증서에 5개의 도메인 이름이 있고 4개를 더 추가하려면 9개의 도메인 이름을 모두 포함한 새 인증서를 요청해야 합니다. 새로운 인증서에 대해 이전에 검증한 도메인 이름을 비롯하여 요청 중인 모든 도메인 이름의 소유권을 확인해야 합니다.

이메일 검증을 사용하면 각 도메인 이름에 대해 최대 8개의 검증 이메일을 받습니다. 그 중 하나 이상의 이메일에 대해 72시간 이내에 조치해야 합니다. 예를 들어, 5개의 도메인 이름을 포함하는 인증서를 요청할 경우 최대 40개의 검증 메시지을 수신하고 그 중 5개 이상의 이메일에 대해 72시간 이내에 조치해야 합니다. 인증서 요청의 도메인 이름 수가 증가하면 이메일을 사용하여 도메인 이름에 대한 소유권을 확인하는 데 필요한 작업도 증가합니다.

하지만 DNS 검증을 사용하면 인증하고 싶은 FQDN에 대해 새롭게 단 1개의 DNS 기록을 데이터베이스에 작성하면 됩니다. ACM는 기록을 데이터베이스에 생성했는지 및 기록이 추가되었는지 결정할 수 있도록 데이터베이스에 대해 추후 문의할 것입니다. 기록 추가를 통해 사용자가 도메인을 소유하고 제어함을 증명합니다. 앞선 예를 보면 도메인 이름을 5개 지정하면 반드시 5개의 DNS 기록을 생성해야 합니다. 따라서 가능하다면 DNS 검증을 사용하는 것을 권장합니다.

인증서 투명성 로깅 옵트아웃

중요

인증서 투명성 로깅에서 옵트아웃하기 위해 수행하는 작업과 상관없이, 인증서를 바인딩하는 퍼블릭 또는 프라이빗 엔드포인트에 액세스할 수 있는 모든 클라이언트나 개인은 여전히 인증서를 로깅할 수 있습니다. 하지만 인증서에는 서명된 인증서 타임스탬프(SCT)가 포함되지 않습니다. 발급 CA만 SCT를 인증서에 포함시킬 수 있습니다.

2018년 4월 30일부터 Google Chrome은 인증서 투명성 로그에 기록되지 않은 공인 SSL/TLS 인증서를 더 이상 신뢰하지 않습니다. 따라서 2018년 4월 24일부터 Amazon CA는 모든 새 인증서 및 갱신을 최소 2개 이상의 퍼블릭 로그에 게시하기 시작했습니다. 인증서가 로깅된 후에는 인증서를 제거할 수 없습니다. 자세한 정보는 인증서 투명성 로깅 단원을 참조하십시오.

로깅은 인증서를 요청하거나 인증서가 갱신될 때 자동으로 수행되지만 옵트아웃하도록 선택할 수 있습니다. 이렇게 하는 일반적인 이유 중에는 보안 및 개인 정보 보호에 대한 우려가 있습니다. 예를 들어, 내부 호스트 도메인 이름을 로깅하면 다른 방식으로는 공개되지 않는 내부 네트워크에 대한 정보가 잠재적 공격자에게 제공될 수 있습니다. 또한 로깅하면 신규 또는 미발표 제품과 웹 사이트의 이름이 유출될 수 있습니다.

인증서를 요청할 때 투명성 로깅에서 옵트아웃하려면 request-certificate AWS CLI 명령 또는 RequestCertificate API의 Options 파라미터를 사용합니다.

인증서가 2018년 4월 24일 이전에 발급된 경우 갱신 중에 인증서가 로깅되지 않도록 하려면 update-certificate-options 명령 또는 UpdateCertificateOptions API를 사용하여 옵트아웃할 수 있습니다.

인증서가 로깅된 후에는 로그에서 인증서를 제거할 수 없습니다. 이 시점에는 옵트아웃해도 효과가 없습니다. 인증서를 요청할 때 로깅에서 옵트아웃한 다음 나중에 다시 옵트인하도록 선택하면 인증서를 갱신할 때가지 인증서가 로깅되지 않습니다. 인증서를 즉시 로깅하려면 새 인증서를 발급하는 것이 좋습니다.

참고

현재는 콘솔을 사용하여 투명성 로깅에서 옵트아웃하거나 옵트인할 수 없습니다.

다음 예제에서는 request-certificate 명령을 사용하여 새 인증서를 요청할 때 인증서 투명성을 비활성화하는 방법을 보여 줍니다.

aws acm request-certificate \ --domain-name www.example.com \ --validation-method DNS \ --options CertificateTransparencyLoggingPreference=DISABLED \ --idempotency-token 184627

위의 명령은 새 인증서의 ARN을 출력합니다.

{ "CertificateArn": "arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012" }

인증서가 이미 있고 인증서를 갱신할 때 인증서가 로깅되지 않도록 하려는 경우 update-certificate-options 명령을 사용합니다. 이 명령은 값을 반환하지 않습니다.

aws acm update-certificate-options \ --certificate-arn arn:aws:acm:region:account:\ certificate/12345678-1234-1234-1234-123456789012 \ --options CertificateTransparencyLoggingPreference=DISABLED

AWS CloudTrail 켜기

ACM 사용을 시작하기 전에 CloudTrail 로깅을 켭니다. CloudTrail을 사용하면 AWS Management Console, AWS SDK, AWS Command Line Interface 및 상위 수준 AWS 서비스를 통해 수행된 API 호출을 포함한 계정의 AWS API 호출 기록을 검색하여 AWS 배포를 모니터링할 수 있습니다. 또한 어떤 사용자 및 계정이 ACM API를 호출했는지, 어떤 소스 IP 주소에 호출이 수행되었는지, 언제 호출이 발생했는지도 확인할 수 있습니다. API를 사용해 CloudTrail을 애플리케이션에 통합시킴으로써 조직에 대한 추적 생성을 자동화하고 추적 상태를 확인하며 관리자가 CloudTrail 로깅을 활성화하고 비활성화하는 방식을 제어할 수 있습니다. 자세한 내용은 추적 생성을 참조하십시오. 사용 AWS CloudTrail 작업에 대한 예제 추적을 보려면 ACM 단원으로 이동하십시오.