אימות ל-Cloud DNS

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

למידע נוסף על אימות ב- Trusted Cloud אתם יכולים לעיין בשיטות האימות.

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

ב-Cloud DNS יש תמיכה בגישה פרוגרמטית. הגישה ל-API אפשרית בדרכים הבאות:

ספריות לקוח

ספריות הלקוח של Cloud DNS מספקות שפות תמיכה ברמה גבוהה לצורך אימות פרוגרמטי ב-Cloud DNS. כדי לאמת קריאות לממשקי ה-API של Trusted Cloud by S3NS , ספריות הלקוח תומכות ב-Application Default Credentials ‏(ADC). בספריות מתבצע חיפוש של פרטי כניסה בקבוצה של מיקומים מוגדרים, והמערכת משתמשת בפרטי הכניסה האלה כדי לאמת בקשות ל-API. בעזרת ADC, פרטי הכניסה לאפליקציה יכולים להיות זמינים בסביבות שונות, כמו בפיתוח מקומי או בייצור, גם בלי לשנות את קוד האפליקציה.

Google Cloud CLI

כשמשתמשים ב-CLI של gcloud כדי להיכנס ל-Cloud DNS, מתחברים ל-CLI של gcloud באמצעות חשבון משתמש שמספק את פרטי הכניסה שבהם משתמשות פקודות ה-CLI של gcloud.

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

למידע נוסף, תוכלו לקרוא על אימות לשימוש ב-CLI של gcloud. למידע נוסף על השימוש ב-CLI של gcloud עם Cloud DNS, אפשר לעיין בדפי העזר של Google Cloud CLI.

REST

אתם יכולים לאמת את Cloud DNS API באמצעות פרטי הכניסה ל-CLI של gcloud, או באמצעות Application Default Credentials. למידע נוסף על אימות של בקשות REST, אפשר לעיין במאמר אימות לשימוש ב-REST. למידע נוסף על הסוגים השונים של פרטי כניסה, אפשר לעיין במאמר פרטי כניסה ל-CLI של gcloud ו-ADC.

הגדרת אימות ל-Cloud DNS

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

האפשרויות הבאות הן הנפוצות ביותר להגדרת אימות. למידע נוסף על אימות ואפשרויות אימות נוספות, ראו שיטות אימות.

לסביבת פיתוח מקומית

אפשר להגדיר פרטי כניסה לסביבת פיתוח מקומית בדרכים הבאות:

ספריות לקוח או כלים של צד שלישי

מגדירים את Application Default Credentials (ADC) בסביבה המקומית:

  1. After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:

    gcloud init
  2. Create local authentication credentials for your user account:

    gcloud auth application-default login

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    מסך הכניסה יופיע. אחרי שנכנסים, פרטי הכניסה נשמרים בקובץ פרטי הכניסה המקומי שמשמש את ADC.

למידע נוסף על עבודה עם ADC בסביבה מקומית תוכלו לעיין במאמר הגדרת ADC לסביבת פיתוח מקומית.

הפעלת בקשות REST משורת הפקודה

כשמפעילים בקשת REST משורת הפקודה, אפשר להשתמש בפרטי הכניסה ל-CLI של gcloud. כדי לעשות את זה, מוסיפים את gcloud auth print-access-token כחלק מהפקודה ששולחת את הבקשה.

הדוגמה הבאה מפרטת את חשבונות השירות של הפרויקט שצוין. אפשר להשתמש באותו דפוס בכל בקשה ל-REST.

לפני שמשתמשים בנתוני הבקשה צריך להחליף את הנתונים האלה:

  • PROJECT_ID: מזהה הפרויקט ב- Trusted Cloud .

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות האלה:

 

למידע נוסף על אימות באמצעות REST ו-gRPC, ראו אימות לשימוש ב-REST. למידע על ההבדל בין פרטי הכניסה המקומיים של ADC לפרטי הכניסה ל-CLI של gcloud, תוכלו לעיין במאמר הגדרת אימות ב-CLI של gcloud והגדרת ADC.

התחזות לחשבון שירות

ברוב המקרים תוכלו להשתמש בפרטי הכניסה שלכם כדי לבצע אימות בסביבת פיתוח מקומית. אם זה לא אפשרי, או אם אתם צריכים לבדוק את ההרשאות שהוקצו לחשבון שירות, תוכלו להתחזות לחשבון שירות. אתם צריכים את ההרשאה iam.serviceAccounts.getAccessToken, שכלולה בתפקיד Service Account Token Creator ‏(roles/iam.serviceAccountTokenCreator) ב-IAM.

אתם יכולים להגדיר את ה-CLI של gcloud כך שיתחזה לחשבון שירות באמצעות הפקודה gcloud config set:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

בחלק מהשפות אפשר להתחזות לחשבון שירות כדי ליצור קובץ ADC מקומי שישמש את ספריות הלקוח של Go, ‏ Java, ‏ Node.js ו-Python (אבל לא שפות תכנות אחרות). כדי להגדיר קובץ ADC מקומי עם התחזות לחשבון שירות, משתמשים בדגל --impersonate-service-account עם הפקודה gcloud auth application-default login:

gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL

איך מתחזים לחשבון שירות?

‫ Trusted Cloud by S3NSמופעל

כדי לאמת עומס עבודה שפועל ב- Trusted Cloud, צריך להשתמש בפרטי הכניסה של חשבון השירות שמקושר למשאב המחשוב שבו הקוד פועל. למשל, מכונה וירטואלית (VM) של Compute Engine. זאת שיטת האימות המועדפת לקוד שפועל במשאב מחשוב של Trusted Cloud .

ברוב השירותים צריך לקשר את חשבון השירות בזמן שיוצרים את המשאב שמפעיל את הקוד. אי אפשר להוסיף או להחליף את חשבון השירות מאוחר יותר. ‫Compute Engine הוא יוצא מן הכלל, ומאפשר לקשר חשבון שירות למכונה וירטואלית בכל שלב.

אפשר להשתמש ב-CLI של gcloud כדי ליצור חשבון שירות ולקשר אותו למשאב:

  1. After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:

    gcloud init
  2. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. To provide access to your project and your resources, grant a role to the service account:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com" --role=ROLE

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
      • ROLE: the role to grant
    3. To grant another role to the service account, run the command as you did in the previous step.
    4. Grant the required role to the principal that will attach the service account to other resources.

      gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com --member="principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID" --role=roles/iam.serviceAccountUser

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account.
      • PROJECT_ID: the project ID where you created the service account.
      • POOL_ID: a workforce identity pool ID.
      • SUBJECT_ID: a subject ID; typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies.
  3. יוצרים את המשאב שיפעיל את הקוד ומקשרים אליו את חשבון השירות. לדוגמה, אם משתמשים ב-Compute Engine:

    Create a Compute Engine instance. Configure the instance as follows:
    • מחליפים את הערך INSTANCE_NAME בשם המכונה המועדף.
    • מגדירים את הדגל --zone לתחום (zone) שבו רוצים ליצור את המכונה.
    • מגדירים את הדגל --service-account לכתובת האימייל של חשבון השירות שיצרתם.
    • gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL

למידע נוסף על אימות של ממשקי Google API, ראו שיטות אימות.

בארגון או אצל ספק אחר של שירותי ענן

השיטה המועדפת להגדרת אימות מחוץ ל- Trusted Cloud היא שימוש באיחוד זהויות של עומסי עבודה. למידע נוסף אפשר לעיין במאמר הגדרת ADC לספק שירותי ענן מקומי או אחר במסמכי האימות.

בקרת גישה ל-Cloud DNS

אחרי שמבצעים אימות ב-Cloud DNS, צריכה להיות לכם הרשאה לגשת למשאבים של Trusted Cloud . Cloud DNS משתמש בניהול זהויות והרשאות גישה (IAM) לצורך אימות.

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

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