This is not an officially supported Google product. This code creates PoC demo environment for CSA Certificate Authority Service demo. This demo code is not built for production workload.
이 아키텍처 가이드를 사용하면 CAS(인증 기관 서비스)를 간편하고 안전하게 배포할 수 있습니다. 두 개의 하위 인증 기관 및 하나의 리프 인증서와 함께 루트 인증 기관을 생성합니다. 이러한 인증 기관은 가용성이 높고 확장 가능하며 유지 관리가 간편하므로 개인 공개 키 인프라(PKI)를 구축하여 인증서를 통해 ID를 확인하고 워크로드 전반에 걸쳐 신뢰 루트를 설정할 수 있습니다.
이 아키텍처 가이드는 아래 그림에서 아키텍처 1로 표시된 전체 CAS 배포(즉, 모든 인증 기관이 Google Cloud에서 호스팅되는 배포)에 중점을 두고 있지만 CAS는 매우 유연하며 조직이 다양한 방식으로 비공개 PKI를 만들 수 있도록 지원합니다. 아래 그림과 같이 다양한 방법으로
또한 CA가 GCP 외부에 상주할 수 있는 하이브리드 아키텍처를 구현하기 위해 CSR(인증서 서명 요청)을 사용하는 방법에 대한 세부정보도 제공합니다(아키텍처 #2-3).
인증 기관 서비스(CAS) - 인증 기관 서비스는 사설 인증 기관(CA)의 배포, 관리, 보안을 단순화, 자동화, 맞춤설정할 수 있는 가용성과 확장성이 뛰어난 Google Cloud 서비스입니다.
키 관리 서비스(KMS) - 클라우드 키 관리 서비스를 사용하면 암호화 키를 생성, 가져오기, 관리하고 단일 중앙 집중식 클라우드 서비스에서 암호화 작업을 수행할 수 있습니다. Cloud KMS를 직접 사용하거나 Cloud HSM 또는 Cloud 외부 키 관리자를 사용하거나 다른 Google Cloud 서비스 내에서 고객 관리 암호화 키(CMEK) 통합을 사용하여 이러한 키를 사용하고 이러한 작업을 수행할 수 있습니다.
Google Cloud Storage(GCS) - Cloud Storage는 구조화되지 않은 데이터를 저장하기 위한 관리형 서비스입니다. 원하는 만큼의 데이터를 저장하고 원하는 만큼 자주 검색하세요.
GCP CAS로 PKI를 설계할 때는 할당량, 한도, 알려진 제한사항뿐만 아니라 다음 한도도 고려해야 합니다.
의지 | 단위 | 값 |
---|---|---|
보류 중인 CA 1 | 위치별 프로젝트별 | 100 |
CA | 위치별 프로젝트별 | 1,000 |
만료되지 않은 해지된 인증서 2 | CA 또는 인증서 해지 목록(CRL)당 | 500,000 |
보류 중인 CA(인증 기관) 1개는 생성되었지만 아직 활성화되지 않은 하위 CA이므로 AWAITING_USER_ACTIVATION 상태입니다.
2 CRL에는 만료되지 않은 해지된 인증서가 최대 500,000개까지 포함될 수 있습니다. 이 한도를 초과하여 취소하려고 하면 취소 요청이 실패합니다. 500,000개가 넘는 인증서를 해지해야 하는 경우 기존 해지된 인증서가 만료될 때까지 기다리거나 발급한 CA 인증서를 해지하는 것이 좋습니다.
##테라폼 지침:
조직에 로그인하고 배포에 사용할 프로젝트에 대한 CA 서비스 관리자 및 Cloud KMS 관리자 역할을 자신에게 할당하세요.
새 프로젝트를 생성하고 결제를 활성화해야 하는 경우 이 가이드의 단계를 따르세요.
Cloud Shell을 열고 아래 명령을 사용하여 다음 git 저장소를 복제합니다.
git clone https://github.com/GCP-Architecture-Guides/csa-certificate-authority-service.git
csa-certificate-authority-service 폴더로 이동합니다.
cd csa-certificate-authority-service</th>
Terraform 변수에서 프로젝트 ID 내보내기
export TF_VAR_demo_project_id=[YOUR_PROJECT_ID]
csa-certificate-authority-service 폴더에서 아래 명령을 순서대로 실행하세요.
terraform init terraform plan terraform apply
메시지가 표시되면 API 호출을 승인합니다.
배포가 완료되면 조정된 자산의 출력 요약이 게시됩니다. 5분 이내에 리소스를 배포합니다.
데모를 완료한 후 Certificate-authority-service 폴더로 이동하여 아래 명령을 실행하여 모든 데모 리소스를 삭제합니다.
terraform destroy
##테라폼 요약:
수영장 | 캘리포니아 | 효력 | 상태 | 주체 이름 | 지역 | 층 |
---|---|---|---|---|---|---|
데모 루트 풀 | 루트 CA | 10년 | 활성화됨 | 조직: 데모 CA CN: 데모 리소스 ID: [기본값] | us-central1(아이오와) | 기업 |
데모 하위 풀 | Google Cloud의 루트 CA가 있는 하위 CA | 3년 | 활성화됨 | 조직: 데모 CA CN: 데모 리소스 ID: [기본값] | us-central1(아이오와) | 기업 |
데모 하위 풀-2 | Google Cloud의 루트 CA가 있는 하위 CA | 3년 | 활성화됨 | 조직: 데모 CA CN: 데모 리소스 ID: [기본값] | 미국-동부1 | 기업 |
수영장 | 허용되는 CSR 방법 | 허용되는 키 및 알고리즘 | 키 크기 및 알고리즘 | 출판 옵션 | 구성된 기준 값 | 구성된 확장 제약 조건 | 구성된 ID 제약조건 |
---|---|---|---|---|---|---|---|
데모 루트 풀 | 모두 허용 | 제한 없음 | RSA_PKCS1_4096_SHA256 | PEM 형식의 GCS 버킷으로 | 없음 | 인증서 요청에서 모든 확장명 복사 | 인증서 요청에서 제목 및 SAN 복사 |
데모 하위 풀 | 모두 허용 | 제한 없음 | RSA_PKCS1_4096_SHA256 | PEM 형식의 GCS 버킷으로 | 없음 | 인증서 요청에서 모든 확장명 복사 | 인증서 요청에서 제목 및 SAN 복사 |
데모 하위 풀-2 | 모두 허용 | 제한 없음 | RSA_PKCS1_4096_SHA256 | PEM 형식의 GCS 버킷으로 | 없음 | 인증서 요청에서 모든 확장명 복사 | 인증서 요청에서 제목 및 SAN 복사 |
인증 기관 서비스 모범 사례
Google Cloud의 인증 기관 서비스에는 서비스의 보안과 무결성을 보장하기 위한 몇 가지 로깅 및 모니터링 요구사항이 있습니다. 이러한 요구 사항에는 다음이 포함됩니다.
감사 로깅: 인증서 발급, 갱신, 해지 등 서비스에서 수행되는 로그 작업이 기록되며 고객이 감사할 수 있습니다.
이벤트 알림: 고객은 인증서 만료 등 중요한 이벤트에 대한 알림을 이메일이나 웹후크를 통해 받을 수 있습니다.
인증서 투명성: 발급된 모든 인증서는 투명성 로그에 기록되므로 인증서 발급 및 취소를 감사할 수 있습니다.
보안 및 가용성 모니터링: 보안 및 운영 팀은 서비스에서 잠재적인 보안 위협 및 가용성 문제를 지속적으로 모니터링합니다.
규정 준수: Google Cloud의 인증 기관 서비스는 인증 기관의 보안 및 운영 요구사항을 지정하는 다양한 표준을 준수합니다.
전반적으로 이러한 로깅 및 모니터링 요구 사항은 고객에게 서비스에 대한 투명성과 가시성을 제공하는 동시에 서비스의 보안과 가용성을 보장하는 것을 목표로 합니다.
Google Cloud 서비스는 '누가, 어디서, 언제 무엇을 했는가'라는 질문에 답하는 데 도움이 되는 감사 로그를 작성합니다. Google Cloud 리소스 내에서.
CA 서비스에는 다음 유형의 감사 로그를 사용할 수 있습니다.
관리자 활동 감사 로그
메타데이터 또는 구성 정보를 쓰는 "관리자 쓰기" 작업이 포함됩니다.
관리자 활동 감사 로그를 사용 중지할 수 없습니다.
데이터 액세스 감사 로그
메타데이터 또는 구성 정보를 읽는 "관리자 읽기" 작업이 포함됩니다. 사용자가 제공한 데이터를 읽거나 쓰는 "데이터 읽기" 및 "데이터 쓰기" 작업도 포함됩니다.
데이터 액세스 감사 로그를 받으려면 이를 명시적으로 활성화해야 합니다.
인증 기관 서비스에서 생성된 특정 감사 로그에 대해서는 참조하세요.
관리자 활동 감사 로그는 항상 활성화되어 있습니다. 비활성화할 수 없습니다.
데이터 액세스 감사 로그는 기본적으로 비활성화되어 있으며 명시적으로 활성화하지 않는 한 기록되지 않습니다.
데이터 액세스 감사 로그의 일부 또는 전부를 활성화하는 방법에 대한 자세한 내용은 데이터 액세스 감사 로그 활성화를 참조하세요.
Google Cloud 콘솔에서 로그 탐색기를 사용하여 Cloud 프로젝트, 폴더, 조직의 감사 로그 항목을 검색할 수 있습니다.
Google Cloud 콘솔에서 Logging> 로그 탐색기 페이지로 이동합니다.
기존 Cloud 프로젝트, 폴더, 조직을 선택합니다.
쿼리 빌더 창에서 다음을 수행합니다.
protoPayload.serviceName="privateca.googleapis.com"
Cloud Monitoring을 사용하면 인증 기관 서비스의 리소스에 대해 수행되는 작업을 모니터링할 수 있습니다.
권장 알림을 활성화하려면 다음 지침을 따르세요.
Google Cloud 콘솔에서 CA 서비스 개요 페이지로 이동합니다.
개요 페이지 오른쪽 상단에서 + 5 추천 알림 을 클릭하세요.
설명을 읽고 각 경고를 활성화하거나 비활성화합니다.
일부 경고는 사용자 정의 임계값을 지원합니다. 예를 들어 만료되는 CA 인증서에 대한 알림을 받을 시기나 높은 비율의 인증서 생성 실패에 대한 오류율을 지정할 수 있습니다.
모든 경고는 알림 채널을 지원합니다.
원하는 알림을 모두 활성화한 후 제출을 클릭하세요.
문서 인증서 정책 및 템플릿
신원 제약
확장 제약
주요 사용 조건
정책 식별자
확장
남용 위험을 완화하려면 인증서 정책을 검토하여 템플릿이 기능을 승인하고 정의했는지 확인해야 합니다.
CA 침해 대응 계획 생성
모든 이해관계자 교육
CA 보안 및 통신 정책을 최소 1년에 1회 검토합니다.
백업 CA 계획 수립
인벤토리 CA
승인된 CA만 사용되는지 확인
승인된 루트만 신뢰할 수 있는지 확인하세요.
신뢰 당사자 시스템에서 신뢰되는 인벤토리 루트 CA
기존 인증서 템플릿에 대한 권한 검토 및 확인
신뢰 당사자 시스템에 대한 해지 확인 시행
감사 로그 및 경고 활성화
경고 및 보고 설계를 기반으로 침해 식별
발생한 일에 대한 명확한 이해 확립
사건을 감지한 사람.
가능하다면 사건을 가해한 사람이 누구인지.
CA가 손상되었을 때.
사건이 발생한 곳.
사고의 영향을 받은 루트, 하위 CA 및 최종 사용자 인증서 수.
사건의 근본 원인으로 추정됩니다.
사고의 근본 원인을 해결하기 위해 어떤 교정 조치가 취해졌거나 취해질 예정입니까?
위반과 관련된 인증서 및 도메인 목록입니다.
사건은 어떻게 감지되었나요?
익스플로잇에 대한 자세한 설명입니다.
어떤 인프라가 손상되었는지에 대한 세부정보입니다.
인프라가 어떻게 손상되었는지에 대한 세부정보입니다.
자세한 이벤트 타임라인입니다.
정상적인 작업을 통해 취약점이 감지되었습니까? 그렇지 않다면 왜 그렇습니까?
가장 최근 감사에서 취약점이 발견되었습니까? 그렇다면 취약점이 해결되었습니까? 취약점이 해결되지 않았다면 그 이유는 무엇입니까?
최근 감사에서 이 취약점이 발견되었습니까? 그렇지 않다면 이유를 설명해 주세요.
어떤 정책 변화가 필요합니까?
기타 적절한 정보.
사고 대응팀 활성화
영향을 받은 CA 환경을 포함하고 격리합니다. CA가 인증서를 발급하지 못하도록 비활성화하려면 다음을 참조하세요.
영향을 받는 이해관계자(내부/외부)에게 영향과 다음 단계 완화를 전달하기 위한 계획 수립
조사가 완료되고 격리가 확인되면 다음을 수행하십시오.
CA 및 관련 정책/templates.reference-1 및 reference-2에 대한 상승된 권한을 제공하는 역할에 매핑된 손상된 ID에 대한 자격 증명을 취소하고 재설정합니다.
손상된 CA 및 관련 인증서를 취소하고 새 CA 참조 설정
OCSP 응답자(자동화되지 않은 경우)의 CRL/업데이트 상태에 추가하여 주체, 신뢰 당사자 및 공급업체에 알립니다.
기존 인증서를 취소하고 새 CA 참조에서 인증서를 재발급합니다.
루트 인증서 제거/교체
신뢰 당사자 시스템에서 해지 확인이 활성화되어 있는지 확인
인증서 및 루트 교체 확인
진행 상황을 추적하고 보고합니다.
아래에서 이 데모 환경을 실행하는 데 필요한 월별 예상 비용을 확인하세요. 참고로 이는 패턴 생성 시점의 추정치이며 추정치는 시간에 따라 변경될 수 있으며 지역마다 다를 수 있습니다. Google Cloud 가격 계산기에서 각 리소스 비용을 검토하세요.
DevOps SKU | 엔터프라이즈 SKU | |
---|---|---|
월간 CA 수수료 | $20 | $200 |
인증서 수수료 | 0~50,000 @ $0.3 50K -100K @ $0.03 10만+ @ $0.0009 CA 간 계층화 | 0-50,000 @ $0.5 50K -100K @ $0.05 10만+ @ $0.001 CA 간 계층화 |
CA 키에 대한 HSM 지원 | ||
BYO CA 키 | 엑스 | |
추적된 인증서 및 해지 | 엑스 | |
QPS | 25 | 7 |
다음에 최적화됨 ... | 대용량, 수명이 짧음 | 낮은 볼륨, 긴 수명 |
CAS 개요
CAS 블로그를 소개합니다
CAS 교육 비디오
CAS GitHub 레포