בדף הזה מוסבר איך להגדיר את Helm כדי לבצע אימות למאגרי Artifact Registry.
לפני שמתחילים
- אם אין מאגר לתרשימים שלכם, צריך ליצור מאגר חדש. בוחרים באפשרות Docker כפורמט המאגר.
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
- (אופציונלי) הגדרת ערכי ברירת מחדל לפקודות של Google Cloud CLI.
מתקינים את Helm 3.8.0 ואילך. בגרסאות קודמות של Helm, התמיכה בתרשימים בפורמט OCI היא תכונה ניסיונית.
מריצים את הפקודה
helm versionכדי לאמת את הגרסה.
בחירה של שיטת אימות
ברוב המקרים, מומלץ להשתמש בחשבון שירות לאימות ב-Artifact Registry.
אלה שיטות האימות שזמינות:
- שימוש בפרטי הכניסה של Artifact Registry שהוגדרו ל-Docker
- כברירת מחדל, Helm יכול לבצע אימות באמצעות אותם פרטי כניסה שבהם אתם משתמשים ב-Docker.
- טוקן גישה
- Application Default Credentials מספקים אסימוני גישה לטווח קצר שחשבון שירות משתמש בהם כדי לגשת למשאבים שלכם ב- Google Cloud Google Cloud .
- קובץ מפתח JSON
זוג מפתחות בניהול משתמש שאפשר להשתמש בו כפרטי כניסה לחשבון שירות. מכיוון שהאישורים תקפים לזמן רב, זו האפשרות הכי פחות מאובטחת מבין כל שיטות האימות הזמינות.
כשאפשר, מומלץ להשתמש באסימון גישה כדי להפחית את הסיכון לגישה לא מורשית לארטיפקטים.
שימוש בהגדרות Docker
כברירת מחדל, Helm תומך בהגדרות של מאגרים בקובץ ההגדרות של Docker config.json. Helm מוצא את הגדרות המאגר במיקום ברירת המחדל או במיקום שצוין על ידי משתנה הסביבה DOCKER_CONFIG.
אם הגדרתם את Docker עם כלי עזר לפרטי כניסה כדי לבצע אימות ב-Artifact Registry, Helm משתמש בהגדרה הקיימת שלכם למאגרי Docker ב-Artifact Registry.
שימוש בטוקן גישה
אסימוני גישה הם אסימונים לטווח קצר שמאפשרים גישה למשאביGoogle Cloud . האסימון תקף לזמן קצר, ולכן מומלץ לבקש אותו פחות משעה לפני שמשתמשים בו כדי להתחבר למאגרי Artifact Registry.
Google Cloud מקבל אסימון גישה באמצעות Application Default Credentials.
כדי להשתמש בטוקן גישה:
יוצרים חשבון שירות שיפעל בשם האפליקציה, או בוחרים חשבון שירות קיים שמשמש לאוטומציה.
כדי להגדיר אימות באמצעות Artifact Registry, תצטרכו את המיקום של קובץ המפתח של חשבון השירות. בחשבונות קיימים, אפשר לראות את המפתחות וליצור מפתחות חדשים בדף 'חשבונות שירות'.
מקצים לחשבון השירות את התפקיד המתאים ב-Artifact Registry כדי לתת גישה למאגר.
מקצים את המיקום של קובץ המפתח של חשבון השירות למשתנה
GOOGLE_APPLICATION_CREDENTIALSכדי שעוזר האישורים של Artifact Registry יוכל לקבל את המפתח כשמתחברים למאגרי מידע.export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILEKEY-FILE הוא הנתיב אל קובץ המפתח של חשבון השירות.
מקבלים טוקן גישה כפרטי כניסה כשמבצעים אימות ל-Artifact Registry באמצעות Docker.
Linux / macOS
מריצים את הפקודה הבאה:
gcloud auth application-default print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin LOCATION-docker.pkg.devWindows
מריצים את הפקודה הבאה:
gcloud auth application-default print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ LOCATION-docker.pkg.devכאשר:
-
oauth2accesstokenהוא שם המשתמש שבו משתמשים כשמבצעים אימות באמצעות טוקן גישה. -
gcloud auth application-default print-access-tokenהיא הפקודה ב-Google Cloud CLI לקבלת אסימון הגישה לחשבון השירות. אסימון הגישה הוא הסיסמה לאימות. -
LOCATIONהוא המיקום האזורי או המיקום במספר אזורים של המאגר.
-
האימות של Helm בוצע ב-Artifact Registry.
שימוש בקובץ מפתח JSON
כל מי שיש לו גישה למפתח פרטי תקף של חשבון שירות יוכל לגשת למשאבים דרך חשבון השירות. חשוב לדעת שמחזור החיים של הגישה של המפתח לחשבון השירות (ולכן גם לנתונים שלחשבון השירות יש גישה אליהם) לא תלוי במחזור החיים של המשתמש שהוריד את המפתח.
כדי להגביל את הגישה למאגרי הקוד, אפשר להיעזר בהנחיות הבאות:
- יוצרים חשבונות שירות ייעודיים שמשמשים רק לאינטראקציה עם מאגרי מידע.
- מקצים את התפקיד הספציפי ב-Artifact Registry שנדרש לחשבון השירות כדי לגשת למשאבים. לדוגמה, חשבון שירות שמוריד רק ארטיפקטים צריך לקבל רק את התפקיד Artifact Registry Reader.
- הגדרת ההרשאות לחשבונות השירות הייעודיים בכל מאגר, במקום ברמת הפרויקט. לאחר מכן תוכלו לציין גישה על סמך ההקשר של המאגר. לדוגמה, לחשבון שירות של גרסאות פיתוח יכול להיות התפקיד Artifact Registry Reader במאגר ייצור והתפקיד Artifact Registry Writer במאגר staging.
- מומלץ לפעול לפי השיטות המומלצות לניהול מפתחות לחשבונות שירות.
כדי ליצור חשבון שירות חדש ומפתח של חשבון שירות לשימוש רק במאגרי Artifact Registry:
יוצרים חשבון שירות שיפעל בשם האפליקציה, או בוחרים חשבון שירות קיים שמשמש לאוטומציה.
כדי להגדיר אימות באמצעות Artifact Registry, תצטרכו את המיקום של קובץ המפתח של חשבון השירות. בחשבונות קיימים, אפשר לראות את המפתחות וליצור מפתחות חדשים בדף 'חשבונות שירות'.
אפשר גם לקודד Base64 את כל התוכן של קובץ המפתח.
Linux
base64 FILE-NAME > NEW-FILE-NAMEmacOS
base64 -i FILE-NAME -o NEW-FILE-NAMEWindows
Base64.exe -e FILE-NAME > NEW-FILE-NAMEכאשר FILE-NAME הוא שם הקובץ המקורי של המפתח ו-NEW-FILE-NAME הוא קובץ המפתח בקידוד Base64.
מקצים לחשבון השירות את התפקיד המתאים ב-Artifact Registry כדי לתת גישה למאגר.
משתמשים במפתח של חשבון השירות כדי לבצע אימות:
Linux / macOS
מריצים את הפקודה הבאה:
cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \ LOCATION-docker.pkg.devWindows
מריצים את הפקודה הבאה:
helm registry login -u KEY-TYPE --password-stdin LOCATION-docker.pkg.dev < KEY-FILEכאשר:
- KEY-TYPE הוא אחד מהבאים:
-
_json_keyאם אתם משתמשים במפתח של חשבון השירות בפורמט JSON, כמו שהוא סופק לכם כשנוצר הקובץ. -
_json_key_base64אם קידדתם את כל התוכן של הקובץ בקידוד base64.
-
- KEY-FILE הוא השם של קובץ המפתח של חשבון השירות בפורמט JSON.
-
LOCATIONהוא המיקום האזורי או המיקום במספר אזורים של המאגר.
- KEY-TYPE הוא אחד מהבאים:
האימות של Helm בוצע ב-Artifact Registry.