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.
คู่มือสถาปัตยกรรมนี้ช่วยให้ใช้งาน Certificate Authority Service (CAS) ได้อย่างมีประสิทธิภาพและปลอดภัย โดยจะสร้างผู้ออกใบรับรองหลักพร้อมกับผู้ออกใบรับรองรอง 2 รายและใบรับรองลีฟ 1 ใบ ผู้ออกใบรับรองเหล่านี้มีความพร้อมใช้งานสูง ปรับขนาดได้ และบำรุงรักษาง่าย ช่วยให้คุณสร้างโครงสร้างพื้นฐานคีย์สาธารณะ (PKI) ส่วนตัวเพื่อยืนยันตัวตนผ่านใบรับรอง และสร้างรากฐานของความไว้วางใจทั่วทั้งปริมาณงานของคุณ
แม้ว่าคู่มือสถาปัตยกรรมนี้จะมุ่งเน้นไปที่การปรับใช้ CAS เต็มรูปแบบ - ซึ่งแสดงเป็นสถาปัตยกรรม 1 ในรูปด้านล่าง (นั่นคือสถาปัตยกรรมที่โฮสต์ผู้ออกใบรับรองทั้งหมดไว้ใน Google Cloud) - CAS มีความยืดหยุ่นอย่างยิ่งและเสริมศักยภาพองค์กรของคุณในการสร้าง PKI ส่วนตัวในหลากหลายรูปแบบ ด้วยวิธีต่างๆ ดังแผนภาพข้างล่างนี้
นอกจากนี้ เรายังให้รายละเอียดเกี่ยวกับวิธีใช้ CSR (Certificate Signing Request) เพื่อใช้สถาปัตยกรรมไฮบริด ซึ่ง CA สามารถอยู่นอก GCP (สถาปัตยกรรม #2-3)
บริการผู้ออกใบรับรอง (CAS) - บริการผู้ออกใบรับรองเป็นบริการ Google Cloud ที่พร้อมใช้งานสูงและปรับขนาดได้ ซึ่งช่วยให้คุณลดความซับซ้อน ดำเนินการอัตโนมัติ และปรับแต่งการใช้งาน การจัดการ และความปลอดภัยของผู้ออกใบรับรองส่วนตัว (CA)
บริการการจัดการคีย์ (KMS) - บริการการจัดการคีย์ระบบคลาวด์ช่วยให้คุณสร้าง นำเข้า และจัดการคีย์การเข้ารหัส และดำเนินการเข้ารหัสในบริการคลาวด์แบบรวมศูนย์เดียว คุณสามารถใช้คีย์เหล่านี้และดำเนินการเหล่านี้ได้โดยใช้ Cloud KMS โดยตรง โดยใช้ Cloud HSM หรือ Cloud External Key Manager หรือโดยใช้การผสานรวมคีย์การเข้ารหัสที่จัดการโดยลูกค้า (CMEK) ภายในบริการ Google Cloud อื่นๆ
Google Cloud Storage (GCS) - Cloud Storage เป็นบริการที่ได้รับการจัดการสำหรับการจัดเก็บข้อมูลที่ไม่มีโครงสร้าง จัดเก็บข้อมูลจำนวนเท่าใดก็ได้และเรียกค้นได้บ่อยเท่าที่คุณต้องการ
เมื่อออกแบบ PKI ด้วย GCP CAS ควรคำนึงถึงขีดจำกัดต่อไปนี้ตลอดจนโควต้าและขีดจำกัดและข้อจำกัดที่ทราบ:
ทรัพยากร | หน่วย | ค่า |
---|---|---|
CA ที่รอดำเนินการ 1 | ต่อสถานที่ต่อโครงการ | 100 |
แคลิฟอร์เนีย | ต่อสถานที่ต่อโครงการ | 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
export TF_VAR_demo_project_id=[YOUR_PROJECT_ID]
ขณะที่อยู่ในโฟลเดอร์ csa-certificate-authority-service ให้รันคำสั่งด้านล่างตามลำดับ
terraform init terraform plan terraform apply
หากได้รับแจ้ง ให้อนุญาตการเรียก API
เมื่อการใช้งานเสร็จสิ้น ระบบจะเผยแพร่สรุปผลลัพธ์ของสินทรัพย์ที่จัดเตรียมไว้ ปรับใช้ทรัพยากรภายในห้านาที
หลังจากเสร็จสิ้นการสาธิต ให้ไปที่โฟลเดอร์บริการผู้ออกใบรับรอง และเรียกใช้คำสั่งด้านล่างเพื่อทำลายทรัพยากรสาธิตทั้งหมด
terraform destroy
##สรุปภูมิประเทศ:
สระน้ำ | แคลิฟอร์เนีย | ความถูกต้อง | สถานะ | ชื่อหัวเรื่อง | ภูมิภาค | ชั้น |
---|---|---|---|---|---|---|
การสาธิตรูทพูล | รูตแคลิฟอร์เนีย | 10 ปี | เปิดใช้งานแล้ว | องค์กร: สาธิต CA CN: การสาธิต รหัสทรัพยากร: [ค่าเริ่มต้น] | us-central1 (ไอโอวา) | องค์กร |
สาธิตย่อยพูล | CA ย่อยพร้อม Root CA ใน Google Cloud | 3 ปี | เปิดใช้งานแล้ว | องค์กร: สาธิต CA CN: การสาธิต รหัสทรัพยากร: [ค่าเริ่มต้น] | us-central1 (ไอโอวา) | องค์กร |
การสาธิตย่อยพูล-2 | CA ย่อยพร้อม Root CA ใน Google Cloud | 3 ปี | เปิดใช้งานแล้ว | องค์กร: สาธิต CA CN: การสาธิต รหัสทรัพยากร: [ค่าเริ่มต้น] | เรา-east1 | องค์กร |
สระน้ำ | ยอมรับวิธีการ CSR | คีย์และอัลกอริทึมที่อนุญาต | ขนาดคีย์และอัลกอริทึม | ตัวเลือกการเผยแพร่ | ค่าพื้นฐานที่กำหนดค่าไว้ | ข้อจำกัดส่วนขยายที่กำหนดค่าไว้ | ข้อจำกัดด้านข้อมูลประจำตัวที่กำหนดค่าไว้ |
---|---|---|---|---|---|---|---|
การสาธิตรูทพูล | อนุญาตทั้งหมด | ไม่มีข้อจำกัด | RSA_PKCS1_4096_SHA256 | ไปยัง GCS Bucket ในรูปแบบ PEM | ไม่มี | คัดลอกส่วนขยายทั้งหมดจากคำขอใบรับรอง | คัดลอกหัวเรื่องและ SAN จากคำขอใบรับรอง |
สาธิตย่อยพูล | อนุญาตทั้งหมด | ไม่มีข้อจำกัด | RSA_PKCS1_4096_SHA256 | ไปยัง GCS Bucket ในรูปแบบ PEM | ไม่มี | คัดลอกส่วนขยายทั้งหมดจากคำขอใบรับรอง | คัดลอกหัวเรื่องและ SAN จากคำขอใบรับรอง |
การสาธิตย่อยพูล-2 | อนุญาตทั้งหมด | ไม่มีข้อจำกัด | RSA_PKCS1_4096_SHA256 | ไปยัง GCS Bucket ในรูปแบบ PEM | ไม่มี | คัดลอกส่วนขยายทั้งหมดจากคำขอใบรับรอง | คัดลอกหัวเรื่องและ SAN จากคำขอใบรับรอง |
แนวทางปฏิบัติที่ดีที่สุดสำหรับบริการผู้ออกใบรับรอง
บริการผู้ออกใบรับรองของ Google Cloud มีข้อกำหนดด้านการบันทึกและการตรวจสอบหลายประการเพื่อให้มั่นใจในความปลอดภัยและความสมบูรณ์ของบริการ ข้อกำหนดเหล่านี้มีดังต่อไปนี้:
การบันทึกการตรวจสอบ: การดำเนินการบันทึกที่ดำเนินการในบริการ เช่น การออกใบรับรอง การต่ออายุ และการเพิกถอน จะถูกบันทึกไว้และสามารถตรวจสอบได้โดยลูกค้า
การแจ้งเตือนเหตุการณ์: ลูกค้าสามารถรับการแจ้งเตือนสำหรับเหตุการณ์สำคัญ เช่น การหมดอายุของใบรับรอง ทางอีเมลหรือทางเว็บฮุค
ความโปร่งใสของใบรับรอง: ใบรับรองที่ออกทั้งหมดจะถูกบันทึกไว้ในบันทึกความโปร่งใส ซึ่งช่วยให้สามารถตรวจสอบการออกและการเพิกถอนใบรับรองได้
การตรวจสอบความปลอดภัยและความพร้อมใช้งาน: ทีมรักษาความปลอดภัยและปฏิบัติการตรวจสอบบริการอย่างต่อเนื่องเพื่อหาภัยคุกคามด้านความปลอดภัยและปัญหาด้านความพร้อมใช้งานที่อาจเกิดขึ้น
การปฏิบัติตามข้อกำหนด: บริการผู้ออกใบรับรองของ Google Cloud เป็นไปตามมาตรฐานต่างๆ ซึ่งระบุข้อกำหนดด้านความปลอดภัยและการปฏิบัติงานสำหรับผู้ออกใบรับรอง
โดยรวมแล้ว ข้อกำหนดการบันทึกและการตรวจสอบเหล่านี้มีจุดมุ่งหมายเพื่อให้ลูกค้าได้รับความโปร่งใสและมองเห็นบริการได้ ขณะเดียวกันก็รับประกันความปลอดภัยและความพร้อมใช้งานของบริการด้วย
บริการ Google Cloud เขียนบันทึกการตรวจสอบเพื่อช่วยคุณตอบคำถาม "ใครทำอะไร ที่ไหน และเมื่อไหร่" ภายในทรัพยากร Google Cloud ของคุณ
บันทึกการตรวจสอบประเภทต่อไปนี้พร้อมใช้งานสำหรับบริการ CA:
บันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบ
รวมการดำเนินการ "เขียนโดยผู้ดูแลระบบ" ที่เขียนข้อมูลเมตาหรือข้อมูลการกำหนดค่า
คุณไม่สามารถปิดใช้งานบันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบได้
บันทึกการตรวจสอบการเข้าถึงข้อมูล
รวมการดำเนินการ "อ่านโดยผู้ดูแลระบบ" ที่อ่านข้อมูลเมตาหรือข้อมูลการกำหนดค่า ยังรวมถึงการดำเนินการ "อ่านข้อมูล" และ "เขียนข้อมูล" ที่อ่านหรือเขียนข้อมูลที่ผู้ใช้ให้ไว้
หากต้องการรับบันทึกการตรวจสอบการเข้าถึงข้อมูล คุณต้องเปิดใช้งานอย่างชัดเจน
สำหรับบันทึกการตรวจสอบเฉพาะที่สร้างโดย Certificate Authority Service โปรดดู
บันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบจะเปิดใช้งานอยู่เสมอ คุณไม่สามารถปิดการใช้งานได้
บันทึกการตรวจสอบการเข้าถึงข้อมูลจะถูกปิดใช้งานตามค่าเริ่มต้น และจะไม่ถูกเขียนเว้นแต่จะเปิดใช้งานอย่างชัดเจน
สำหรับข้อมูลเกี่ยวกับการเปิดใช้งานบันทึกการตรวจสอบการเข้าถึงข้อมูลบางส่วนหรือทั้งหมดของคุณ โปรดดูที่เปิดใช้งานบันทึกการตรวจสอบการเข้าถึงข้อมูล
ในคอนโซล Google Cloud คุณสามารถใช้ Logs Explorer เพื่อดึงรายการบันทึกการตรวจสอบสำหรับโปรเจ็กต์ โฟลเดอร์ หรือองค์กรในระบบคลาวด์ได้ ดังนี้
ในคอนโซล Google Cloud ให้ไปที่หน้าการบันทึก > Logs Explorer
เลือกโปรเจ็กต์คลาวด์ โฟลเดอร์ หรือองค์กรที่มีอยู่
ในบานหน้าต่างตัวสร้างแบบสอบถาม ให้ทำดังต่อไปนี้:
protoPayload.serviceName="privateca.googleapis.com"
Cloud Monitoring สามารถใช้ในการตรวจสอบการดำเนินการที่ทำกับทรัพยากรใน Certificate Authority Service
ใช้คำแนะนำต่อไปนี้เพื่อเปิดใช้งานการแจ้งเตือนที่แนะนำ
ไปที่หน้าภาพรวมบริการ CA ในคอนโซล Google Cloud
ที่ด้านขวาบนของหน้าภาพรวม คลิก +5 การแจ้งเตือนที่แนะนำ
เปิดหรือปิดการแจ้งเตือนแต่ละรายการโดยอ่านคำอธิบาย
การแจ้งเตือนบางรายการรองรับเกณฑ์ที่กำหนดเอง ตัวอย่างเช่น คุณสามารถระบุเวลาที่คุณต้องการรับการแจ้งเตือนสำหรับใบรับรอง CA ที่กำลังจะหมดอายุ หรืออัตราข้อผิดพลาดสำหรับความล้มเหลวในการสร้างใบรับรองที่มีอัตราสูง
การแจ้งเตือนทั้งหมดรองรับช่องทางการแจ้งเตือน
คลิก ส่ง เมื่อคุณเปิดใช้งานการแจ้งเตือนที่ต้องการทั้งหมดแล้ว
นโยบายและเทมเพลตใบรับรองเอกสาร
ข้อจำกัดด้านตัวตน
ข้อจำกัดของส่วนขยาย
เงื่อนไขการใช้งานที่สำคัญ
ตัวระบุนโยบาย
ส่วนขยาย
เพื่อลดความเสี่ยงของการละเมิด ควรตรวจสอบนโยบายใบรับรองเพื่อให้แน่ใจว่าเทมเพลตได้รับการอนุมัติและกำหนดฟังก์ชันการทำงาน
สร้างแผนตอบสนองการประนีประนอมของ CA
เรียนผู้มีส่วนได้ส่วนเสียทุกท่าน
ทบทวนนโยบายความปลอดภัยและการสื่อสารของ CA อย่างน้อยปีละครั้ง
จัดทำแผน CA สำรอง
CA สินค้าคงคลัง
ตรวจสอบว่ามีการใช้เฉพาะ CA ที่ได้รับอนุมัติเท่านั้น
ตรวจสอบให้แน่ใจว่าเฉพาะรูทที่ได้รับอนุมัติเท่านั้นที่เชื่อถือได้
CA รูทสินค้าคงคลังที่เชื่อถือได้ในระบบฝ่ายที่พึ่งพา
ตรวจสอบและตรวจสอบสิทธิ์สำหรับเทมเพลตใบรับรองที่มีอยู่
บังคับใช้การตรวจสอบการเพิกถอนกับระบบฝ่ายที่พึ่งพา
เปิดใช้งานบันทึกการตรวจสอบและการแจ้งเตือน
ระบุการประนีประนอมตามการออกแบบการแจ้งเตือนและการรายงาน
สร้างความเข้าใจที่ชัดเจนถึงสิ่งที่เกิดขึ้น
ใครตรวจพบเหตุการณ์.
ถ้ามี ใครเป็นคนก่อเหตุ
เมื่อ CA ถูกบุกรุก
ที่เกิดเหตุ.
รูท, CA ย่อย และจำนวนใบรับรองผู้ใช้ปลายทางใดที่ได้รับผลกระทบจากเหตุการณ์
สาเหตุเบื้องหลังที่เชื่อว่าเกิดขึ้น
มีมาตรการแก้ไขใดที่ถูกนำมาใช้หรือจะดำเนินการเพื่อแก้ไขสาเหตุที่แท้จริงของเหตุการณ์
รายชื่อใบรับรองและโดเมนที่เกี่ยวข้องกับการละเมิด
ตรวจพบเหตุการณ์ได้อย่างไร?
คำอธิบายโดยละเอียดของการใช้ประโยชน์
รายละเอียดเกี่ยวกับโครงสร้างพื้นฐานที่ถูกบุกรุก
รายละเอียดเกี่ยวกับวิธีการบุกรุกโครงสร้างพื้นฐาน
ลำดับเหตุการณ์โดยละเอียด
ช่องโหว่ถูกตรวจพบโดยการดำเนินการปกติหรือไม่ ถ้าไม่ใช่เพราะเหตุใด?
มีการค้นพบช่องโหว่ในการตรวจสอบครั้งล่าสุดหรือไม่ ถ้าใช่ ช่องโหว่ได้รับการแก้ไขแล้วหรือยัง? หากช่องโหว่ไม่ได้รับการแก้ไข ทำไมจะไม่ได้?
ช่องโหว่นี้ตรวจพบโดยการตรวจสอบครั้งล่าสุดหรือไม่ ถ้าไม่โปรดอธิบายว่าทำไม
จำเป็นต้องเปลี่ยนแปลงนโยบายอะไรบ้าง?
ข้อมูลอื่นใดที่เหมาะสม
เปิดใช้งานทีมตอบสนองต่อเหตุการณ์
บรรจุและแยกสภาพแวดล้อม CA ที่ได้รับผลกระทบ หากต้องการปิดใช้งาน CA ไม่ให้ออกใบรับรองได้ โปรดอ้างอิง
จัดทำแผนเพื่อสื่อสารผลกระทบและการบรรเทาผลกระทบขั้นต่อไปไปยังผู้มีส่วนได้ส่วนเสียที่ได้รับผลกระทบ (ภายใน / ภายนอก)
เมื่อเสร็จสิ้นการสอบสวนและตรวจสอบการกักกันแล้ว ให้ดำเนินการดังต่อไปนี้:
เพิกถอนและรีเซ็ตข้อมูลประจำตัวสำหรับข้อมูลเฉพาะตัวที่ถูกบุกรุกซึ่งแมปกับบทบาทที่ให้สิทธิ์ระดับสูงสำหรับ CA และนโยบาย/เทมเพลตที่เกี่ยวข้อง reference-1 และ Reference-2
เพิกถอน CA ที่ถูกบุกรุกและใบรับรองที่เกี่ยวข้อง และสร้างการอ้างอิง CA ใหม่
เพิ่มไปยังสถานะ CRL/อัปเดตใน OCSP Responder (หากไม่ใช่แบบอัตโนมัติ) เพื่อแจ้งเตือนหัวข้อ ฝ่ายที่เกี่ยวข้อง และผู้ขาย
เพิกถอนใบรับรองที่มีอยู่และออกใบรับรองใหม่จากการอ้างอิง CA ใหม่
ลบ/แทนที่ใบรับรองหลัก
ตรวจสอบว่าการตรวจสอบการเพิกถอนเปิดใช้งานอยู่บนระบบฝ่ายที่เกี่ยวข้อง
ตรวจสอบใบรับรองและการเปลี่ยนรูท
ติดตามและรายงานความคืบหน้า
โปรดดูค่าใช้จ่ายรายเดือนโดยประมาณในการรันสภาพแวดล้อมสาธิตนี้ด้านล่าง โปรดทราบว่านี่เป็นการประมาณการ ณ เวลาที่สร้างรูปแบบ การประมาณการอาจเปลี่ยนแปลงตามเวลาและอาจแตกต่างกันไปในแต่ละภูมิภาค โปรดตรวจสอบต้นทุนของทรัพยากรแต่ละรายการที่ Google Cloud Pricing Calculator
SKU ของ DevOps | SKU ขององค์กร | |
---|---|---|
ค่าธรรมเนียม CA รายเดือน | 20 ดอลลาร์ | 200 ดอลลาร์ |
ค่าธรรมเนียมใบรับรอง | 0-50K @ $0.3 50,000 - 100,000 @ $0.03 100K+ @ $0.0009 การแบ่งระดับข้าม CA | 0-50K @ $0.5 50,000 - 100,000 @ 0.05 ดอลลาร์ 100K+ @ $0.001 การแบ่งระดับข้าม CA |
รองรับ HSM สำหรับคีย์ CA | ||
รหัส BYO CA | เอ็กซ์ | |
ติดตามใบรับรองและเพิกถอน | เอ็กซ์ | |
คิวพีเอส | 25 | 7 |
ปรับให้เหมาะสมสำหรับ ... | ปริมาณมากมีอายุสั้น | ปริมาณน้อย มีอายุยืนยาว |
ภาพรวมของ CAS
ขอแนะนำบล็อก CAS
วิดีโอแนะนำ CAS
ที่เก็บ CAS GitHub