בקרת גישה באמצעות IAM

‫Artifact Analysis משתמש בניהול זהויות והרשאות גישה (IAM) כדי להעניק גישה פרטנית למשאבים ספציפיים, בהתאם למשימה שרוצים לבצע.

בדף הזה מוסבר על הרשאות לשליטה בגישה ל-Artifact Analysis.

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

  1. מידע נוסף על מושגים שקשורים לאחסון מטא-נתונים
  2. איך מעניקים, מבטלים ומשנים גישה למשאבים

תפקידי IAM לספקי מטא-נתונים וללקוחות

ניהול המטא-נתונים ב-Artifact Analysis כולל שתי ישויות שנדרשות להן רמות גישה שונות:

  • ספק שיוצר מטא-נתונים שמאוחסנים בהערות.
  • לקוח שמזהה מופעים של הערות.

ספקי מטא-נתונים

ספק מטא-נתונים בניתוח ארטיפקטים הוא כותב של מטא-נתונים של משאבים. הוא יוצר הערות שמתארות משהו שיכול לקרות למשאב.

מומלץ ליצור Google Cloud פרויקט שמוקדש אך ורק לאחסון הערות. בפרויקט הזה, מגבילים את הגישה למשתמש או לחשבון שירות עם התפקידים הבאים:

  • Container Analysis Notes Editor – ליצירת הערות שהלקוחות יכולים לצרף להן מופעים.

  • Container Analysis Occurrences for Notes Viewer – כדי להציג רשימה של כל המופעים שצורפו להערה.

לקוחות עם מטא-נתונים

לקוח מטא-נתונים ב-Artifact Analysis מצרף מידע למשאבי מטא-נתונים. הוא יוצר מופעים, שהם מקרים של הערות ומכוונים לתמונה ספציפית בפרויקט.

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

  • Container Analysis Occurrences Editor – צריך להעניק את התפקיד הזה בפרויקט הלקוח כדי ליצור מופעים.

  • Container Analysis Notes Attacher – צריך להעניק את התפקיד הזה בפרויקט הספק כדי לצרף מופעים להערות.

  • Container Analysis Occurrences Viewer – צריך להקצות את התפקיד הזה בפרויקט הלקוח כדי להציג רשימה של מקרים בפרויקט הזה.

מטא-נתונים של נקודות חולשה

אמצעי אבטחה נוסף למטא-נתונים של פגיעויות הוא שספקים יכולים ליצור ולנהל מקרים של פגיעויות בשם לקוחות רבים באמצעות Artifact Analysis. לקוחות המטא-נתונים לא מקבלים הרשאת כתיבה לגבי מקרים של פגיעות בספק צד שלישי בפרויקטים שלהם.

לדוגמה, Artifact Analysis יכול ליצור אירועים של נקודות חולשה בתמונות בפרויקט, אבל אי אפשר להוסיף או להסיר מידע על נקודות חולשה ש-Artifact Analysis מזהה.

ההגדרה הזו עוזרת לאכוף מדיניות אבטחה על ידי מניעת שינוי של מטא-נתונים של פגיעויות בצד הלקוח.

תפקידי IAM

בטבלה הבאה מפורטים תפקידי IAM של Artifact Analysis וההרשאות שהם כוללים:

Role Permissions

(roles/containeranalysis.admin)

Access to all Container Analysis resources.

containeranalysis.notes.attachOccurrence

containeranalysis.notes.create

containeranalysis.notes.delete

containeranalysis.notes.get

containeranalysis.notes.getIamPolicy

containeranalysis.notes.list

containeranalysis.notes.setIamPolicy

containeranalysis.notes.update

containeranalysis.occurrences.*

  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.getIamPolicy
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.setIamPolicy
  • containeranalysis.occurrences.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.editor)

Editor role for Container Analysis

containeranalysis.notes.attachOccurrence

containeranalysis.notes.create

containeranalysis.notes.delete

containeranalysis.notes.get

containeranalysis.notes.getIamPolicy

containeranalysis.notes.list

containeranalysis.notes.listOccurrences

containeranalysis.notes.update

containeranalysis.occurrences.create

containeranalysis.occurrences.delete

containeranalysis.occurrences.get

containeranalysis.occurrences.getIamPolicy

containeranalysis.occurrences.list

containeranalysis.occurrences.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.viewer)

Viewer role for Container Analysis

containeranalysis.notes.get

containeranalysis.notes.getIamPolicy

containeranalysis.notes.list

containeranalysis.occurrences.get

containeranalysis.occurrences.getIamPolicy

containeranalysis.occurrences.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.notes.attacher)

Can attach Container Analysis Occurrences to Notes.

containeranalysis.notes.attachOccurrence

containeranalysis.notes.get

(roles/containeranalysis.notes.editor)

Can edit Container Analysis Notes.

containeranalysis.notes.attachOccurrence

containeranalysis.notes.create

containeranalysis.notes.delete

containeranalysis.notes.get

containeranalysis.notes.list

containeranalysis.notes.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.notes.occurrences.viewer)

Can view all Container Analysis Occurrences attached to a Note.

containeranalysis.notes.get

containeranalysis.notes.listOccurrences

(roles/containeranalysis.notes.viewer)

Can view Container Analysis Notes.

containeranalysis.notes.get

containeranalysis.notes.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.occurrences.editor)

Can edit Container Analysis Occurrences.

containeranalysis.occurrences.create

containeranalysis.occurrences.delete

containeranalysis.occurrences.get

containeranalysis.occurrences.list

containeranalysis.occurrences.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/containeranalysis.occurrences.viewer)

Can view Container Analysis Occurrences.

containeranalysis.occurrences.get

containeranalysis.occurrences.list

resourcemanager.projects.get

resourcemanager.projects.list

Service agent roles

Service agent roles should only be granted to service agents.

Role Permissions

(roles/containeranalysis.ServiceAgent)

Gives Container Analysis API the access it needs to function

artifactregistry.attachments.get

artifactregistry.attachments.list

artifactregistry.dockerimages.*

  • artifactregistry.dockerimages.get
  • artifactregistry.dockerimages.list

artifactregistry.files.download

artifactregistry.files.get

artifactregistry.files.list

artifactregistry.locations.*

  • artifactregistry.locations.get
  • artifactregistry.locations.list

artifactregistry.mavenartifacts.*

  • artifactregistry.mavenartifacts.get
  • artifactregistry.mavenartifacts.list

artifactregistry.npmpackages.*

  • artifactregistry.npmpackages.get
  • artifactregistry.npmpackages.list

artifactregistry.packages.get

artifactregistry.packages.list

artifactregistry.projectconfigs.get

artifactregistry.projectsettings.get

artifactregistry.pythonpackages.*

  • artifactregistry.pythonpackages.get
  • artifactregistry.pythonpackages.list

artifactregistry.repositories.downloadArtifacts

artifactregistry.repositories.exportArtifacts

artifactregistry.repositories.get

artifactregistry.repositories.list

artifactregistry.repositories.listEffectiveTags

artifactregistry.repositories.listTagBindings

artifactregistry.repositories.readViaVirtualRepository

artifactregistry.rules.get

artifactregistry.rules.list

artifactregistry.tags.get

artifactregistry.tags.list

artifactregistry.versions.get

artifactregistry.versions.list

containeranalysis.notes.list

containeranalysis.occurrences.create

containeranalysis.occurrences.delete

containeranalysis.occurrences.get

containeranalysis.occurrences.list

containeranalysis.occurrences.update

pubsub.messageTransforms.validate

pubsub.schemas.attach

pubsub.schemas.commit

pubsub.schemas.create

pubsub.schemas.delete

pubsub.schemas.get

pubsub.schemas.list

pubsub.schemas.listRevisions

pubsub.schemas.rollback

pubsub.schemas.validate

pubsub.snapshots.create

pubsub.snapshots.delete

pubsub.snapshots.get

pubsub.snapshots.list

pubsub.snapshots.listEffectiveTags

pubsub.snapshots.listTagBindings

pubsub.snapshots.seek

pubsub.snapshots.update

pubsub.subscriptions.consume

pubsub.subscriptions.create

pubsub.subscriptions.delete

pubsub.subscriptions.get

pubsub.subscriptions.list

pubsub.subscriptions.listEffectiveTags

pubsub.subscriptions.listTagBindings

pubsub.subscriptions.update

pubsub.topics.attachSubscription

pubsub.topics.create

pubsub.topics.delete

pubsub.topics.detachSubscription

pubsub.topics.get

pubsub.topics.list

pubsub.topics.listEffectiveTags

pubsub.topics.listTagBindings

pubsub.topics.publish

pubsub.topics.update

pubsub.topics.updateTag

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.quotas.get

serviceusage.services.get

serviceusage.services.list

serviceusage.values.test

storage.objects.get

storage.objects.list