הגדרת אימות במעלה הזרם למאגרים מרוחקים של Artifact Registry מאפשרת לכם למשוך חבילות ממאגרים חיצוניים ולשמור אותן במטמון באמצעות פרטי הכניסה של החשבון שלכם. אפשר לאחסן אסימון גישה אישי ב-Secret Manager ולצרף אותו למאגר המרוחק שלכם למקורות במעלה הזרם.
כדי להשלים את השלבים האלה, צריך מאגר מרוחק ב-Artifact Registry וחשבון עם המקור החיצוני. מידע נוסף על מאגרים מרוחקים זמין במאמר סקירה כללית על מאגרים מרוחקים.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת אימות למקורות במעלה הזרם עבור מאגרי נתונים מרוחקים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- אדמין ב-Artifact Registry (
roles/artifactregistry.admin) - אדמין ב-Secret Manager (
roles/secretmanager.admin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מקורות upstream מוגדרים מראש
כדי להגדיר אימות למקורות במעלה הזרם שהוגדרו מראש, צריך לעיין בהנחיות המתאימות לכל מקור במעלה הזרם שמופיעות בהמשך:
מקורות upstream שהוגדרו על ידי המשתמש
כדי להגדיר אימות למקורות במעלה הזרם שהוגדרו על ידי המשתמש, מבצעים את השלבים הבאים.
שמירת טוקן הגישה בסוד
- יוצרים אסימון גישה במאגר הפרטי.
- יוצרים סוד ב-Secret Manager.
- שומרים את אסימון הגישה האישי כגרסת סוד.
מעניקים לחשבון השירות של Artifact Registry גישה לסוד
סוכן השירות של Artifact Registry פועל בשם Artifact Registry כשהוא יוצר אינטראקציה עם Cloud de Confiance שירותים. כדי לאפשר לסוכן השירות להשתמש בסודות שמאוחסנים ב-Secret Manager, צריך לתת לסוכן השירות הרשאה לצפייה בגרסת הסוד.
המזהה של סוכן השירות הוא:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com
PROJECT-NUMBER הוא מספר הפרויקט של ה Cloud de Confiance פרויקט שבו פועל Artifact Registry.
כדי להקצות לסוכן השירות של Artifact Registry את התפקיד Secret Manager Secret Accessor:
המסוף
-
נכנסים לדף Secret Manager במסוף Cloud de Confiance .
-
בדף Secret Manager, לוחצים על תיבת הסימון לצד שם הסוד.
-
אם החלונית לא פתוחה, לוחצים על Show Info Panel כדי לפתוח אותה.
-
בחלונית המידע, לוחצים על Add Principal.
-
באזור הטקסט New principals, מזינים את כתובות האימייל של חברי הקבוצה שרוצים להוסיף.
-
בתפריט הנפתח Select a role, בוחרים באפשרות Secret Manager ואז באפשרות Secret Manager Secret Accessor.
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
כאשר member הוא חבר ב-IAM, כמו משתמש, קבוצה או חשבון שירות.
C#
כדי לבצע אימות ב-Artifact Registry, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Go
כדי לבצע אימות ב-Artifact Registry, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
כדי לבצע אימות ב-Artifact Registry, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
כדי לבצע אימות ב-Artifact Registry, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
PHP
כדי לבצע אימות ב-Artifact Registry, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
כדי לבצע אימות ב-Artifact Registry, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Ruby
כדי לבצע אימות ב-Artifact Registry, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
API
הערה: בניגוד לדוגמאות האחרות, הדוגמה הזו מחליפה את כל מדיניות ה-IAM.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"
מידע נוסף על מתן או ביטול גישה לסודות זמין במאמר בנושא ניהול הגישה לסודות.
הוספת פרטי כניסה של מאגר ראשי למאגר מרוחק
כדי לעדכן את המאגר המרוחק עם פרטי הכניסה של מקור ה-upstream:
המסוף
פותחים את הדף Repositories במסוף Cloud de Confiance .
ברשימת המאגרים, בוחרים את המאגר ולוחצים על עריכת המאגר.
בקטע Remote repository authentication mode (מצב אימות של מאגר מרוחק), מעדכנים או מוסיפים את שם המשתמש של מקור הנתונים ואת הסוד שמכיל את אסימון הגישה.
CLI של gcloud
כדי לעדכן את המאגר המרוחק עם פרטי הכניסה של מקור ה-upstream, מריצים את הפקודה הבאה:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USERNAME \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
מחליפים את מה שכתוב בשדות הבאים:
-
REPOSITORY: השם של המאגר המרוחק שלכם ב-Artifact Registry. -
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance . -
LOCATION: המיקום האזורי או במספר אזורים של המאגר. אפשר להשמיט את הדגל הזה אם מגדירים ברירת מחדל. כדי לראות רשימה של מיקומים נתמכים, מריצים את הפקודהgcloud artifacts locations list. -
USERNAME: שם המשתמש שלכם במקור הנתונים. -
SECRET_PROJECT_ID: מזהה הפרויקט שבו יצרתם את הסוד. -
SECRET_ID: השם שנתתם לסוד. -
SECRET_VERSION: גרסת הסוד שבה שמרתם את אסימון הגישה.
פרטי הכניסה שלכם ישמשו בפעם הבאה שהמאגר המרוחק ישלח בקשה לארטיפקט מהמקור במעלה הזרם.
המאמרים הבאים
- יוצרים כללי מדיניות לניקוי כדי לנקות ארטיפקטים לא נחוצים.