בדף הזה מוסבר איך לתת ל-Binary Authorization גישה לכללי מדיניות ולקובצי אימג' של קונטיינרים שקיימים בפרויקטים אחרים ב- Google Cloud , ולא בפרויקט הנוכחי. לדוגמה, אם אתם פורסים קובצי אימג' באשכול Google Kubernetes Engine (GKE) ממאגר Artifact Registry או Container Registry (הוצא משימוש) שבבעלות פרויקט אחר, תצטרכו לתת לשירות Binary Authorization בפרויקט שלכם גישה למטא-נתונים של קובץ האימג' במאגר המקור.
הסברים על המונחים
במסמך הזה אנחנו משתמשים במונחים הבאים:
- סוכן שירות: חשבון שירות בניהול Google Cloud. Binary Authorization משתמש בסוכן שירות כדי ליצור אינטראקציה עם Google Cloud המשאבים שלכם, כמו אשכולות GKE.
- פרויקט מדיניות: הפרויקט Google Cloud שכולל את מדיניות Binary Authorization.
- Cluster project: הפרויקט ב- Google Cloud שמכיל את אשכול GKE.
- פרויקט ארטיפקט: Google Cloud הפרויקט שמכיל את מאגר Artifact Registry או Container Registry (הוצא משימוש).
תרחישים שבהם נדרשת גישה לפרויקטים שונים
צריך לתת הרשאות בפרויקטים שונים במצבים כמו:
- פרויקט המדיניות שונה מפרויקט האשכול.
- פרויקט האשכול שונה מפרויקט הארטיפקט.
לפני שמתחילים
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים פרויקט ב- 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 .
מפעילים את 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 (roles/binaryauthorization.policyEvaluator) בפרויקט של המדיניות.
gcloud projects add-iam-policy-bindingPOLICY_PROJECT_ID\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_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-bindingARTIFACT_PROJECT_ID\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_PROJECT_ID--format='value(projectNumber)')@gcp-sa-binaryauthorization." \ --role=roles/artifactregistry.reader
מחליפים את מה שכתוב בשדות הבאים:
-
ARTIFACT_PROJECT_ID: מזהה הפרויקט שמכיל את מאגר Artifact Registry. -
CLUSTER_PROJECT_ID: מזהה הפרויקט שבו מופעלים אשכולות GKE.