הגדרת אימות Helm ל-Artifact Registry מאפשרת לכם לדחוף, למשוך ולנהל תרשימים במאגרים בפורמט Docker. כדי לבצע אימות, אתם יכולים להשתמש שוב בפרטי הכניסה הקיימים שלכם ל-Docker, ליצור אסימון גישה לטווח קצר או לספק קובץ מפתח של חשבון שירות.
לפני שמתחילים
- אם אין מאגר לתרשימים, יוצרים מאגר חדש. בוחרים ב-Docker כפורמט המאגר.
-
מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init - (אופציונלי) הגדרת ערכי ברירת מחדל לפקודות של Google Cloud CLI.
מתקינים את Helm בגרסה 3.8.0 ואילך. בגרסאות קודמות של Helm, התמיכה בתרשימים בפורמט OCI היא תכונה ניסיונית.
מריצים את הפקודה
helm versionכדי לבדוק את הגרסה.
בחירה של שיטת אימות
ברוב המקרים, מומלץ להשתמש בחשבון שירות לצורך אימות ב-Artifact Registry.
אפשר להשתמש בשיטות האימות הבאות:
- שימוש בפרטי הכניסה של Artifact Registry שהוגדרו ל-Docker
- כברירת מחדל, Helm יכול לבצע אימות באמצעות אותם פרטי כניסה שמשמשים ל-Docker.
- טוקן גישה
- Application Default Credentials מספקים טוקני גישה לטווח קצר שחשבון שירות משתמש בהם כדי לגשת למשאבים שלכם ב- Google Cloud .
- קובץ מפתח JSON
זוג מפתחות בניהול משתמש שאפשר להשתמש בו כפרטי כניסה לחשבון שירות. מכיוון שהאישורים תקפים לטווח ארוך, זו האפשרות הכי פחות מאובטחת מכל שיטות האימות הזמינות.
כשאפשר, השתמשו באסימון גישה כדי להפחית את הסיכון לגישה לא מורשית לפריטי המידע שנוצרו בתהליך הפיתוח (Artifacts).
שימוש בהגדרות 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.
- הגדרת ההרשאות לחשבונות השירות הייעודיים בכל מאגר, במקום ברמת הפרויקט. לאחר מכן תוכלו לציין גישה על סמך ההקשר של המאגר. לדוגמה, לחשבון שירות של גרסאות build לפיתוח יכול להיות התפקיד "קריאה מ-Artifact Registry" במאגר בסביבת הייצור, והתפקיד "כתיבה ב-Artifact Registry" במאגר בסביבת ה-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.