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

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

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

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

    gcloud init
  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 .
קובץ מפתח 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.

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

  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.
  • הגדרת ההרשאות לחשבונות השירות הייעודיים בכל מאגר, במקום ברמת הפרויקט. לאחר מכן תוכלו לציין גישה על סמך ההקשר של המאגר. לדוגמה, לחשבון שירות של גרסאות build לפיתוח יכול להיות התפקיד "קריאה מ-Artifact Registry" במאגר בסביבת הייצור, והתפקיד "כתיבה ב-Artifact Registry" במאגר בסביבת ה-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.

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