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

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

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

באמצעות כללי המדיניות ב-IAM תוכלו לקבוע למי יש אילו הרשאות למשאבים. כללי המדיניות ב-IAM נותנים למשתמשים תפקידים ספציפיים עם הרשאות ספציפיות. לדוגמה, משתמש מסוים צריך ליצור ולשנות משאבי רשומות של מערכת שמות דומיין (DNS). אחר כך תתנו למשתמש (who) את התפקיד /roles/dns.admin, שכולל את ההרשאות dns.changes.create ו-dns.resourceRecordSets.create (what), כדי שהוא יוכל ליצור ולעדכן קבוצות של רשומות משאבים (which). לעומת זאת, מחלקת תמיכה עשויה להזדקק רק לצפייה בקבוצות קיימות של רשומות משאבים, ולכן היא תקבל את התפקיד /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.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

(roles/dns.serviceAgent)

Gives Cloud DNS Service Agent access to Cloud Platform resources.

compute.globalNetworkEndpointGroups.attachNetworkEndpoints

compute.globalNetworkEndpointGroups.create

compute.globalNetworkEndpointGroups.delete

compute.globalNetworkEndpointGroups.detachNetworkEndpoints

compute.globalNetworkEndpointGroups.get

compute.globalOperations.get

compute.healthChecks.get

בטבלה הבאה מפורטים תפקידי ה-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. מוודאים שחשבון המשתמש מופיע עם התפקיד שהקציתם לו.

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