기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
모범 사례는 AWS Certificate Manager(AWS Certificate Manager)을 더욱 효과적으로 사용할 수 있도록 도와주는 권장 사항입니다. 다음 모범 사례는 현재 ACM 고객의 실제 경험을 기반으로 합니다.
계정 수준 분리
정책에서 계정 수준 분리를 사용하여 계정 수준에서 인증서에 액세스할 수 있는 사용자를 제어합니다. 프로덕션 인증서를 테스트 및 개발 인증서와 별도의 계정에 보관합니다. 계정 수준 분리를 사용할 수 없는 경우 정책의 kms:CreateGrant
작업을 거부하여 특정 역할에 대한 액세스를 제한할 수 있습니다. 이렇게 하면 상위 수준에서 인증서에 서명할 수 있는 계정의 역할을 제한합니다. 권한 부여 용어를 비롯한 권한 부여에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 Grants in AWS KMS를 참조하세요.
계정별 kms:CreateGrant
사용을 제한하는 것보다 세분화된 제어를 원하는 경우 kms:EncryptionContext 조건 키를 사용하여 특정 인증서로 kms:CreateGrant
를 제한할 수 있습니다. arn:aws:acm
을 키로 지정하고 제한할 ARN의 값을 지정합니다. 다음 예제 정책에서는 특정 인증서의 사용을 금지하지만 다른 인증서는 허용합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Deny",
"Action": "kms:CreateGrant",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:aws:acm:arn": "arn:aws:acm:us-east-1:111122223333:certificate/b26def74-1234-4321-9876-951d4c07b197"
}
}
}
]
}
AWS CloudFormation
AWS CloudFormation을 통해 사용하려는 AWS 리소스를 설명하는 템플릿을 만들 수 있습니다. 그런 다음 AWS CloudFormation은 해당 리소스를 프로비저닝하고 구성합니다. AWS CloudFormation은 Elastic Load Balancing, Amazon CloudFront, Amazon API Gateway 등 ACM이 지원하는 리소스를 프로비저닝할 수 있습니다. 자세한 내용은 ACM에 통합된 서비스 단원을 참조하십시오.
AWS CloudFormation을 사용하여 여러 테스트 환경을 빠르게 생성 및 삭제하는 경우, 환경별로 ACM 인증서를 따로 생성하지 않는 것이 좋습니다. 그렇게 하면 인증서 할당량에 빠르게 도달하게 됩니다. 자세한 내용은 할당량 단원을 참조하십시오. 대신 테스트를 위해 사용중인 모든 도메인 이름을 포함하는 와일드카드 인증서를 생성합니다. 예를 들어 <version>
.service.example.com
과 같은 버전 번호에 따라서만 달라지는 도메인 이름에 대해 ACM 인증서를 반복적으로 생성할 경우 <*>
.service.example.com
에 대한 단일 와일드카드 인증서를 대신 생성하세요. AWS CloudFormation이 테스트 환경을 생성하는 데 사용하는 템플릿에 와일드카드 인증서를 포함하십시오.
인증서 고정
인증서 고정(SSL 고정이라고도 함)은 애플리케이션에서 해당 호스트를 인증서 계층 대신 X.509 인증서 또는 퍼블릭 키와 직접 연결하여 원격 호스트의 유효성을 검증하는 데 사용할 수 있는 프로세스입니다. 따라서 애플리케이션은 SSL/TLS 인증서 체인 유효성 검증을 피하기 위해 고정을 사용합니다. 일반적인 SSL 유효성 검증 프로세스는 루트 인증 기관(CA) 인증서에서 하위 CA 인증서(있는 경우)를 통해 인증서 체인 전체의 서명을 확인합니다. 또한 저계층부터 원격 호스트를 위해 인증서를 확인합니다. 대신 애플리케이션은 루트 인증서 또는 체인의 다른 인증서가 아닌 해당 인증서만 유일하게 신뢰할 수 있다는 원격 호스트에 대한 인증서를 고정할 수 있습니다. 과정 중에도 원격 호스트의 인증서 혹은 퍼블릭 키를 사용자 애플리케이션에 추가할 수 있습니다. 그렇지 않으면 호스트에 처음 연결할 때 원격 호스트의 인증서 혹은 퍼블릭 키를 사용자 애플리케이션에 추가할 수 있습니다.
주의
애플리케이션에서 ACM 인증서를 고정하지 않는 것이 좋습니다. ACM은 AWS Certificate Manager에서 관리형 인증서 갱신을 수행하여 Amazon이 발급한 SSL/TLS 인증서를 만료되기 전에 자동으로 갱신합니다. 인증서를 갱신하기 위해 ACM은 새로운 퍼블릭-프라이빗 키 페어를 생성합니다. 애플리케이션에서 ACM 인증서를 고정했는데 그 인증서가 새 퍼블릭 키로 갱신되면 애플리케이션이 도메인에 연결하지 못하게 될 수 있습니다.
인증서를 고정하기로 결정한 경우 다음 옵션을 사용하면 애플리케이션이 도메인에 연결하는 데 지장을 주지 않습니다.
-
자체 인증서를 ACM으로 가져온 다음 애플리케이션을 가져온 인증서에 고정합니다. ACM은 가져온 인증서를 자동으로 갱신하지 않습니다.
-
퍼블릭 인증서를 사용하는 경우 애플리케이션을 Amazon 루트 인증서
에 고정합니다. 프라이빗 인증서를 사용하는 경우 애플리케이션을 CA의 루트 인증서에 고정합니다.
도메인 검증
Amazon 인증 기관(CA)에서 사용자 사이트에 대한 인증서를 발급하려면 AWS Certificate Manager(ACM)에서 요청에 지정한 모든 도메인에 대한 소유권 또는 제어권이 사용자에게 있는지 확인해야 합니다. 이메일 혹은 DNS를 사용하여 확인할 수 있습니다. 자세한 내용은 AWS Certificate Manager DNS 검증 및 AWS Certificate Manager 이메일 검증 섹션을 참조하세요.
도메인 이름 추가 또는 삭제
기존 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 명령의 options
파라미터 또는 RequestCertificate API 작업을 사용합니다. 인증서가 2018년 4월 24일 이전에 발급된 경우 갱신 중에 인증서가 로깅되지 않도록 하려면 update-certificate-options 명령 또는 UpdateCertificateOptions API를 사용하여 옵트아웃할 수 있습니다.
제한 사항
-
콘솔을 사용하여 투명성 로깅을 활성화 또는 비활성화할 수 없습니다.
-
인증서의 갱신 기간(일반적으로 인증서 만료 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, AWS Command Line Interface 및 상위 수준 Amazon Web Services를 통해 수행된 API 호출을 포함한 계정의 AWS API 호출 기록을 검색하여 AWS 배포를 모니터링할 수 있습니다. 또한 어떤 사용자 및 계정이 ACM API를 호출했는지, 어떤 소스 IP 주소에 호출이 수행되었는지, 언제 호출이 발생했는지도 확인할 수 있습니다. API를 사용해 CloudTrail을 애플리케이션에 통합시킴으로써 조직에 대한 추적 생성을 자동화하고 추적 상태를 확인하며 관리자가 CloudTrail 로깅을 활성화하고 비활성화하는 방식을 제어할 수 있습니다. 자세한 내용은 추적 생성을 참조하세요. ACM 작업에 대한 예제 추적을 보려면 CloudTrail 와 함께 사용 AWS Certificate Manager 섹션으로 이동하세요.