הגדרת אימות ל-Helm

בדף הזה מוסבר איך להגדיר את Helm כדי לבצע אימות למאגרי Artifact Registry.

לפני שמתחילים

  1. אם אין מאגר לתרשימים שלכם, צריך ליצור מאגר חדש. בוחרים באפשרות Docker כפורמט המאגר.
  2. התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

    gcloud init

    אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  3. (אופציונלי) הגדרת ערכי ברירת מחדל לפקודות של Google Cloud CLI.
  4. מתקינים את 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.

כדי להשתמש בטוקן גישה:

  1. יוצרים חשבון שירות שיפעל בשם האפליקציה, או בוחרים חשבון שירות קיים שמשמש לאוטומציה.

    כדי להגדיר אימות באמצעות Artifact Registry, תצטרכו את המיקום של קובץ המפתח של חשבון השירות. בחשבונות קיימים, אפשר לראות את המפתחות וליצור מפתחות חדשים בדף 'חשבונות שירות'.

    מעבר לדף 'חשבונות שירות'

  2. מקצים לחשבון השירות את התפקיד המתאים ב-Artifact Registry כדי לתת גישה למאגר.

  3. מקצים את המיקום של קובץ המפתח של חשבון השירות למשתנה GOOGLE_APPLICATION_CREDENTIALS כדי שעוזר האישורים של Artifact Registry יוכל לקבל את המפתח כשמתחברים למאגרי מידע.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    KEY-FILE הוא הנתיב אל קובץ המפתח של חשבון השירות.

  4. מקבלים טוקן גישה כפרטי כניסה כשמבצעים אימות ל-Artifact Registry באמצעות Docker.

    ‫Linux / macOS

    מריצים את הפקודה הבאה:

    gcloud auth application-default print-access-token | helm registry login -u oauth2accesstoken \
    --password-stdin LOCATION-docker.pkg.dev
    

    Windows

    מריצים את הפקודה הבאה:

    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:

  1. יוצרים חשבון שירות שיפעל בשם האפליקציה, או בוחרים חשבון שירות קיים שמשמש לאוטומציה.

    כדי להגדיר אימות באמצעות Artifact Registry, תצטרכו את המיקום של קובץ המפתח של חשבון השירות. בחשבונות קיימים, אפשר לראות את המפתחות וליצור מפתחות חדשים בדף 'חשבונות שירות'.

    מעבר לדף 'חשבונות שירות'

  2. אפשר גם לקודד Base64 את כל התוכן של קובץ המפתח.

    Linux

    base64 FILE-NAME > NEW-FILE-NAME
    

    macOS

    base64 -i FILE-NAME -o NEW-FILE-NAME
    

    Windows

    Base64.exe -e FILE-NAME > NEW-FILE-NAME
    

    כאשר FILE-NAME הוא שם הקובץ המקורי של המפתח ו-NEW-FILE-NAME הוא קובץ המפתח בקידוד Base64.

  3. מקצים לחשבון השירות את התפקיד המתאים ב-Artifact Registry כדי לתת גישה למאגר.

  4. משתמשים במפתח של חשבון השירות כדי לבצע אימות:

    ‫Linux / macOS

    מריצים את הפקודה הבאה:

    cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \
    LOCATION-docker.pkg.dev
    

    Windows

    מריצים את הפקודה הבאה:

    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 הוא המיקום האזורי או המיקום במספר אזורים של המאגר. ‫

האימות של Helm בוצע ב-Artifact Registry.

המאמרים הבאים