הגדרת גישה בין פרויקטים ב-GKE

בדף הזה מוסבר איך לתת ל-Binary Authorization גישה למדיניות ולתמונות של קונטיינרים שנמצאים בפרויקטים שונים מזה שאתם עובדים איתו כרגע. Google Cloud לדוגמה, אם אתם פורסים תמונות באשכול Google Kubernetes Engine‏ (GKE) ממאגר Artifact Registry או Container Registry (הוצא משימוש) שנמצא בבעלות של פרויקט אחר, תצטרכו לתת לשירות Binary Authorization בפרויקט שלכם גישה למטא-נתונים של התמונה במאגר המקור.

הסברים על המונחים

במסמך הזה אנחנו משתמשים במונחים הבאים:

  • סוכן שירות: חשבון שירות בניהול Google Cloud. ‫Binary Authorization משתמש בסוכן שירות כדי ליצור אינטראקציה עם המשאבים שלכם, כמו אשכולות GKE. Google Cloud
  • פרויקט מדיניות: הפרויקט Google Cloud שמכיל את מדיניות Binary Authorization.
  • פרויקט האשכול: Google Cloud הפרויקט שמכיל את אשכול GKE.
  • פרויקט ארטיפקט: הפרויקט Google Cloud שכולל את מאגר Artifact Registry או Container Registry (הוצא משימוש).

תרחישים שבהם נדרשת גישה בין פרויקטים

צריך להעניק הרשאות בין פרויקטים במצבים כמו הבאים:

  • פרויקט המדיניות שונה מפרויקט האשכול.
  • פרויקט האשכול שונה מפרויקט הארטיפקט.

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

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

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

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את Binary Authorization API:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable binaryauthorization.googleapis.com
  8. התקינו את ה-CLI של Google Cloud.

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

  10. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  11. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  12. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  13. מפעילים את Binary Authorization API:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable binaryauthorization.googleapis.com

פרויקט האשכול שונה מפרויקט המדיניות

מקצים לסוכן השירות של Binary Authorization בפרויקט של האשכול את התפקיד Binary Authorization Policy Evaluator ‏(roles/binaryauthorization.policyEvaluator) בפרויקט המדיניות.

gcloud projects add-iam-policy-binding POLICY_PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \
  --role=roles/binaryauthorization.policyEvaluator

מחליפים את מה שכתוב בשדות הבאים:

  • POLICY_PROJECT_ID: מזהה הפרויקט שמכיל את המדיניות.
  • CLUSTER_PROJECT_ID: מזהה הפרויקט של האשכול.

פרויקט האשכול שונה מפרויקט הארטיפקט

מקצים לסוכן השירות של Binary Authorization בפרויקט של האשכול את התפקיד Artifact Registry Reader (roles/artifactregistry.reader) בפרויקט של הארטיפקט.

gcloud projects add-iam-policy-binding ARTIFACT_PROJECT_ID \
    --member="serviceAccount:service-$(gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \
    --role=roles/artifactregistry.reader

מחליפים את מה שכתוב בשדות הבאים:

  • ARTIFACT_PROJECT_ID: מזהה הפרויקט שמכיל את מאגר Artifact Registry.
  • CLUSTER_PROJECT_ID: מזהה הפרויקט שבו מופעלים אשכולות GKE.