เอกสารนี้แสดงวิธีใช้คีย์การเข้ารหัสที่จัดการโดยลูกค้า (CMEK) เพื่อ เข้ารหัสและควบคุมข้อมูลที่ไม่มีการเคลื่อนไหวในบริการระบบคลาวด์ผ่าน Cloud Key Management Service CMEK ผสานรวมกับการปรับแต่งโค้ดสำหรับ Gemini Code Assist Gemini Code Assist ไม่รองรับการใช้คีย์ Cloud EKM
ในเอกสารนี้ คุณจะทำสิ่งต่อไปนี้
- ดูวิธีสร้าง CMEK
- ให้สิทธิ์แก่บัญชีบริการ Gemini Code Assist
- สร้างดัชนีที่เก็บโค้ดด้วย CMEK
- นำสิทธิ์เข้าถึงที่เก็บ CMEK ออก
โดยค่าเริ่มต้น Gemini สำหรับ Google Cloud จะเข้ารหัสเนื้อหาของลูกค้าที่ พัก Gemini จะจัดการการเข้ารหัสให้คุณโดยที่คุณไม่ต้องดำเนินการใดๆ เพิ่มเติม ตัวเลือกนี้เรียกว่าการเข้ารหัสเริ่มต้นของ Google
หลังจากตั้งค่าทรัพยากรด้วย CMEK แล้ว ประสบการณ์การเข้าถึงทรัพยากร Gemini จะคล้ายกับการใช้การเข้ารหัสเริ่มต้นของ Google ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการเข้ารหัสได้ที่คีย์การเข้ารหัสที่จัดการโดยลูกค้า (CMEK)
ก่อนเริ่มต้น
ตั้งค่า gcloud CLI ในสภาพแวดล้อมการพัฒนาซอฟต์แวร์ต่อไปนี้
Cloud Shell: หากต้องการใช้เทอร์มินัลออนไลน์ที่มีการตั้งค่า gcloud CLI ไว้แล้ว ให้เปิดตัวแก้ไข Cloud Shell
เชลล์ในเครื่อง: หากต้องการใช้สภาพแวดล้อมการพัฒนาในเครื่อง ให้ติดตั้งและเริ่มต้น gcloud CLI
หากใช้ผู้ให้บริการข้อมูลประจำตัว (IdP) ภายนอก คุณต้องลงชื่อเข้าใช้ gcloud CLI ด้วยข้อมูลประจำตัวภายนอกก่อน
ในสภาพแวดล้อมการพัฒนาที่คุณตั้งค่า gcloud CLI ให้เรียกใช้
gcloud components update
คำสั่ง เพื่อให้แน่ใจว่าคุณได้อัปเดตคอมโพเนนต์ทั้งหมดที่ติดตั้งของ gcloud เป็นเวอร์ชันล่าสุดแล้วgcloud components update
สร้าง CMEK และให้สิทธิ์
หากต้องการสร้าง CMEK และให้สิทธิ์บัญชีบริการ Gemini Code Assist ในคีย์ ให้ทำดังนี้
ในโปรเจ็กต์ Google Cloud ที่คุณต้องการจัดการคีย์ ให้ทำดังนี้
มอบบทบาท IAM ผู้เข้ารหัส/ผู้ถอดรหัส CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) ให้กับ บัญชีบริการ Gemini Code Assist ให้สิทธิ์นี้ในคีย์ที่คุณสร้างคอนโซล
ไปที่การจัดการคีย์
เลือกคีย์ที่คุณสร้าง
ให้สิทธิ์เข้าถึงบัญชีบริการ Gemini Code Assist โดยทำดังนี้
- คลิกเพิ่มหลักการ
- เพิ่มบัญชีบริการ Gemini Code Assist
บัญชีบริการคือ
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions.
โดยที่ PROJECT_NUMBER คือ หมายเลขโปรเจ็กต์ ของโปรเจ็กต์ Google Cloud ที่เปิดใช้ Gemini Code Assist - ในเลือกบทบาท ให้เลือก Cloud KMS > ผู้เข้ารหัส/ผู้ถอดรหัส Cloud KMS CryptoKey
- คลิกบันทึก
ทำซ้ำขั้นตอนก่อนหน้าเพื่อให้สิทธิ์เข้าถึงบัญชีที่จะ สร้างดัชนีที่เก็บโค้ดด้วย CMEK
กลับไปที่หน้าการจัดการคีย์ แล้วเลือกคีย์อีกครั้ง
เลือกแสดงแผงข้อมูล คุณควรเห็นบทบาทในคอลัมน์บทบาท/สมาชิก
gcloud
หากต้องการให้สิทธิ์เข้าถึงบริการ Gemini Code Assist บัญชี ให้ใช้
kms keys add-iam-policy-binding
คำสั่งในสภาพแวดล้อมเชลล์gcloud kms keys add-iam-policy-binding KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEYRING_NAME \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion." \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"
แทนที่ค่าต่อไปนี้
- KEY_NAME: ชื่อคีย์
- PROJECT_ID: รหัสของโปรเจ็กต์ที่มีคีย์
- LOCATION: ตำแหน่งของคีย์
- KEYRING_NAME: ชื่อคีย์ริง
- PROJECT_NUMBER: หมายเลขโปรเจ็กต์ ของโปรเจ็กต์ Google Cloud ที่เปิดใช้ Gemini Code Assist
ทำซ้ำขั้นตอนก่อนหน้าเพื่อให้สิทธิ์เข้าถึงบัญชีที่จะ สร้างดัชนีที่เก็บโค้ดด้วย CMEK
ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งนี้ได้ที่
gcloud kms keys add-iam-policy-binding
เอกสารประกอบ
ตอนนี้คุณสามารถสร้างดัชนีที่เก็บโค้ดด้วย CMEK โดยใช้ API และระบุคีย์ที่จะใช้สำหรับการเข้ารหัสได้แล้ว
สร้างดัชนีที่เก็บโค้ดด้วย CMEK
หากต้องการสร้างที่เก็บใหม่ที่มีการป้องกัน CMEK ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
gcloud
ใช้คำสั่ง gemini code-repository-indexes create
ดังนี้
gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
--location=LOCATION \
--kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
แทนที่ค่าต่อไปนี้
- CODE_REPOSITORY_INDEX_NAME: ชื่อของที่เก็บโค้ดใหม่ ดัชนีที่คุณจะสร้าง
- LOCATION: ตำแหน่งของคีย์
- KEY_PROJECT_ID: รหัสโปรเจ็กต์หลัก
- KEYRING_NAME: ชื่อคีย์ริง
- KEY_NAME: ชื่อคีย์
API
สร้างไฟล์ JSON ที่มีข้อมูลต่อไปนี้
{ "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME" }
แทนที่ค่าต่อไปนี้
KEY_PROJECT_ID
: รหัสโปรเจ็กต์คีย์KEY_LOCATION
: ตำแหน่งของคีย์KEYRING_NAME
: ชื่อคีย์ริงKEY_NAME
: ชื่อคีย์
ใช้คำสั่ง
cURL
เพื่อเรียกใช้เมธอดprojects.locations.codeRepositoryIndexes.create
ดังนี้curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT_ID/locations/KEY_LOCATION/codeRepositoryIndexes?codeRepositoryIndexId=CODE_REPOSITORY_INDEX_NAME"
แทนที่ค่าต่อไปนี้
JSON_FILE_NAME
: เส้นทางของ ไฟล์ JSON ที่คุณสร้างในขั้นตอนก่อนหน้าPROJECT_ID
: รหัสของโปรเจ็กต์ที่จะสร้าง ที่เก็บKEY_LOCATION
: ตำแหน่งที่จะสร้างที่เก็บ ซึ่งต้องตรงกับตำแหน่งที่มี CMEKCODE_REPOSITORY_INDEX_NAME
: ชื่อของดัชนีที่เก็บโค้ดใหม่ที่คุณจะสร้าง เช่นzg-btf-0001
การตอบกลับจะแสดงชุดรายการบันทึก
ยกเลิกสิทธิ์เข้าถึงที่เก็บ CMEK
คุณนำสิทธิ์เข้าถึงที่เก็บที่เข้ารหัสด้วย CMEK ได้หลายวิธี ดังนี้
- เพิกถอนบทบาทผู้เข้ารหัส/ผู้ถอดรหัส Cloud KMS CryptoKey จากบัญชีบริการ Gemini Code Assist โดยใช้ API Console หรือ gcloud
- ปิดใช้ชั่วคราว CMEK
- ทำลายอย่างถาวร CMEK
เราขอแนะนำให้คุณเพิกถอนสิทธิ์จากบัญชีบริการ Gemini Code Assist ก่อนที่จะปิดใช้หรือทำลายคีย์ การเปลี่ยนแปลงสิทธิ์จะสอดคล้องกันภายในไม่กี่วินาที คุณจึงสังเกตผลกระทบของการปิดใช้หรือทำลายคีย์ได้