בדף הזה מוסבר איך לתת ל-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 (הוצא משימוש).
תרחישים שבהם נדרשת גישה בין פרויקטים
צריך להעניק הרשאות בין פרויקטים במצבים כמו הבאים:
- פרויקט המדיניות שונה מפרויקט האשכול.
- פרויקט האשכול שונה מפרויקט הארטיפקט.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-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, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable binaryauthorization.googleapis.com
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-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, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable binaryauthorization.googleapis.com
פרויקט האשכול שונה מפרויקט המדיניות
מקצים לסוכן השירות של Binary Authorization בפרויקט של האשכול את התפקיד Binary Authorization Policy Evaluator (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.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-bindingARTIFACT_PROJECT_ID\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_PROJECT_ID--format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \ --role=roles/artifactregistry.reader
מחליפים את מה שכתוב בשדות הבאים:
-
ARTIFACT_PROJECT_ID: מזהה הפרויקט שמכיל את מאגר Artifact Registry. -
CLUSTER_PROJECT_ID: מזהה הפרויקט שבו מופעלים אשכולות GKE.