1. مقدمه
Cloud KMS Autokey ایجاد و استفاده از کلیدهای رمزگذاری مدیریت شده توسط مشتری (CMEK) را با خودکارسازی تهیه و تخصیص ساده می کند. با Autokey، حلقههای کلید، کلیدها و حسابهای خدمات شما نیازی به برنامهریزی و تهیه قبل از نیاز ندارند. درعوض، Autokey کلیدهای شما را بر حسب تقاضا تولید میکند، همانطور که منابع شما ایجاد میشوند، با تکیه بر مجوزهای واگذار شده به جای مدیران Cloud KMS.
استفاده از کلیدهای تولید شده توسط Autokey می تواند به شما کمک کند تا به طور مداوم با استانداردهای صنعت و روش های توصیه شده برای امنیت داده ها، از جمله سطح حفاظت HSM، جداسازی وظایف، چرخش کلید، مکان و ویژگی کلید هماهنگ شوید. کلید خودکار کلیدهایی را ایجاد می کند که از دستورالعمل های کلی و دستورالعمل های خاص مربوط به نوع منبع برای سرویس های Google Cloud که با کلید خودکار Cloud KMS یکپارچه می شوند، پیروی می کند. پس از ایجاد آنها، کلیدها با استفاده از عملکرد کلید خودکار مشابه سایر کلیدهای Cloud HSM با همان تنظیمات درخواست می شوند.
چیزی که خواهی ساخت
در این نرم افزار کد، شما می خواهید منابع محافظت شده را با استفاده از کلید خودکار Cloud KMS با ایجاد:
- یک منبع پوشه
- پروژه ای که حاوی کلیدهای شما خواهد بود
- یک نماینده خدمات به عنوان دستیار مدیریت کلید شما
- پروژه ای که میزبان منابع محافظت شده شما خواهد بود
- مجموعه داده های BigQuery، دیسک های پایدار و سطل های ذخیره سازی ابری رمزگذاری شده با کلید خودکار Cloud KMS
آنچه شما نیاز دارید
- Google Cloud Organization
- برای تکمیل این آزمایشگاه، مدیر Google Cloud شما باید نقشهای زیر را در سطح سازمان داشته باشد:
- مدیر کلید خودکار Cloud KMS (roles/cloudkms.autokeyAdmin)
- پوشه IAM Admin (roles/resourcemanager.folderIamAdmin)
- کاربر حساب صورتحساب (roles/billing.user)
- پروژههای Google Cloud با فعال کردن صورتحساب
- تجربه پایه لینوکس
2. یک پوشه ایجاد کنید
پوشه ها گره هایی در سلسله مراتب منابع پلتفرم ابری هستند. یک پوشه می تواند شامل پروژه ها، پوشه های دیگر یا ترکیبی از هر دو باشد. منابع سازمان می توانند از پوشه ها برای گروه بندی پروژه ها در زیر گره منبع سازمان در یک سلسله مراتب استفاده کنند. برای ایجاد یک پوشه:
- به صفحه مدیریت منابع در کنسول Google Cloud بروید
- مطمئن شوید که نام منبع سازمان شما در لیست کشویی سازمان در بالای صفحه انتخاب شده باشد.
- روی ایجاد پوشه کلیک کنید
- پوشه استاندارد را انتخاب کنید
- در کادر نام پوشه، نام پوشه جدید خود را وارد کنید. برای این آزمایشگاه، "Autokey-Folder" را در نظر بگیرید
- در قسمت مقصد، روی Browse کلیک کنید، سپس منبع سازمان یا پوشه ای را که می خواهید پوشه جدید خود را در آن ایجاد کنید، انتخاب کنید.
- روی ایجاد کلیک کنید.
3. یک پروژه منبع ایجاد کنید
ایجاد یک پروژه منبع برای حاوی منابع - مانند مجموعه داده های BigQuery، دیسک های پایدار و سطل های ذخیره سازی ابری - که می خواهید با کلید خودکار Cloud KMS رمزگذاری کنید، مهم است. اگر بخواهید منابع محافظت شده توسط Autokey را در پروژه کلید ایجاد کنید، Autokey درخواست یک کلید جدید را رد می کند. برای ایجاد پروژه منبع:
- به صفحه مدیریت منابع در کنسول Google Cloud بروید
- روی ایجاد پروژه کلیک کنید.
- در لیست کشویی Select Organization در بالای صفحه، پوشه "Autokey-Folder" را انتخاب کنید.
- در پنجره پروژه جدید که ظاهر می شود، نام پروژه را وارد کنید و حساب صورتحساب را انتخاب کنید. برای این آزمایشگاه، "منابع رمزگذاری شده با کلید خودکار" را در نظر بگیرید
- در کادر Location، پوشه "Autokey-Folder" را انتخاب کنید. آن منبع، والد سلسله مراتبی پروژه جدید خواهد بود. تنظیمات شما باید شبیه به این باشد:
- شناسه پروژه - در مثال بالا شناسه پروژه "causal-hour-43319-m4" است اما شناسه شما متفاوت خواهد بود - در ویرایشگر متن انتخابی خود کپی کنید.
- روی Create کلیک کنید
- نماد Cloud Shell را در گوشه سمت راست بالای صفحه خود انتخاب کنید
- پس از فعال شدن Cloud Shell، با اجرای دستور زیر، شناسه پروژه Autokey خود را به عنوان یک متغیر ذخیره کنید:
export RESOURCE_PROJECT=<paste your Resource Project ID>
از آنجا که شناسه پروژه من "key-management-433319" است، دستور من به این شکل است:
export AUTOKEY_PROJECT=causal-hour-43319-m4
- دستور زیر را برای اجرای دستورات از پروژه کلید خود اجرا کنید:
gcloud config set project $RESOURCE_PROJECT
هنگامی که از شما خواسته شد، Cloud Shell را با کلیک کردن روی "Authorize" مجاز کنید
- از آنجایی که این پروژه حاوی منابعی است، باید APIها را برای خدماتی که Autokey محافظت می کند فعال کنیم. دستور زیر را اجرا کنید:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com
4. یک پروژه کلیدی ایجاد کنید
توصیه می کنیم پروژه ای ایجاد کنید که حاوی منابع Cloud KMS ایجاد شده توسط Autokey باشد. این به عنوان "پروژه کلیدی" در آینده نامیده می شود. پروژه کلید را می توان در همان پوشه ای ایجاد کرد که قصد دارید کلید خودکار را فعال کنید. شما نباید منابع دیگری را در داخل پروژه کلید ایجاد کنید. اگر بخواهید منابع محافظت شده توسط Autokey را در پروژه کلید ایجاد کنید، Autokey درخواست یک کلید جدید را رد می کند. برای ایجاد پروژه کلیدی:
- به صفحه مدیریت منابع در کنسول Google Cloud بروید
- روی ایجاد پروژه کلیک کنید.
- در لیست کشویی Select Organization در بالای صفحه، پوشه "Autokey-Folder" را انتخاب کنید.
- در پنجره پروژه جدید که ظاهر می شود، نام پروژه را وارد کنید و حساب صورتحساب را انتخاب کنید. برای این آزمایشگاه، "مدیریت کلید" را در نظر بگیرید
- در کادر Location، پوشه "Autokey-Folder" را انتخاب کنید. آن منبع، والد سلسله مراتبی پروژه جدید خواهد بود. تنظیمات شما باید شبیه به این باشد:
- شناسه پروژه - در مثال بالا، شناسه پروژه "key-management-433319" است اما شناسه شما متفاوت خواهد بود - در ویرایشگر متن انتخابی خود کپی کنید.
- روی ایجاد کلیک کنید.
5. پروژه کلید خودکار را آماده کنید
اکنون که هر پروژه ایجاد می شود، زمان آن است که پروژه کلید را برای استفاده از کلید خودکار Cloud KMS پیکربندی کنید.
- نماد Cloud Shell را در گوشه سمت راست بالای صفحه خود انتخاب کنید
- پس از فعال شدن Cloud Shell، با اجرای دستور زیر، شناسه پروژه Autokey خود را به عنوان یک متغیر ذخیره کنید:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>
از آنجا که شناسه پروژه من "key-management-433319" است، دستور من به این شکل است:
export AUTOKEY_PROJECT=key-management-433319
- دستور زیر را برای اجرای دستورات از پروژه کلید خود اجرا کنید:
gcloud config set project $AUTOKEY_PROJECT
هنگامی که از شما خواسته شد، Cloud Shell را با کلیک کردن روی "Authorize" مجاز کنید
- با اجرای دستور زیر، Cloud KMS API را فعال کنید
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- دستور زیر را اجرا کنید تا شماره پروژه خود را به عنوان متغیری با نام AUTOKEY_PROJECT_NUMBER ذخیره کنید.
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
- با اجرای دستور زیر ایمیل اصلی خود را به عنوان یک متغیر ذخیره کنید:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- اعطای مجوزهای سرپرست Cloud KMS در پروژه کلیدی به کاربران سرپرست Cloud KMS شما
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
--role=roles/cloudkms.admin \
--member=user:$KEY_ADMIN_EMAIL
6. عوامل سرویس Cloud KMS را راه اندازی کنید
عامل سرویس Cloud KMS برای یک پروژه کلیدی کلیدها را ایجاد می کند و از طرف یک مدیر انسانی Cloud KMS در حین ایجاد منبع، الزامات خط مشی IAM را اعمال می کند. برای اینکه بتواند کلیدها را ایجاد و تخصیص دهد، عامل سرویس Cloud KMS به مجوزهای سرپرست Cloud KMS نیاز دارد.
- شناسه سازمان را با دستور زیر پیدا کنید:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- شناسه سازمان را کپی کنید - این نتیجه عددی است که با رنگ قرمز مشخص شده است
- شناسه سازمان را به عنوان متغیری با نام ORG_ID ذخیره کنید:
export ORG_ID=<paste your Organization ID>
- با اجرای دستور زیر، عامل سرویس Cloud KMS را ایجاد کنید:
gcloud beta services identity create --service=cloudkms.googleapis.com \
--project=$AUTOKEY_PROJECT_NUMBER
- اعطای نقش سرپرست Cloud KMS به عامل سرویس:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
--role=roles/cloudkms.admin \
--member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
- یک الزام آور خط مشی IAM اضافه کنید تا بتوانید استفاده از کلید KMS Cloud خود را مشاهده کنید. استفاده از کلید اطلاعاتی را برای هر کلید شامل تعداد منابع محافظت شده، پروژهها و محصولات منحصربهفرد Google Cloud که از کلید استفاده میکنند، ارائه میکند. این سطح از جزئیات برای هر کسی که نقش Cloud KMS Viewer را روی کلید داشته باشد در دسترس است. دستور زیر را اجرا کنید:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
--member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
--role='roles/cloudkms.orgServiceAgent'
- به حساب سرویس Cloud KMS خود نقش Cloud KMS Organization Service Agent (cloudkms.orgServiceAgent) را در منبع سازمان خود اعطا کنید.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
--role='roles/cloudkms.orgServiceAgent'
- نقش Cloud KMS Protected Resources Viewer را در منبع سازمان خود به هر کسی که نیاز به مشاهده جزئیات استفاده کلیدی دارد اعطا کنید.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="user:$KEY_ADMIN_EMAIL" \
--role='roles/cloudkms.protectedResourcesViewer'
7. نقش های کاربر Autokey را اعطا کنید
قبل از اینکه توسعه دهندگان شما بتوانند از Autokey استفاده کنند، باید نقش مورد نیاز را به آنها بدهید. می توانید نقش را در سطح پوشه یا در سطح پروژه اعطا کنید. این نقش به توسعه دهندگان این امکان را می دهد که کلیدها را از عامل سرویس Cloud KMS هنگام ایجاد منابع در آن پوشه یا پروژه درخواست کنند.
اولین قدم در اعطای نقش، ذخیره شناسه پوشه است.
- شناسه پوشه را با دستور زیر پیدا کنید:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- شناسه پوشه را کپی کنید - این قسمتی است که با رنگ قرمز مشخص شده است
- شناسه پوشه را به عنوان متغیری با نام FOLDER_ID ذخیره کنید
export FOLDER_ID=<paste the folder ID>
برای اهداف این آزمایشگاه، مدیر کلید را به عنوان کاربر Autokey تعریف می کنیم. با این حال، در موارد استفاده از تولید و در سازمانهایی که بیش از یک فرد دارند، مدیر کلید باید با توسعهدهندهای که از Autokey استفاده میکند متفاوت باشد.
- نقش roles/cloudkms.autokeyUser را در سطح پوشه اعطا کنید:
gcloud resource-manager folders add-iam-policy-binding \
$FOLDER_ID --role=roles/cloudkms.autokeyUser \
--member=user:$KEY_ADMIN_EMAIL
8. کلید خودکار Cloud KMS را در پوشه منبع فعال کنید
در این مرحله، کلید خودکار Cloud KMS را روی یک پوشه منبع فعال میکنید و پروژه Cloud KMS را که حاوی منابع Autokey برای آن پوشه است، شناسایی میکنید. فعال کردن کلید خودکار در این پوشه، کلید خودکار را برای تمام پروژههای منبع داخل پوشه فعال میکند.
- در کنسول Google Cloud، به صفحه کنترلهای KMS بروید.
- بر روی Select Folder کلیک کنید
- از انتخابکننده متن، پوشهای را که میخواهید کلید خودکار را در آن فعال کنید، انتخاب کنید. این همان پوشه ای است که قبلا ایجاد کردید و شامل پروژه منبع شما و پروژه مدیریت کلید است. باید به این شکل باشد:
- روی Enable کلیک کنید.
- برای انتخاب پروژه کلیدی، روی Browse کلیک کنید
- پروژه مدیریت کلید خود را انتخاب کنید و سپس روی ارسال کلیک کنید.
یک پیام تأیید می کند که کلید خودکار Cloud KMS در پوشه فعال است. صفحه کنترل های KMS باید به شکل زیر باشد:
9. با استفاده از کلید خودکار Cloud KMS منابع محافظت شده ایجاد کنید
دیسک های پایدار موتور را محاسبه کنید
Autokey یک کلید جدید برای هر دیسک، تصویر و تصویر ماشین در همان مکان منبعی که ایجاد می شود ایجاد می کند.
برای ایجاد یک دیسک، مراحل زیر را انجام دهید:
- در کنسول Google Cloud، به صفحه دیسکها بروید.
- روی ایجاد دیسک کلیک کنید و خصوصیات دیسک جدید را وارد کنید.
- در بخش رمزگذاری، کلید Cloud KMS را انتخاب کنید.
- برای نوع کلید، Cloud KMS با کلید خودکار را انتخاب کنید و سپس روی درخواست کلید جدید کلیک کنید. زمانی که کلید شما با موفقیت ایجاد شده و آماده استفاده است، یک پیام نشان می دهد.
- برای تکمیل ساخت دیسک، روی ایجاد کلیک کنید.
شما می توانید فرآیند مشابهی را برای ایجاد نمونه، تصویر و منابع تصویر ماشین محافظت شده VM دنبال کنید.
Google Cloud Storage Buckets
Autokey یک کلید جدید در همان مکان سطل ایجاد می کند. کلید ایجاد شده توسط Autokey به عنوان کلید پیش فرض سطل اختصاص داده می شود.
کلید خودکار برای اشیا کلید ایجاد نمی کند. به طور پیش فرض، اشیاء ایجاد شده در یک سطل از کلید پیش فرض سطل استفاده می کنند. اگر میخواهید یک شی را با استفاده از کلیدی غیر از کلید پیشفرض سطل رمزگذاری کنید، میتوانید به صورت دستی یک CMEK ایجاد کنید و از آن کلید هنگام ایجاد شی استفاده کنید.
- در کنسول Google Cloud، به صفحه Create a bucket بروید.
- یک نام جهانی منحصر به فرد و دائمی انتخاب کنید.
- یک مکان داده را انتخاب کنید.
- به بخش "انتخاب نحوه محافظت از داده های شی" بروید
- برای گسترش بخش، روی "انتخاب نحوه محافظت از داده های شی" کلیک کنید
- بخش رمزگذاری داده را باز کنید و کلید Cloud KMS را انتخاب کنید.
- برای نوع کلید، Cloud KMS با کلید خودکار را انتخاب کنید و سپس روی درخواست کلید جدید کلیک کنید. زمانی که کلید شما با موفقیت ایجاد شده و آماده استفاده است، یک پیام نشان می دهد.
- برای تکمیل ایجاد سطل، روی ایجاد کلیک کنید. اگر یک کادر محاوره ای از شما خواسته شد که توضیح می دهد "دسترسی عمومی جلوگیری می شود" روی تأیید کلیک کنید.
مجموعه داده BigQuery
برای هر مجموعه داده جدید، Autokey یک کلید جدید در همان مکان خود منبع ایجاد می کند که به کلید پیش فرض مجموعه داده تبدیل می شود. کلید خودکار برای جداول، پرسشها، جداول موقت یا مدلها کلید ایجاد نمیکند. به طور پیش فرض، این منابع توسط کلید پیش فرض مجموعه داده محافظت می شوند. اگر میخواهید با استفاده از کلیدی غیر از کلید پیشفرض مجموعه داده از منبعی در مجموعه داده محافظت کنید، میتوانید به صورت دستی یک CMEK ایجاد کنید و از آن کلید هنگام ایجاد منبع استفاده کنید.
برای ایجاد یک مجموعه داده BigQuery، ابتدا باید نقش BigQuery User را داشته باشید.
- به پوسته ابری بازگردید
- Cloud Shell خود را برای اجرای دستورات از پروژه منبع تنظیم کنید
gcloud config set project $RESOURCE_PROJECT
- دستور زیر را اجرا کنید تا شماره پروژه خود را به عنوان متغیری به نام RESOURCE_PROJECT_NUMBER ذخیره کنید.
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
- به خود نقش BigQuery User را بدهید
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
--role=roles/bigquery.user \
--member=user:$KEY_ADMIN_EMAIL
اکنون که نقش BigQuery User را دارید، می توانید یک مجموعه داده ایجاد کنید و با Autokey از آن محافظت کنید!
- در کنسول Google Cloud، به صفحه BigQuery بروید.
- دستورالعمل های ایجاد مجموعه داده را دنبال کنید تا به گزینه های پیشرفته > رمزگذاری برسید.
- در بخش رمزگذاری، کلید Cloud KMS را انتخاب کنید.
- برای نوع کلید، Cloud KMS با کلید خودکار را انتخاب کنید و سپس روی درخواست کلید جدید کلیک کنید. زمانی که کلید شما با موفقیت ایجاد شده و آماده استفاده است، یک پیام نشان می دهد.
- برای تکمیل ایجاد مجموعه داده، روی ایجاد مجموعه داده کلیک کنید.
10. کلیدهای خود را کاوش کنید
در این مرحله، کلیدهای Cloud KMS Autokey ایجاد شده از طرف شما را با مراجعه به صفحه Key Inventory بررسی خواهید کرد. صفحه موجودی کلید اطلاعات جامعی در مورد کلیدهای رمزنگاری در پروژه شما ارائه می دهد. توجه داشته باشید که ممکن است داده ها با تأخیر مواجه شوند. به عنوان مثال، اگر یک منبع محافظت شده جدید ایجاد کنید، منبع محافظت شده و نسخه کلید مرتبط بلافاصله به برگه ردیابی استفاده اضافه نمی شوند. محدودیت های بیشتر را اینجا ببینید.
- در کنسول Google Cloud، به صفحه موجودی کلید بروید.
- اختیاری: برای فیلتر کردن لیست کلیدها، عبارات جستجوی خود را در کادر فیلتر_list وارد کنید و سپس enter را فشار دهید. برای مثال، میتوانید بر اساس مکان، حلقه کلید، وضعیت یا سایر ویژگیهای کلیدها را فیلتر کنید.
- روی نام کلیدی که میخواهید اطلاعات استفاده از آن را مشاهده کنید، کلیک کنید.
- روی "نمای کلی" کلیک کنید. توجه داشته باشید که در هر منبع ایجاد شده یک کلید دارید. نام هر کلید شامل نام منبعی است که کلید محافظت می کند (مثلاً "دیسک محاسباتی" یا "سطل ذخیره سازی"). کلید خودکار Cloud KMS تضمین می کند که هر کلید 365 روز پس از ایجاد آن برای چرخش برنامه ریزی شده است و به هر کلید سطح حفاظت "HSM" اختصاص داده می شود.
- روی تب Usage Tracking کلیک کنید. به سطح اطلاعات ارائه شده توجه کنید: هر منبعی که کلید آن را رمزگذاری می کند، در کنار پروژه، مکان و تاریخ ایجاد نشان داده شده است.
- اختیاری: برای فیلتر کردن لیست منابع محافظت شده، عبارات جستجوی خود را در کادر فیلتر_list وارد کنید و سپس Enter را فشار دهید.
11. تبریک می گویم
تبریک میگوییم، شما با موفقیت منابع Google Cloud را ایجاد کردهاید و بهطور خودکار آنها را بر حسب تقاضا با کلید خودکار Cloud KMS رمزگذاری کردهاید!
اکنون مراحل کلیدی مورد نیاز برای راه اندازی Autokey را می دانید و از آن برای رمزگذاری خودکار منابع خود با کلیدهای Cloud KMS استفاده می کنید.
12. بعد چی؟
داده ها را در منابع رمزگذاری شده با کلید خودکار خود آپلود کنید
- یک نمونه موتور محاسباتی گوگل (GCE) ایجاد کنید
- دیسک پایدار محافظت شده با کلید خودکار خود را به نمونه GCE خود وصل کنید
- داده ها را در مجموعه داده BigQuery خود آپلود کنید
- اشیاء را در Google Cloud Storage Bucket آپلود کنید
- داده های Google Cloud Storage را در BigQuery بارگیری کنید