این سند نحوه استفاده از کلیدهای رمزگذاری مدیریت شده توسط مشتری (CMEK) را برای رمزگذاری و کنترل داده ها در حالت استراحت در یک سرویس ابری از طریق سرویس مدیریت کلید ابری نشان می دهد. CMEK با سفارشی سازی کد برای Gemini Code Assist یکپارچه شده است. Gemini Code Assist از استفاده از کلیدهای Cloud EKM پشتیبانی نمی کند.
در این سند، شما موارد زیر را انجام می دهید:
- نحوه ایجاد CMEK را بیاموزید.
- به حساب سرویس Gemini Code Assist مجوز اعطا کنید.
- با یک CMEK یک فهرست مخزن کد ایجاد کنید.
- دسترسی به مخزن CMEK را حذف کنید.
به طور پیشفرض، Gemini برای Google Cloud محتوای مشتری را در حالت استراحت رمزگذاری میکند . Gemini بدون هیچ گونه اقدام اضافی از جانب شما، رمزگذاری را برای شما انجام می دهد. این گزینه رمزگذاری پیش فرض گوگل نامیده می شود.
پس از اینکه منابع خود را با 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 Encrypter/Decrypter را انتخاب کنید.
- روی ذخیره کلیک کنید.
مرحله قبل را تکرار کنید تا به حسابی که فهرست مخزن کد را با یک CMEK ایجاد می کند، دسترسی پیدا کنید.
به صفحه مدیریت کلید برگردید و دوباره کلید را انتخاب کنید.
نمایش پانل اطلاعات را انتخاب کنید. شما باید نقش ها را در ستون Role/Member ببینید.
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
مراجعه کنید.
اکنون می توانید با استفاده از API یک فهرست مخزن کد با یک CMEK ایجاد کنید و کلید مورد استفاده برای رمزگذاری را مشخص کنید.
با یک 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
: مکانی برای ایجاد مخزن که باید با مکانی که CMEK وجود دارد مطابقت داشته باشد. -
CODE_REPOSITORY_INDEX_NAME
: نام نمایه مخزن کد جدیدی که ایجاد می کنید. برای مثالzg-btf-0001
.
-
پاسخ مجموعه ای از ورودی های گزارش را برمی گرداند.
دسترسی به مخزن CMEK را حذف کنید
چندین راه برای حذف دسترسی به یک مخزن رمزگذاری شده با CMEK وجود دارد:
- نقش رمزگذار/رمزگشای CryptoKey Cloud KMS را از حساب سرویس Gemini Code Assist با استفاده از کنسول API یا gcloud لغو کنید.
- CMEK را به طور موقت غیرفعال کنید .
- CMEK را برای همیشه نابود کنید .
توصیه می کنیم قبل از غیرفعال کردن یا از بین بردن یک کلید، مجوزهای حساب سرویس Gemini Code Assist را لغو کنید. تغییرات در مجوزها در عرض چند ثانیه ثابت است، بنابراین می توانید اثرات غیرفعال کردن یا از بین بردن یک کلید را مشاهده کنید.