הגדרת גישה בין פרויקטים ב-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. התקינו את ה-CLI של Google Cloud.

  2. הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.

    איך נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת?

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

    gcloud init
  4. יוצרים או בוחרים 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 .

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

  6. מפעילים את 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." \
  --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." \
    --role=roles/artifactregistry.reader

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

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