תפקידים והרשאות

ב-Google Cloud יש ממשק לניהול זהויות והרשאות גישה (IAM), שמאפשר לתת גישה פרטנית יותר למשאבים ספציפיים ב- Google Cloud ולמנוע גישה לא רצויה למשאבים אחרים. בדף הזה מוסבר על התפקידים ב-Cloud DNS API. למידע מפורט על IAM, תוכלו לעיין במסמכי העזרה בנושא ניהול זהויות והרשאות גישה.

בעזרת IAM תוכלו לשמור על עקרון האבטחה של הרשאות מינימליות, וכך לתת רק למי שצריך את רמת הגישה שצריך למשאבים השונים.

באמצעות כללי המדיניות ב-IAM אתם יכולים להחליט למי יהיו אילו הרשאות למשאבים מסוימים. כללי המדיניות ב-IAM נותנים למשתמשים תפקידים ספציפיים עם הרשאות ספציפיות. לדוגמה, משתמש מסוים עשוי להזדקק ליצור ולשנות משאבי רשומות של מערכת שמות דומיין (DNS). אחר כך תתנו למשתמש (מי) את התפקיד /roles/dns.admin, שכולל את ההרשאות dns.changes.create ו-dns.resourceRecordSets.create (מה), כדי שהוא יוכל ליצור ולעדכן קבוצות של רשומות משאבים (מה). לעומת זאת, מחלקת תמיכה עשויה להזדקק רק לצפייה בקבוצות קיימות של רשומות משאבים, ולכן היא תקבל את התפקיד /roles/dns.reader.

שירות Cloud DNS תומך בהרשאות IAM ברמת הפרויקט וברמת תחום DNS בודד. הרשאת ברירת המחדל היא ברמת הפרויקט. כדי להגדיר הרשאות ברמת תחום DNS (או משאב) ספציפי, אפשר לעיין במאמר בנושא יצירת תחום עם הרשאות IAM ספציפיות.

הרשאות ותפקידים

כדי להפעיל כל method ב-Cloud DNS API, למבצע הקריאה חייבות להיות הרשאות IAM הנדרשות. ההרשאות מוקצות על ידי הענקת תפקידים למשתמש, לקבוצה או לחשבון שירות. בנוסף לתפקידים הבסיסיים 'בעלים', 'עריכה' ו'צפייה', אפשר להעניק למשתמשים בפרויקט תפקידים ב-Cloud DNS API.

הרשאות

בטבלה הבאה מפורטות ההרשאות שנדרשות למבצע הקריאה החוזרת (caller) כדי להפעיל קריאה לכל method.

‏Method ההרשאות שנדרשות
dns.changes.create כדי ליצור רשומת משאב, צריך להגדיר את dns.changes.create ואת dns.resourceRecordSets.create בפרויקט שמכיל את סט הרשומות.

כדי לעדכן רשומת משאב, צריך להגדיר את dns.changes.create ואת dns.resourceRecordSets.update בפרויקט שמכיל את קבוצת הרשומות.

כדי למחוק רשומת משאב, צריך להגדיר את הערכים dns.changes.create ו-dns.resourceRecordSets.delete בפרויקט שמכיל את קבוצת הרשומות.

dns.changes.get ‫dns.changes.get בפרויקט שמכיל את האזור המנוהל.
dns.changes.list ‫dns.changes.list בפרויקט שמכיל את האזור המנוהל.
dns.dnsKeys.get ‫dns.dnsKeys.get בפרויקט שמכיל את האזור המנוהל.
dns.dnsKeys.list ‫dns.dnsKeys.list בפרויקט שמכיל את האזור המנוהל.
dns.managedZoneOperations.get ‫dns.managedZoneOperations.get בפרויקט שמכיל את האזור המנוהל.
dns.managedZoneOperations.list ‫dns.managedZoneOperations.list בפרויקט שמכיל את האזור המנוהל.
dns.managedZones.create ‫dns.managedZones.create בפרויקט שמכיל את האזור המנוהל.

אם אתם יוצרים אזור פרטי, אתם צריכים גם את ההרשאות dns.networks.bindPrivateDNSZone ו-dns.networks.targetWithPeeringZone בכל פרויקט עם רשת VPC שמורשית לגשת לאזור.

אם אתם יוצרים אזור פרטי עם שילוב של GKE, אתם צריכים גם dns.gkeClusters.bindPrivateDNSZone להגדיר היקף של אשכול GKE.

dns.managedZones.delete ‫dns.managedZones.delete בפרויקט שמכיל את האזור המנוהל.
dns.managedZones.get ‫dns.managedZones.get בפרויקט שמכיל את האזור המנוהל.
dns.managedZones.list ‫dns.managedZones.list בפרויקט שמכיל את האזור המנוהל.
dns.managedZones.update ‫dns.managedZones.update בפרויקט שמכיל את האזור המנוהל.

אם אתם יוצרים אזור פרטי, אתם צריכים גם את ההרשאות dns.networks.bindPrivateDNSZone ו-dns.networks.targetWithPeeringZone בכל פרויקט עם רשת VPC שמורשית לגשת לאזור.

אם אתם יוצרים אזור פרטי עם שילוב של GKE, אתם צריכים גם dns.gkeClusters.bindPrivateDNSZone להגדיר היקף של אשכול GKE.

dns.policies.create ‫dns.policies.create בפרויקט שמכיל את המדיניות.

אם המדיניות נוצרת ברשת VPC, צריך גם את ההרשאה dns.networks.bindPrivateDNSPolicy לכל פרויקט שמכיל כל רשת VPC.

dns.policies.delete dns.policies.delete בפרויקט שמכיל את המדיניות.
dns.policies.get dns.policies.get בפרויקט שמכיל את המדיניות.
dns.policies.list ‫dns.policies.list בפרויקט שמכיל את המדיניות.
dns.policies.update dns.policies.update בפרויקט שמכיל את המדיניות.

אם המדיניות מתעדכנת כך שהיא חלה על רשת VPC, צריך גם dns.networks.bindPrivateDNSPolicy לכל פרויקט שמכיל כל רשת VPC.

dns.projects.get ‫dns.projects.get בפרויקט.
dns.resourceRecordSets.create ‫dns.resourceRecordSets.create בפרויקט שמכיל את קבוצת הרשומות.
dns.resourceRecordSets.delete ‫dns.resourceRecordSets.delete בפרויקט שמכיל את קבוצת הרשומות.
dns.resourceRecordSets.get ‫dns.resourceRecordSets.get בפרויקט שמכיל את קבוצת הרשומות.
dns.resourceRecordSets.list ‫dns.resourceRecordSets.list בפרויקט שמכיל את האזור המנוהל.
dns.resourceRecordSets.update ‫dns.resourceRecordSets.update ו-dns.changes.create בפרויקט שמכיל את קבוצת הרשומות.
dns.responsePolicies.create ‫dns.responsePolicies.create בפרויקט שמכיל את מדיניות התגובה.

בנוסף, צריך dns.networks.bindDNSResponsePolicy לאמת את הבקשה.

אם רוצים ליצור מדיניות תגובה שמצורפת לאשכול GKE, צריך dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicies.delete ‫dns.responsePolicies.delete בפרויקט שמכיל את מדיניות התגובה.
dns.responsePolicies.get ‫dns.responsePolicies.get בפרויקט שמכיל את מדיניות התגובה.
dns.responsePolicies.list ‫dns.responsePolicies.list בפרויקט.
dns.responsePolicies.update ‫dns.responsePolicies.update בפרויקט שמכיל את מדיניות התגובה.

בנוסף, צריך dns.networks.bindDNSResponsePolicy לאמת את הבקשה.

אם רוצים ליצור מדיניות תגובה שמצורפת לאשכול GKE, צריך dns.gkeClusters.bindDNSResponsePolicy.

dns.responsePolicyRules.create dns.responsePolicyRules.create בפרויקט שמכיל את כלל מדיניות התגובה.
dns.responsePolicyRules.delete dns.responsePolicyRules.delete בפרויקט שמכיל את כלל מדיניות התגובה.
dns.responsePolicyRules.get dns.responsePolicyRules.get בפרויקט שמכיל את כלל מדיניות התגובה.
dns.responsePolicyRules.list ‫dns.responsePolicyRules.list בפרויקט שמכיל את מדיניות התגובה.
dns.responsePolicyRules.update dns.responsePolicyRules.update בפרויקט שמכיל את כלל מדיניות התגובה.
networksecurity.dnsThreatDetectors.list ‫networksecurity.dnsThreatDetectors.list בפרויקט שבו מתבצע מעקב אחרי רשתות ה-VPC כדי לזהות איומים.
networksecurity.dnsThreatDetectors.get ‫networksecurity.dnsThreatDetectors.get בפרויקט שבו מתבצע מעקב אחרי רשתות ה-VPC כדי לזהות איומים.
networksecurity.dnsThreatDetectors.create ‫networksecurity.dnsThreatDetectors.create בפרויקט שמכיל את רשתות ה-VPC שרוצים לעקוב אחריהן כדי לזהות איומים.
networksecurity.dnsThreatDetectors.update ‫networksecurity.dnsThreatDetectors.update בפרויקט שבו מתבצע מעקב אחרי רשתות ה-VPC כדי לזהות איומים.
networksecurity.dnsThreatDetectors.delete ‫networksecurity.dnsThreatDetectors.delete בפרויקט שבו מתבצע מעקב אחרי רשתות ה-VPC כדי לזהות איומים.

תפקידים

בטבלה הבאה מפורטים התפקידים ב-IAM של Cloud DNS API, עם רשימה של כל ההרשאות שכל תפקיד כולל. כל הרשאה רלוונטית לסוג משאב מסוים.

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

Role Permissions

(roles/dns.admin)

Provides read-write access to all Cloud DNS resources.

Lowest-level resources where you can grant this role:

  • Managed zone

compute.networks.get

compute.networks.list

dns.changes.*

  • dns.changes.create
  • dns.changes.get
  • dns.changes.list

dns.dnsKeys.*

  • dns.dnsKeys.get
  • dns.dnsKeys.list

dns.gkeClusters.*

  • dns.gkeClusters.bindDNSResponsePolicy
  • dns.gkeClusters.bindPrivateDNSZone

dns.managedZoneOperations.*

  • dns.managedZoneOperations.get
  • dns.managedZoneOperations.list

dns.managedZones.create

dns.managedZones.delete

dns.managedZones.get

dns.managedZones.getIamPolicy

dns.managedZones.list

dns.managedZones.update

dns.networks.*

  • dns.networks.bindDNSResponsePolicy
  • dns.networks.bindPrivateDNSPolicy
  • dns.networks.bindPrivateDNSZone
  • dns.networks.targetWithPeeringZone
  • dns.networks.useHealthSignals

dns.policies.*

  • dns.policies.create
  • dns.policies.createTagBinding
  • dns.policies.delete
  • dns.policies.deleteTagBinding
  • dns.policies.get
  • dns.policies.list
  • dns.policies.listEffectiveTags
  • dns.policies.listTagBindings
  • dns.policies.update

dns.projects.get

dns.resourceRecordSets.*

  • dns.resourceRecordSets.create
  • dns.resourceRecordSets.delete
  • dns.resourceRecordSets.get
  • dns.resourceRecordSets.list
  • dns.resourceRecordSets.update

dns.responsePolicies.*

  • dns.responsePolicies.create
  • dns.responsePolicies.delete
  • dns.responsePolicies.get
  • dns.responsePolicies.list
  • dns.responsePolicies.update

dns.responsePolicyRules.*

  • dns.responsePolicyRules.create
  • dns.responsePolicyRules.delete
  • dns.responsePolicyRules.get
  • dns.responsePolicyRules.list
  • dns.responsePolicyRules.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dns.editor)

Editor role for DNS resources.

compute.networks.get

compute.networks.list

dns.changes.*

  • dns.changes.create
  • dns.changes.get
  • dns.changes.list

dns.dnsKeys.*

  • dns.dnsKeys.get
  • dns.dnsKeys.list

dns.gkeClusters.*

  • dns.gkeClusters.bindDNSResponsePolicy
  • dns.gkeClusters.bindPrivateDNSZone

dns.managedZoneOperations.*

  • dns.managedZoneOperations.get
  • dns.managedZoneOperations.list

dns.managedZones.create

dns.managedZones.delete

dns.managedZones.get

dns.managedZones.getIamPolicy

dns.managedZones.list

dns.managedZones.update

dns.networks.*

  • dns.networks.bindDNSResponsePolicy
  • dns.networks.bindPrivateDNSPolicy
  • dns.networks.bindPrivateDNSZone
  • dns.networks.targetWithPeeringZone
  • dns.networks.useHealthSignals

dns.policies.create

dns.policies.delete

dns.policies.get

dns.policies.list

dns.policies.listEffectiveTags

dns.policies.listTagBindings

dns.policies.update

dns.projects.get

dns.resourceRecordSets.*

  • dns.resourceRecordSets.create
  • dns.resourceRecordSets.delete
  • dns.resourceRecordSets.get
  • dns.resourceRecordSets.list
  • dns.resourceRecordSets.update

dns.responsePolicies.*

  • dns.responsePolicies.create
  • dns.responsePolicies.delete
  • dns.responsePolicies.get
  • dns.responsePolicies.list
  • dns.responsePolicies.update

dns.responsePolicyRules.*

  • dns.responsePolicyRules.create
  • dns.responsePolicyRules.delete
  • dns.responsePolicyRules.get
  • dns.responsePolicyRules.list
  • dns.responsePolicyRules.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dns.viewer)

Viewer role for DNS resources.

compute.networks.get

dns.changes.get

dns.changes.list

dns.dnsKeys.*

  • dns.dnsKeys.get
  • dns.dnsKeys.list

dns.managedZoneOperations.*

  • dns.managedZoneOperations.get
  • dns.managedZoneOperations.list

dns.managedZones.get

dns.managedZones.getIamPolicy

dns.managedZones.list

dns.policies.get

dns.policies.list

dns.policies.listEffectiveTags

dns.policies.listTagBindings

dns.projects.get

dns.resourceRecordSets.get

dns.resourceRecordSets.list

dns.responsePolicies.get

dns.responsePolicies.list

dns.responsePolicyRules.get

dns.responsePolicyRules.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dns.peer)

Access to target networks with DNS peering zones

dns.networks.targetWithPeeringZone

(roles/dns.reader)

Provides read-only access to all Cloud DNS resources.

Lowest-level resources where you can grant this role:

  • Managed zone

compute.networks.get

dns.changes.get

dns.changes.list

dns.dnsKeys.*

  • dns.dnsKeys.get
  • dns.dnsKeys.list

dns.managedZoneOperations.*

  • dns.managedZoneOperations.get
  • dns.managedZoneOperations.list

dns.managedZones.get

dns.managedZones.list

dns.policies.get

dns.policies.list

dns.policies.listEffectiveTags

dns.policies.listTagBindings

dns.projects.get

dns.resourceRecordSets.get

dns.resourceRecordSets.list

dns.responsePolicies.get

dns.responsePolicies.list

dns.responsePolicyRules.get

dns.responsePolicyRules.list

resourcemanager.projects.get

resourcemanager.projects.list

Service agent roles

Service agent roles should only be granted to service agents.

Role Permissions

(roles/dns.serviceAgent)

Gives Cloud DNS Service Agent access to Cloud Platform resources.

compute.addresses.create

compute.addresses.createInternal

compute.addresses.delete

compute.addresses.deleteInternal

compute.addresses.get

compute.addresses.list

compute.addresses.use

compute.addresses.useInternal

compute.globalNetworkEndpointGroups.attachNetworkEndpoints

compute.globalNetworkEndpointGroups.create

compute.globalNetworkEndpointGroups.delete

compute.globalNetworkEndpointGroups.detachNetworkEndpoints

compute.globalNetworkEndpointGroups.get

compute.globalOperations.get

compute.healthChecks.get

compute.networks.get

compute.networks.use

compute.subnetworks.get

compute.subnetworks.list

compute.subnetworks.use

בטבלה הבאה מפורטים תפקידי ה-IAM של DNS Armor, ומוצגת רשימה של כל ההרשאות שכל תפקיד כולל.

תפקיד הרשאות

(roles/networksecurity.dnsThreatDetectorAdmin)

מאפשר גישה מלאה למשאבים של DNS Threat Detector.

networksecurity.dnsThreatDetectors.*

  • networksecurity.dnsThreatDetectors.create
  • networksecurity.dnsThreatDetectors.delete
  • networksecurity.dnsThreatDetectors.get
  • networksecurity.dnsThreatDetectors.list
  • networksecurity.dnsThreatDetectors.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/networksecurity.dnsThreatDetectorViewer)

מאפשרת גישת צפייה למשאבים של DNS Threat Detector.

networksecurity.dnsThreatDetectors.get

networksecurity.dnsThreatDetectors.list

resourcemanager.projects.get

resourcemanager.projects.list

ניהול בקרת הגישה

אתם יכולים להשתמש במסוף Google Cloud כדי לנהל את בקרת הגישה לנושאים ולפרויקטים.

כדי להגדיר אמצעי בקרה לגישה ברמת הפרויקט, פועלים לפי השלבים הבאים.

המסוף

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM

  2. בוחרים את הפרויקט מהתפריט הנפתח בחלק העליון.

  3. לוחצים על הוספה.

  4. בשדה New principals, מזינים את כתובת האימייל של חשבון משתמש חדש.

  5. בוחרים תפקיד מהרשימה.

  6. לוחצים על Save.

  7. מוודאים שחשבון המשתמש מופיע עם התפקיד שהקציתם לו.

המאמרים הבאים