1. مقدمه
کنترلهای سرویس VPC (VPC-SC) یک کنترل امنیتی در سطح سازمان در Google Cloud است که به مشتریان سازمانی امکان میدهد خطرات استخراج داده را کاهش دهند. کنترلهای سرویس VPC با امکان دسترسی مشتریان به IPهای مجاز، زمینه مشتری و پارامترهای دستگاه در حین اتصال به سرویسهای چند مستاجر از اینترنت و سایر سرویسها، دسترسی سبک اعتماد صفر را به سرویسهای چند مستاجر ارائه میکند تا هم عمدی و هم عمدی را کاهش دهد. ضررهای غیر عمدی میتوانید از کنترلهای سرویس VPC برای ایجاد محیطهایی استفاده کنید که از منابع و دادههای سرویسهایی که صریحاً مشخص کردهاید محافظت میکنند.
اهداف این آموزش عبارتند از:
- اصول کنترل های سرویس VPC را بدانید
- یک محیط سرویس VPC ایجاد کنید
- از پروژه با کنترل های سرویس VPC محافظت کنید
- عیبیابی نقض ورودی کنترلهای سرویس VPC
2. راه اندازی و الزامات
برای این آموزش به پیش نیازهای زیر نیاز داریم:
- یک سازمان GCP.
- پوشه ای در زیر سازمان.
- 2 پروژه GCP در همان سازمان که در زیر پوشه قرار می گیرند.
- مجوزهای مورد نیاز در سطح سازمان
- حساب صورتحساب برای هر دو پروژه.
تنظیم منابع
- در Google Cloud Console ، یک پوشه تحت سازمان و دو پروژه جدید ایجاد کنید. ( می توانید از پروژه های موجود دوباره استفاده کنید ).
(اگر قبلاً یک حساب Google Workspace/Cloud Identity ندارید، باید یک حساب کاربری داشته باشید زیرا برای این آموزش باید یک سازمان داشته باشید).
- بررسی کنید که مجوزهای صحیحی برای این آموزش در سطح سازمانی دارید.
- نقش های IAM برای پوشه ها
- مجوزها و نقش ها برای پروژه ها
- مجوزها و نقش های مورد نیاز برای پیکربندی کنترل های سرویس VPC
- مجوزها و نقش های مورد نیاز برای مدیریت Compute Engine
- اطمینان حاصل کنید که هر دو پروژه در زیر پوشه در دسترس هستند زیرا باید یک خط مشی محدوده در سطح پوشه ایجاد کنیم. درباره انتقال پروژه به یک پوشه بیاموزید.
هزینه
برای استفاده از منابع/APIهای Cloud باید صورتحساب را در کنسول Cloud فعال کنید. اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
تنها منبعی که هزینه ایجاد می کند نمونه VM است. هزینه تخمینی را می توان در ماشین حساب قیمت پیدا کرد .
3. یک محیط ایجاد کنید
در این آزمایشگاه مراحل زیر را انجام می دهیم:
- در Google Console، سازمان خود را انتخاب کنید و به کنترلهای سرویس VPC دسترسی پیدا کنید . لطفا مطمئن شوید که در سطح سازمان هستید.
- روی "Manage Policies" کلیک کنید تا یک خط مشی دسترسی جدید ایجاد کنید که در پوشه "Codelab" قرار دارد.
- یک محیط جدید در حالت اجباری ایجاد کنید . اجازه دهید نام آن را "SuperProtection" برای این آموزش بگذاریم.
- هنگامی که محیط را ایجاد می کنید، پروژه ای را که باید به عنوان ProjectZ اجرا شود انتخاب کنید.
- نوع محیط را به عنوان "عادی" انتخاب کنید.
- در گفتگوی Specify services to limited ، سرویسی را که میخواهید محدود کنید به عنوان «موتور محاسباتی» انتخاب کنید.
تنظیم محیط باید به شکل زیر باشد:
4. بررسی کنید که محیط اجرا شده است
- به ProjectX دسترسی پیدا کنید و با مراجعه به صفحه اصلی VM Instances بررسی کنید که آیا قادر به دسترسی Compute Engine API هستید یا خیر. شما باید بتوانید این کار را انجام دهید زیرا projectX توسط محیط VPC SC ایجاد شده محافظت نمی شود.
- به ProjectZ دسترسی پیدا کنید و بررسی کنید که آیا می توانید به Compute Engine دسترسی پیدا کنید . می بینید که این درخواست توسط VPC Service Controls ممنوع شده است زیرا SuperProtection محیطی سرویس از ProjectZ و Compute Engine API محافظت می کند.
5. رفع اشکال انکار
ابتدا باید مشخص کنیم مشکل اینجا دقیقاً چیست تا نحوه عیب یابی آن را مشخص کنیم.
- گزارشهای کنترلهای سرویس VPC شامل جزئیات درخواستها به منابع محافظتشده و دلیل رد درخواست توسط کنترلهای سرویس VPC است. بیایید شناسه منحصر به فرد کنترل های سرویس VPC را در گزارش های حسابرسی ProjectZ با استفاده از پرس و جو زیر در Logs Explorer پیدا کنیم:
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
این همه گزارش های حسابرسی کنترل های سرویس VPC را نشان می دهد. ما به دنبال آخرین گزارش خطا خواهیم بود.
- در سربرگ کنترلهای سرویس VPC کلیک کنید و «عیبیابی رد» را انتخاب کنید تا عیبیابی کنترلهای سرویس VPC باز شود.
این API در یک رابط کاربری دوستانه دلیل نقض را به ما نشان می دهد، و اینکه آیا این یک نقض ورودی یا خروجی از جمله موارد مفید دیگر است.
برای این تمرین ما به دنبال موارد زیر خواهیم بود:
"principalEmail": "user@domain" "callerIp": "PUBLIC_IP_ADDRESS" "serviceName": "compute.googleapis.com" "servicePerimeterName": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection "ingressViolations": [ { "targetResource": "projects/[PROJECT_NUMBER]", "servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection" } ], "violationReason": "NO_MATCHING_ACCESS_LEVEL", "resourceNames": "[PROJECT_ID]"
ما دو گزینه برای رفع این رد در ProjectZ داریم.
- ایجاد یک سطح دسترسی برای اجازه دسترسی به پروژه در داخل محیط با اعطای دسترسی به IP سیستم من.
- ایجاد یک قانون ورود برای اجازه دسترسی به یک کلاینت API از خارج از محیط سرویس به منابع داخل یک محیط سرویس.
در این آموزش با ایجاد یک سطح دسترسی عیب یابی می کنیم.
- در محدوده پوشه (Codelab) به Access Context Manager بروید و یک سطح دسترسی جدید ایجاد کنید.
- از "حالت پایه" استفاده کنید و زمانی که زیرشبکه IP و موقعیت جغرافیایی برآورده شد اجازه دسترسی را می دهیم.
- در محدوده سازمانی به VPC Service Controls بروید. خط مشی دسترسی خود را برای این Codelab انتخاب کنید و محیطی را که قبلا ایجاد کرده بودیم ویرایش کنید.
- سطح دسترسی ایجاد شده در محدوده پوشه را اضافه کنید و ذخیره کنید.
6. نتایج آزمایش.
تأیید کنید که به Compute Engine دسترسی داریم و میتوانیم یک نمونه VM ایجاد کنیم. اکنون که سطح دسترسی را ایجاد کردیم، بیایید سعی کنیم به موتور محاسباتی در ProjectZ دسترسی داشته باشیم و یک نمونه VM ایجاد کنیم.
- به Compute Engine رفته و روی Create Instance کلیک کنید
- همه چیز را به عنوان پیش فرض بگذارید و سعی کنید یک نمونه VM کم هزینه ایجاد کنید.
پس از حدود یک دقیقه، باید نمونه VM ایجاد شده را ببینید و می توانید تأیید کنید که دسترسی کامل به موتور محاسباتی محافظت شده در داخل محیط دارید.
7. پاکسازی
در حالی که هیچ هزینه جداگانه ای برای استفاده از کنترل های سرویس VPC در زمانی که سرویس در حال استفاده نیست، دریافت نمی شود، تمیز کردن تنظیمات مورد استفاده در این آزمایشگاه بهترین روش است. همچنین می توانید نمونه VM و/یا پروژه های Cloud خود را حذف کنید تا از تحمیل هزینه جلوگیری کنید. با حذف پروژه Cloud، صورتحساب تمام منابع مورد استفاده در آن پروژه متوقف میشود.
- برای حذف نمونه VM خود، کادر انتخاب سمت چپ نام نمونه VM خود را انتخاب کنید و سپس روی Delete کلیک کنید.
- برای حذف محیط، مراحل زیر را انجام دهید:
- در کنسول Google Cloud، روی Security کلیک کنید و سپس روی VPC Service Controls در محدوده سازمان کلیک کنید.
- در صفحه VPC Service Controls، در ردیف جدول مربوط به محیطی که می خواهید حذف کنید، روی "Delete Icon" کلیک کنید.
- برای حذف سطح دسترسی، مراحل زیر را انجام دهید:
- در کنسول Google Cloud، صفحه Access Context Manager را در محدوده پوشه باز کنید.
- در شبکه، در ردیف سطح دسترسی که میخواهید حذف کنید، روی «Delete Icon» کلیک کنید و سپس روی Delete کلیک کنید.
- برای خاموش کردن پروژه های خود، مراحل زیر را انجام دهید:
- در کنسول Google Cloud، به صفحه IAM & Admin Settings پروژه ای که می خواهید حذف کنید بروید.
- در صفحه IAM & Admin Settings، روی Shutdown کلیک کنید.
- شناسه پروژه را وارد کرده و در هر حال بر روی Shutdown کلیک کنید.
8. تبریک!
در این Codelab شما یک محیط VPC Service Controls ایجاد کردید، آن را اجرا کردید و عیبیابی کرد.
بیشتر بدانید
- به مستندات VPC Service Controls مراجعه کنید.
- به مستندات Access Context Manager مراجعه کنید.
- به مستندات عیبیابی VPC-SC مراجعه کنید.
مجوز
این اثر تحت مجوز Creative Commons Attribution 2.0 Generic مجوز دارد.