모범 사례 - AWS Certificate Manager

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

모범 사례

모범 사례는 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이 발급한 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 명령 또는 API 작업의 options 파라미터를 사용하십시오. RequestCertificate 인증서가 2018년 4월 24일 이전에 발급되었고 갱신 중에 인증서가 로그되지 않도록 하려면 update-certificate-options명령 또는 UpdateCertificateOptionsAPI 작업을 사용하여 옵트아웃할 수 있습니다.

제한 사항
  • 콘솔을 사용하여 투명성 로깅을 활성화 또는 비활성화할 수 없습니다.

  • 인증서의 갱신 기간(일반적으로 인증서 만료 60일 전)이 시작된 후에는 로깅 상태를 변경할 수 없습니다. 상태 변경이 실패하면 오류 메시지가 생성되지 않습니다.

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

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

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

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

{ "CertificateArn": "arn:aws:acm:region:account:certificate/certificate_ID" }

이미 인증서가 있고 갱신할 때 인증서가 로그에 기록되지 않도록 하려면 update-certificate-options명령을 사용하십시오. 이 명령은 값을 반환하지 않습니다.

aws acm update-certificate-options \ --certificate-arn arn:aws:acm:region:account:\ certificate/certificate_ID \ --options CertificateTransparencyLoggingPreference=DISABLED

전원을 켜세요. AWS CloudTrail

ACM을 사용하기 전에 CloudTrail 로깅을 켜십시오. CloudTrail AWS 관리 콘솔, AWS SDK, 상위 Amazon Web Services를 통해 이루어진 API 호출을 포함하여 계정에 대한 API 호출 기록을 검색하여 AWS 배포를 모니터링할 수 있습니다. AWS AWS Command Line Interface또한 어떤 사용자 및 계정이 ACM API를 호출했는지, 어떤 소스 IP 주소에 호출이 수행되었는지, 언제 호출이 발생했는지도 확인할 수 있습니다. API를 사용하여 애플리케이션에 CloudTrail 통합하고, 조직의 트레일 생성을 자동화하고, 트레일의 상태를 확인하고, 관리자의 로그온 및 비활성화 방식을 제어할 수 있습니다. CloudTrail 자세한 내용은 추적 생성을 참조하세요. ACM 작업에 대한 예제 추적을 보려면 다음과 함께 사용 CloudTrail AWS Certificate Manager 섹션으로 이동하세요.