אם אתם עובדים עם כמה חברות ורוצים לשתף איתן פעולה בקוד המקור, מומלץ ליצור מופע נפרד לכל חברה.
כדי ליצור אינסטנס עם VPC Service Controls מופעל, אפשר לעיין במאמר בנושא הגדרה של Secure Source Manager בגבול גזרה של VPC Service Controls.
לפני שמתחילים
-
נכנסים לחשבון Google.
אם עדיין אין חשבון, יוצרים חשבון חדש.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות ליצירת מופע של Secure Source Manager, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Secure Source Manager Instance Owner (roles/securesourcemanager.instanceOwner) בפרויקט Google Cloud .
תפקידים ב-Secure Source Manager לא מופיעים במסוף Google Cloud עד שהם מוקצים לחשבון משתמש. במאמר הענקה וביטול של תפקידים ב-IAM מוסבר איך נותנים תפקיד ב-Secure Source Manager בפעם הראשונה.
הצפנת נתונים
כברירת מחדל, Google Cloud הנתונים במנוחה מוצפנים באופן אוטומטי באמצעות מפתחות הצפנה שמנוהלים על ידי Google. אם יש לכם דרישות ספציפיות בנושא תאימות או רגולציה שקשורות למפתחות שמגנים על הנתונים, אתם יכולים ליצור מופעים של Secure Source Manager שמוצפנים באמצעות מפתחות הצפנה בניהול הלקוח (CMEK).
אל תשמרו מידע אישי רגיש במזהי מופעים או בצמדי מפתח/ערך של תוויות, כי הם לא מוצפנים באמצעות CMEK.
אם אתם יוצרים את המופע הראשון של Secure Source Manager בפרויקט, תצטרכו ליצור באופן ידני את סוכן השירות של Secure Source Manager על ידי הפעלת הפקודה הבאה:
gcloud beta services identity create \
--service=securesourcemanager.googleapis.com \
--project=PROJECT_ID
כאשר PROJECT_ID הוא מזהה הפרויקט שבו תיצרו את המופע של Secure Source Manager.
אחרי שיוצרים את חשבון השירות לכל מוצר ולכל פרויקט (P4SA), צריך להקצות את התפקיד 'סוכן שירות של Secure Source Manager' (roles/securesourcemanager.serviceAgent) למנהל הראשי service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.comאחרת, יצירת המופע תיכשל.
יצירת מופע
כדי ליצור מופע:
CLI של gcloud
מריצים את הפקודה הבאה כדי ליצור מכונה. יכול להיות שתתבקשו לבצע אימות ל-CLI של gcloud.
gcloud source-manager instances create INSTANCE_ID \ --region=LOCATION \ --project=PROJECT_ID \ --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEYכאשר:
INSTANCE_IDהוא המזהה הקבוע של המופע. המזהה צריך לכלול רק אותיות קטנות, מספרים ומקפים, להתחיל באות ולא ניתן לשינוי אחרי שיוצרים אותו.
LOCATIONהוא האזור שבו רוצים ליצור את המופע. מידע על מיקומים נתמכים זמין במאמר מיקומים.
PROJECT_IDהוא מזהה הפרויקט שבו רוצים ליצור מופע.
-kms-keyהוא סימון אופציונלי. כוללים את האפשרות הזו אם רוצים להשתמש במפתח הצפנה בניהול הלקוח (CMEK) כדי ליצור את המכונה. מפתחות CMEK צריכים להיות באותו מיקום שבו אתם יוצרים את המכונה, אבל הם יכולים להיות בפרויקט אחר. אם רוצים להשתמש בהצפנה שמוגדרת כברירת מחדל ב-Google, לא צריך לציין את הדגל הזה. אם רוצים להצפין את הנתונים באמצעות CMEK, מחליפים את הערכים הבאים:-
KEY_PROJECTעם הפרויקט שבו יצרתם את המפתח. -
KEY_LOCATIONעם המיקום של המפתח. KEYRING_NAMEבשם של אוסף המפתחות.-
KEYמחליפים בשם המפתח.
-
מתחילה פעולה ממושכת של יצירת מכונה. הפלט אמור להיראות כך:
Create request issued for [my-instance]. done: false metadata: '@type': type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata apiVersion: v1 createTime: '2023-02-27T20:57:52.315609549Z' requestedCancellation: false target: projects/my-project/locations/us-central1/instances/my-instance verb: create name: projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2eכאשר
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2eהואOPERATION_NAME.יצירת המופע נמשכת עד 60 דקות.
חשוב לשים לב לערך
OPERATION_NAMEכי תצטרכו להשתמש בו כדי לבדוק את סטטוס הפעולה.מריצים את הפקודה הבאה כדי לבדוק את הסטטוס של הפעולה
create:gcloud source-manager operations describe OPERATION_NAME \ --region=LOCATIONמחליפים את מה שכתוב בשדות הבאים:
OPERATION_NAMEבשם הפעולה מהתגובה של פקודת היצירה.-
LOCATIONבאזור שבו רוצים ליצור את המכונה. מידע על מיקומים נתמכים זמין במאמר מיקומים.
כשהמופע יהיה מוכן, התגובה תיראה בערך כך:
{ "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-11-01T14:31:32.420469714Z", "endTime": "2022-11-01T14:48:34.140378114Z", "target": "projects/my-project/locations/us-central1/instances/test", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance", "name": "projects/my-project/locations/us-central1/instances/test", "createTime": "2022-11-01T14:31:32.416413630Z", "updateTime": "2022-11-01T14:31:32.416413630Z", "labels": { "ldap": "user", "source": "manual" }, "state": "ACTIVE", "hostConfig": { "html": "test-098765432109.us-central1.sourcemanager.dev", "api": "test-098765432109-api.us-central1.sourcemanager.dev", "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev" } } }כאשר
test-098765432109.us-central1.sourcemanager.devהיא כתובת ה-URL של ה-HTML של המכונה.מעתיקים את כתובת ה-URL של ה-HTML מהפקודה ליצירת סטטוס הבדיקה. תצטרכו את כתובת ה-URL הזו כדי לגשת למופע דרך ממשק האינטרנט שלו.
API
מריצים את הפקודה הבאה כדי ליצור מכונה. יכול להיות שתתבקשו לבצע אימות ל-CLI של gcloud.
curl \ -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID \ -H "Content-Type: application/json" \ -d '{ "kms_key":"projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY"}'כאשר:
INSTANCE_IDהוא המזהה הקבוע של המופע. המזהה יכול לכלול רק אותיות קטנות, מספרים ומקפים, והוא חייב להתחיל באות.
LOCATIONהוא האזור שבו רוצים ליצור את המכונה. מידע על מיקומים נתמכים זמין במאמר מיקומים.
PROJECT_IDהוא מזהה הפרויקט שבו רוצים ליצור מופע.
-dהוא דגל נתונים אופציונלי של HTTP POST שאפשר להשתמש בו כדי לציין מפתח CMEK להצפנת המופע. אם רוצים להשתמש בהצפנה של Google שמוגדרת כברירת מחדל, לא צריך להוסיף את הדגל הזה. אם רוצים להצפין את הנתונים באמצעות CMEK, מחליפים את הערכים הבאים:-
KEY_PROJECTעם הפרויקט שבו יצרתם את המפתח. -
KEY_LOCATIONעם המיקום של המפתח. KEYRING_NAMEבשם של אוסף המפתחות.-
KEYמחליפים בשם המפתח.
-
מתחילה פעולה ממושכת של יצירת מכונה. הפלט אמור להיראות כך:
{ "name": "projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-11-01T14:31:32.420469714Z", "target": "projects/my-project/locations/us-central1/instances/test", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }כאשר
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2eהואOPERATION_NAME.יצירת המופע נמשכת עד 60 דקות.
מעתיקים את
OPERATION_NAME.מריצים את הפקודה הבאה כדי לבדוק את הסטטוס של פעולת היצירה:
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/OPERATION_NAMEכאשר OPERATION_NAME הוא שם הפעולה מהתגובה לפקודת היצירה.
כשהמופע יהיה מוכן, התגובה תיראה בערך כך:
{ "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-11-01T14:31:32.420469714Z", "endTime": "2022-11-01T14:48:34.140378114Z", "target": "projects/my-project/locations/us-central1/instances/test", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance", "name": "projects/my-project/locations/us-central1/instances/test", "createTime": "2022-11-01T14:31:32.416413630Z", "updateTime": "2022-11-01T14:31:32.416413630Z", "labels": { "ldap": "user", "source": "manual" }, "state": "ACTIVE", "hostConfig": { "html": "test-098765432109.us-central1.sourcemanager.dev", "api": "test-098765432109-api.us-central1.sourcemanager.dev", "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev" } } }כאשר
test-098765432109.us-central1.sourcemanager.devהיא כתובת ה-URL של ה-HTML של המכונה.מעתיקים את כתובת ה-URL של ה-HTML מהפקודה ליצירת סטטוס הבדיקה. תצטרכו את כתובת ה-URL הזו כדי לגשת למופע דרך ממשק האינטרנט שלו.
Terraform
כדי ליצור מופע של Secure Source Manager באמצעות Terraform, משתמשים במשאב google_secure_source_manager_instance.
גישה למופע
אחרי שיוצרים את המופע, אפשר לגשת אליו דרך ממשק האינטרנט שלו באמצעות דפדפן.
כדי ליצור מאגרי מידע במופע, צריך את התפקיד Repo Creator (roles/securesourcemanager.repoCreator) בפרויקט של המופע ואת התפקיד Instance Repository Creator (roles/securesourcemanager.instanceRepositoryCreator) במופע של Secure Source Manager.
-
כדי לגשת למופע של Secure Source Manager דרך ממשק האינטרנט שלו, מעתיקים את כתובת ה-URL הבאה לסרגל הכתובות בדפדפן.
INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.devמחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_ID בשם המכונה.
- PROJECT_NUMBER עם מספר הפרויקט של המופע Google Cloud. מידע על זיהוי פרויקטים זמין במאמר זיהוי פרויקטים.
- LOCATION עם האזור של המכונה.
יופיע מסך OAuth שבו תתבקשו לאשר לאפליקציה
sourcemanager.devגישה לחשבון Google שלכם.לחצו על הלחצן Allow (אישור).
ייפתח ממשק האינטרנט של Secure Source Manager. אתם יכולים ליצור מאגרי קוד ולצפות בהם, וגם בכל הבעיות ובכל בקשות המיזוג שמשויכות אליהם, דרך ממשק האינטרנט.
המאמרים הבאים
- הענקת גישה למופע למשתמשים.
- יצירה ושיבוט של מאגר.
- הענקת גישה למשתמשים למאגר.
- שליטה בגישה באמצעות IAM.