השילוב של Cloud SQL ל-SQL Server עם Microsoft Entra ID מספק ניהול זהויות והרשאות גישה (IAM) מרכזי למסדי הנתונים, באמצעות הדייר הקיים של Microsoft Entra ID.
היתרונות של השילוב הזה:
אימות מרכזי. מאפשר למשתמשים ולאפליקציות להיכנס למכונות Cloud SQL ל-SQL Server באמצעות הזהויות הקיימות שלהם ב-Microsoft Entra ID, בלי להזין מחדש סיסמה. היכולת הזו מייתרת את הצורך לנהל פרטי כניסה וסיסמאות נפרדים שספציפיים ל-SQL Server.
אבטחה משופרת. עוזר לאכוף את מדיניות האבטחה הקיימת של הארגון, כמו אימות רב-שלבי (MFA) וכללי גישה מותנית (CA), ברמת מסד הנתונים.
ניהול משתמשים פשוט יותר. כשחשבון Microsoft Entra ID של משתמש מושבת או מוסר, הגישה של המשתמש למסד הנתונים מבוטלת באופן אוטומטי. היכולת הזו עוזרת לפשט את תהליך סיום ההעסקה ואת בדיקות הגישה.
דרישות מוקדמות לשילוב
כדי להשתמש בשילוב של Cloud SQL ל-SQL Server עם Microsoft Entra ID, המכונה צריכה לעמוד בדרישות הבאות:
צריך להיות לכם מכונה קיימת או ליצור מכונה חדשה.
אפשר לאמת באמצעות Microsoft Entra ID רק בגרסאות SQL Server 2022 ואילך. אי אפשר לאמת באמצעות Microsoft Entra ID בגרסאות SQL Server 2017 או SQL Server 2019.
הפעלת האימות של Microsoft Entra ID.
לפני שמפעילים את האימות של Microsoft Entra ID, צריך לבצע את הפעולות הבאות בפורטל Azure:
- איך מוצאים את מזהה הדייר (tenant) ב-Microsoft Entra
יוצרים רישום חדש של אפליקציה ב-Microsoft Entra ID.
Cloud SQL ל-SQL Server משתמש באפליקציה הזו כדי לתקשר עם מזהה הדייר (tenant) שלכם ב-Microsoft Entra. כשיוצרים את האפליקציה, חשוב לשים לב למזהה האפליקציה או למזהה הלקוח.
נותנים לאפליקציה הרשאות לקרוא נתונים מהספרייה:
- בוחרים את רישום האפליקציה שיצרתם ולוחצים על API permissions.
- בוחרים באפשרות Add a permission (הוספת הרשאה) > Microsoft Graph > Application permissions (הרשאות לאפליקציה).
- נותנים את אחת מקבוצות ההרשאות הבאות:
- אפשרות 1.
- Directory.Read.All
- אפשרות 2. הרשאות ספציפיות יותר.
- Application.Read.All
- Group.Read.All
- User.Read.All
- אפשרות 1.
- נותנים הסכמה של אדמין ברמת הדייר כדי לאפשר לאפליקציה להשתמש בהרשאות האלה.
קישוריות רשת
Microsoft Entra ID הוא שירות ציבורי שמשתמש בנקודות קצה ציבוריות לאימות. כדי שהאימות של Microsoft Entra ID יפעל כמו שצריך, מכונת Cloud SQL צריכה להיות מסוגלת ליצור חיבורים יוצאים לנקודות הקצה הציבוריות האלה. בקטעים הבאים מפורטים השלבים הבאים, בהתאם להגדרת הקישוריות לרשת של המכונה:
מכונות עם כתובת IP ציבורית
אם למכונה של Cloud SQL יש כתובת IP ציבורית, יש לה גישה מובנית לאינטרנט.
לא נדרשת הגדרת רשת נוספת כדי שאימות Microsoft Entra ID יפעל, אבל כדאי לעיין במגבלות לפני שממשיכים.
מכונות עם כתובת IP פרטית
אם למכונה של Cloud SQL יש רק כתובת IP פרטית, אין לה גישה ישירה לאינטרנט. צריך להגדיר נתיב תעבורת נתונים יוצאת כדי לאפשר למכונה להגיע לנקודות הקצה הציבוריות של מיקרוסופט לזיהוי. הגדרת השילוב של Microsoft Entra ID תלויה באופן שבו המכונה הפרטית מוגדרת:
התחברות לשירות פרטי
אם מכונת Cloud SQL מוגדרת להשתמש בכתובת IP פרטית, מומלץ להשתמש ב-Private Service Connect כדי להפעיל את Microsoft Entra ID, כי הוא מבטל משימות תחזוקה מסוימות, כמו:
- ניהול מכונות וירטואליות של יעד מבוצר (bastion host).
- שמירה על המסלולים.
- יצירת מסלולים רחבים מדי, כמו אלה שנדרשים לקישוריות PSA.
לפני שממשיכים, כדאי לעיין במגבלות של השימוש ב-Microsoft Entra ID.
כדי לאפשר קישוריות, צריך להגדיר תרגום כתובת רשת (NAT) ב-Cloud ב-VPC של הצרכן. כך המכונה שמופעל בה PSC יכולה להשתמש בשער Cloud NAT לתנועה יוצאת לנקודות קצה ציבוריות של מיקרוסופט. אחרי שמפעילים את הניתוב הפנימי, תעבורת הנתונים מוגבלת כך שרק תעבורת נתונים שקשורה ל-Microsoft Entra ID מגיעה למכונה של Cloud NAT.
כדי להפעיל את הקישוריות, צריך לבצע את השלבים הבאים:
גישה לשירותים פרטיים
אם מכונת Cloud SQL מוגדרת להשתמש בכתובת IP פרטית ואתם משתמשים ב-PSA, צריך לבצע את השלבים הבאים כדי לאפשר קישוריות ל-Microsoft Entra ID:
פורסים מכונה וירטואלית של יעד מבוצר (bastion host) ב-VPC.
כשיוצרים מכונה וירטואלית של יעד מבוצר בפרויקט, צריך להפעיל העברת IP. אם יצרתם מכונה וירטואלית של יעד מבוצר (bastion host) שמבוססת על Linux, אתם צריכים להגדיר אותה כך שתבצע העברת IP:
sudo sysctl net.ipv4.conf.all.forwarding=1 sudo iptables --table nat --append POSTROUTING --out-interface ens4 -j MASQUERADEמגדירים את נתיבי הרשת הנדרשים כדי לנתב את תנועת האימות של Microsoft Entra ID מהמכונה של Cloud SQL דרך המכונה המארחת של היעד המבוצר (bastion host) כדי להגיע לאינטרנט.
מוסיפים את הנתיבים המתאימים לכל נקודת קצה (endpoint) של Microsoft Entra ID. טווחי כתובות ה-IP הנוכחיים מופיעים בקטע
AzureActiveDirectoryבקובץ המשאבים Azure IP Ranges and Service Tags. לדוגמה, נקודות הקצה לכניסה של Microsoft Entra ID, כמוlogin.microsoftonline.com, משתמשות בכתובות IP בטווחים20.190.128.0/18ו-40.126.0.0/18.gcloud
לכל טווח כתובות IP של Microsoft Entra ID, יוצרים שני נתיבים ומחליפים את
VM_NAMEואתVM_ZONEבשם ובאזור בפועל של המכונה הווירטואלית של היעד המבוצר:gcloud --project=PROJECT_ID compute routes create NAME \ --network=NETWORK --destination-range=RANGE \ --priority=998 --next-hop-gateway=default-internet-gateway gcloud --project=PROJECT_ID compute routes create NAME \ --network=NETWORK --destination-range=RANGE --priority=999 \ --next-hop-instance=VM_NAME --next-hop-instance-zone=VM_ZONE \ --next-hop-ilb=ILB_VALUEמחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה של Cloud SQL.
- NAME: השם של הנתיב שרוצים ליצור.
- NETWORK: השם של הרשת שבה נמצא המכונה של Cloud SQL.
- RANGE: טווח כתובות ה-IP שרוצים להשתמש בו.
- VM_NAME: השם של המכונה הווירטואלית של היעד המבוצר שרוצים לכלול.
- VM_ZONE: האזור של המכונה הווירטואלית של היעד המבוצר שרוצים לכלול, למשל
us-central1. ILB_VALUE: אופציונלי. השם או כתובת ה-IP של כלל העברה למאזן עומסים פנימי מסוג TCP/UDP. אם הגדרתם מאזן עומסים לפני המכונות הווירטואליות של היעד המבוצר, צריך לכלול בפקודה הזו את הדגל
--next-hop-ilb.מידע נוסף זמין במאמר מאזני עומסי רשת פנימיים להעברת נתונים ללא שינוי בתור הדילוגים הבאים.
לדוגמה:
gcloud --project=my-customer-project compute routes create my-route-1 --network=default --destination-range=20.20.32.0/27 --priority=998 --next-hop-gateway=default-internet-gateway gcloud --project=my-customer-project compute routes create my-route-2 --network=default --destination-range=20.20.32.0/27 --priority=999 --next-hop-instance=my-bastion-vm --next-hop-instance-zone=us-central1-c --next-hop-ilb=fr-ilb1משתמשים באותה פקודה מהשלב הקודם כדי להחיל את אותה הגדרה, כדי לאפשר תנועה לבדיקות של ביטול אישורים ב-Microsoft Entra ID. משתמשים בטווחי ה-IP שמפורטים בכתובת ה-IP של סטטוס האישור של DigiCert.
אם לא תבצעו את השלב הזה, יכול להיות שהאימות של Microsoft Entra ID עדיין יעבוד, אבל יכול להיות שיהיו עיכובים בפתיחת חיבורים חדשים.
ניהול האימות של Microsoft Entra ID
אפשר להפעיל אימות באמצעות Entra ID במכונה חדשה או קיימת.
יצירת מכונה עם אימות מופעל של Microsoft Entra ID
אתם יכולים להפעיל את האימות של Microsoft Entra ID כשאתם יוצרים מכונה חדשה של Cloud SQL ל-SQL Server. אתם צריכים לספק את מזהה הדייר הספציפי ב-Microsoft Entra ואת מזהה האפליקציה (מזהה הלקוח) של רישום האפליקציה שהגדרתם בפורטל Azure.
מידע נוסף זמין בקטע דרישות מוקדמות.
gcloud
gcloud sql instances create INSTANCE_NAME \
--database-version=EDITION \
--tier=TIER \
--network=NETWORK
--root-password=PASSWORD
--entra-id-tenant-id=TENANT_ID \
--entra-id-application-id=APPLICATION_ID
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של המכונה שרוצים ליצור.
- EDITION: מהדורת המכונה שבה רוצים להשתמש, למשל
SQLSERVER_2025_STANDARD. - TIER: רמת המכונה או סוג המכונה שרוצים להשתמש בהם, למשל
db-custom-2-3840. - NETWORK: שם הרשת שבה רוצים להשתמש.
- PASSWORD: הסיסמה של המכונה.
- TENANT_ID: מזהה הדייר ב-Microsoft Entra.
- APPLICATION_ID: מזהה האפליקציה או הלקוח.
לדוגמה:
gcloud sql instances create my-entraid-instance \
--database-version=SQLSERVER_2025_STANDARD \
--tier=db-custom-2-3840 \
--assign-ip \
--root-password=D61Xv36f!0lE \
--entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
--entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd
REST v1
לא כל השדות האפשריים מוצגים בקריאה הבסיסית הבאה ל-API. אב טיפוס של בקשת JSON מופיע בקטע הגדרות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: שם הפרויקט שבו תהיה המכונה שרוצים ליצור.
- INSTANCE_ID: המזהה של המכונה שרוצים ליצור.
- EDITION: מהדורת המכונה שבה רוצים להשתמש, למשל
SQLSERVER_2022_STANDARD. - REGION: האזור שבו רוצים שהמכונה תהיה, למשל
us-central1. - PASSWORD: הסיסמה של המכונה.
- TIER: רמת המכונה או סוג המכונה שבהם רוצים להשתמש, למשל
db-custom-2-3840. - NETWORK: שם הרשת שבה רוצים להשתמש.
- TENANT_ID: מזהה הדייר ב-Microsoft Entra.
- APPLICATION_ID: מזהה האפליקציה או הלקוח.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
לא כל השדות האפשריים מוצגים בקריאה הבסיסית הבאה ל-API. אב טיפוס של בקשת JSON מופיע בקטע הגדרות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: שם הפרויקט שבו תהיה המכונה שרוצים ליצור.
- INSTANCE_ID: המזהה של המכונה שרוצים ליצור.
- EDITION: מהדורת המכונה שבה רוצים להשתמש, למשל
SQLSERVER_2022_STANDARD. - REGION: האזור שבו רוצים שהמכונה תהיה, למשל
us-central1. - PASSWORD: הסיסמה של המכונה.
- TIER: רמת המכונה או סוג המכונה שבהם רוצים להשתמש, למשל
db-custom-2-3840. - NETWORK: שם הרשת שבה רוצים להשתמש.
- TENANT_ID: מזהה הדייר ב-Microsoft Entra.
- APPLICATION_ID: מזהה האפליקציה או הלקוח.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
ניהול האימות של Microsoft Entra ID במכונה קיימת
אתם יכולים להפעיל, לשנות או להשבית את ההגדרה של Microsoft Entra ID במכונה קיימת בכל שלב.
כדי לשנות את ההגדרות של המכונה, צריך לתקן את המכונה באמצעות הערכים החדשים או המחוקים של מזהה הדייר ומזהה האפליקציה (הלקוח).
התהליך הזה לא כולל הצטרפות לדומיין או עזיבה שלו.
אתם יכולים לעדכן את הערכים של מזהה הדייר ומזהה האפליקציה בלי להפעיל או להשבית את השילוב עם Microsoft Entra ID.
gcloud
gcloud sql instances patch INSTANCE_NAME \
--entra-id-tenant-id="NEW_TENANT_ID" \
--entra-id-application-id="NEW_APPLICATION_ID"
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של המכונה שרוצים לשנות.
- NEW_TENANT_ID: מזהה הדייר החדש ב-Microsoft Entra. כדי להשבית את Microsoft Entra ID, משאירים את המחרוזת הזו ריקה.
- NEW_APPLICATION_ID: מזהה האפליקציה או הלקוח החדש. כדי להשבית את Microsoft Entra ID, משאירים את המחרוזת הזו ריקה.
לדוגמה:
gcloud sql instances patch my-existing-instance \
--entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
--entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd
REST v1
לא כל השדות האפשריים מוצגים בקריאה הבסיסית הבאה ל-API. אב טיפוס של בקשת JSON מופיע בקטע הגדרות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה שרוצים לשנות.
- INSTANCE_ID: המזהה של המכונה שרוצים לשנות.
- TENANT_ID: מזהה הדייר ב-Microsoft Entra. כדי להשבית את Microsoft Entra ID, משאירים את המחרוזת הזו ריקה.
- APPLICATION_ID: מזהה האפליקציה או הלקוח. כדי להשבית את Microsoft Entra ID, משאירים את המחרוזת הזו ריקה.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
לא כל השדות האפשריים מוצגים בקריאה הבסיסית הבאה ל-API. אב טיפוס של בקשת JSON מופיע בקטע הגדרות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה שרוצים לשנות.
- INSTANCE_ID: המזהה של המכונה שרוצים לשנות.
- TENANT_ID: מזהה הדייר ב-Microsoft Entra. כדי להשבית את Microsoft Entra ID, משאירים את המחרוזת הזו ריקה.
- APPLICATION_ID: מזהה האפליקציה או הלקוח. כדי להשבית את Microsoft Entra ID, משאירים את המחרוזת הזו ריקה.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
הוספת האישור לאפליקציה
כדי לאמת את מכונת Cloud SQL ל-SQL Server באמצעות Microsoft Entra ID, צריך להעלות את האישור הציבורי של המכונה לרישום האפליקציה ב-Microsoft Entra ID.
אחרי שמפעילים את האימות של Microsoft Entra ID במכונה, יוצרים אישור ספציפי למכונה בשביל Microsoft Entra ID.
gcloud
gcloud sql ssl entraid-certs create --instance=INSTANCE_NAMEמחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: שם המכונה שעבורה רוצים ליצור אישור.
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: מזהה המכונה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: מזהה המכונה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }כדי לקבל את פרטי האישור שיצרתם, מאחזרים את פרטי המכונה:
gcloud
gcloud sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: שם המכונה שמשויכת לאישור שיצרתם.
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: מזהה המכונה.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.
הפקודה הזו מדפיסה אישור שאפשר לשמור בקובץ ואז להעלות לפורטל Azure.
צריך להסיר מהקובץ את כל תווי המעבר לשורה חדשה שמוטמעים בו, ולהפריד באופן ידני כל שורה חדשה. אחרת, העלאת הקובץ תיכשל.
לדוגמה, יכול להיות שתקבלו מחרוזת טקסט שדומה לזו:
Line1\Line2\Line3צריך להפריד בין השורות באופן ידני, כמו בדוגמה הבאה:
Line1 Line2 Line3אם אתם לא רוצים לבצע את המשימה הזו באופן ידני, אתם יכולים להשתמש בפקודה הבאה:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_NAME: שם המכונה שמשויכת לאישור שיצרתם.
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: מזהה המכונה.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.
הפקודה הזו מדפיסה אישור שאפשר לשמור בקובץ ואז להעלות לפורטל Azure.
צריך להסיר מהקובץ את כל תווי המעבר לשורה חדשה שמוטמעים בו, ולהפריד באופן ידני כל שורה חדשה. אחרת, העלאת הקובץ תיכשל.
לדוגמה, יכול להיות שתקבלו מחרוזת טקסט שדומה לזו:
Line1\Line2\Line3צריך להפריד בין השורות באופן ידני, כמו בדוגמה הבאה:
Line1 Line2 Line3אם אתם לא רוצים לבצע את המשימה הזו באופן ידני, אתם יכולים להשתמש בפקודה הבאה:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_NAME: שם המכונה שמשויכת לאישור שיצרתם.
מוסיפים את האישור לפורטל Azure.
- עוברים אל App Registration (רישום האפליקציה) בפורטל Azure.
- פותחים את Certificates & secrets.
- לוחצים על העלאת אישור. מחפשים את קובץ האישור שקיבלתם מהמכונה ומוסיפים אותו.
- לוחצים על OK.
החלפת האישור של Microsoft Entra ID
אתם צריכים להחליף את האישור של Microsoft Entra ID לפני שתוקף האישור יפוג. מומלץ להתחיל את התהליך הזה לפחות שבוע לפני תאריך התפוגה המתוכנן:
כדי ליצור אישור חדש ולא פעיל במכונה של Cloud SQL ל-SQL Server, פועלים לפי השלבים שמפורטים בקטע הוספת האישור לאפליקציה, ואז מעלים אותו ל-Microsoft Entra ID באמצעות פורטל Azure. הפעולה הזו לא משפיעה על האישור הפעיל הנוכחי.
מפעילים את האישור החדש במכונה של Cloud SQL ל-SQL Server, כדי ש-Cloud SQL ל-SQL Server יתחיל להשתמש באישור החדש לכל האימותים החדשים.
gcloud
gcloud sql ssl entraid-certs rotate --instance=INSTANCE_NAMEמחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: שם המכונה שמשויכת לאישור שרוצים להחליף.
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: מזהה המכונה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: מזהה המכונה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.
עכשיו המכונה משתמשת באישור החדש.
אתם יכולים להסיר בבטחה את האישור הישן מרישום האפליקציה ב-Microsoft Entra ID וממכונת Cloud SQL ל-SQL Server. מידע נוסף זמין במאמר הוספה וניהול של פרטי כניסה לאפליקציה ב-Microsoft Entra ID.
חזרה לגרסה קודמת של האישור של Microsoft Entra ID
אם נתקלתם בבעיות אחרי החלפת האישור, אתם יכולים לחזור לאישור הקודם.
כדי לבצע חזרה לגרסה קודמת, האישור הקודם עדיין צריך להיות בתוקף ועדיין צריך להיות מהימן על ידי רישום האפליקציה ב-Microsoft Entra ID.
הפקודות הבאות מפעילות מחדש באופן מיידי את האישור הקודם שצוין במכונה של Cloud SQL ל-SQL Server.
gcloud
gcloud sql ssl entraid-certs rollback --instance=INSTANCE_NAME
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: שם המכונה שמשויכת לאישור שרוצים להחזיר לגרסה קודמת.
REST v1
לא כל השדות האפשריים מוצגים בקריאה הבסיסית הבאה ל-API. אב טיפוס של בקשת JSON מופיע בקטע הגדרות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: המזהה של המכונה שרוצים להחזיר את האישור שלה לגרסה קודמת.
- CERTIFICATE_NAME: השם של האישור החדש שבו רוצים להשתמש כדי להחליף את האישור הישן, למשל
sha1Fingerprint.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
תוכן בקשת JSON:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
לא כל השדות האפשריים מוצגים בקריאה הבסיסית הבאה ל-API. אב טיפוס של בקשת JSON מופיע בקטע הגדרות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: המזהה של המכונה שרוצים להחזיר את האישור שלה לגרסה קודמת.
- CERTIFICATE_NAME: השם של האישור החדש שבו רוצים להשתמש כדי להחליף את האישור הישן, למשל
sha1Fingerprint.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
תוכן בקשת JSON:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
יצירת ההתחברות הראשונית ל-Microsoft Entra ID
אחרי שמפעילים את האימות של Microsoft Entra ID במכונה, צריך ליצור את פרטי ההתחברות ל-Microsoft Entra ID.
יוצרים את ההתחברות הראשונה ל-Microsoft Entra ID.
אי אפשר ליצור את פרטי הכניסה הראשוניים האלה, שמייצגים משתמש או קבוצה ב-Microsoft Entra ID, באמצעות T-SQL. צריך ליצור אותו באמצעות ה-CLI של gcloud או Cloud SQL Admin API:
gcloud
gcloud sql users create USER_NAME --instance=INSTANCE_NAME --type=ENTRAID_USERמחליפים את מה שכתוב בשדות הבאים:
- USER_NAME: השם של המשתמש ב-Cloud SQL ל-SQL Server שרוצים ליצור.
- INSTANCE_NAME: השם של המכונה שבה רוצים ליצור פרטי כניסה ל-Microsoft Entra ID.
- ENTRAID_USER: שם המשתמש ב-Microsoft Entra ID.
לדוגמה:
gcloud sql users create myentraiduser@mytenant.com --instance=my-entraid-instance --type=ENTRAID_USERREST v1
לא כל השדות האפשריים מוצגים בקריאה הבסיסית הבאה ל-API. אב טיפוס של בקשת JSON מופיע בקטע הגדרות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: המזהה של המכונה שרוצים לעדכן.
- USER_NAME: השם של המשתמש ב-Cloud SQL ל-SQL Server שרוצים ליצור.
- ENTRAID_USER: שם המשתמש ב-Microsoft Entra ID.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
תוכן בקשת JSON:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
לא כל השדות האפשריים מוצגים בקריאה הבסיסית הבאה ל-API. אב טיפוס של בקשת JSON מופיע בקטע הגדרות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
- INSTANCE_ID: המזהה של המכונה שרוצים לעדכן.
- USER_NAME: השם של המשתמש ב-Cloud SQL ל-SQL Server שרוצים ליצור.
- ENTRAID_USER: שם המשתמש ב-Microsoft Entra ID.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
תוכן בקשת JSON:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }אחרי שיוצרים את ההתחברות הראשונית ל-Microsoft Entra ID, אפשר להתחבר למסד הנתונים בתור המשתמש הזה.
ליצור התחברויות נוספות ל-Microsoft Entra ID.
אתם יכולים ליצור ולנהל פרטי התחברות נוספים ל-Microsoft Entra ID, כמו שמתואר בשלב הקודם.
לחלופין, אם אתם מעדיפים להשתמש בכלי אחר כמו SQL Server Management Studio (SSMS), קודם צריך לתת לפרטי הכניסה הראשוניים הרשאה לנהל פרטי כניסה אחרים:
GRANT ALTER ANY LOGIN TO [ENTRA_ID_USER] AS CustomerDbRootRoleמחליפים את ENTRAID_USER בשם המשתמש ב-Microsoft Entra ID.
אחרי שמעניקים את ההרשאות, אפשר להשתמש בפרטי הכניסה האלה כדי ליצור ולנהל פרטי כניסה אחרים ל-Microsoft Entra ID באמצעות פקודות T-SQL רגילות. דוגמה לפקודה:
CREATE LOGIN [<<ENTRA_ID_USER>>] FROM EXTERNAL PROVIDERמחליפים את ENTRAID_USER בשם המשתמש ב-Microsoft Entra ID.
כדי ליצור משתמשים על סמך פרטי הכניסה ל-Microsoft Entra ID, או כדי לתת הרשאות, משתמשים בפקודות T-SQL רגילות.
למידע נוסף, כולל איך ליצור פרטי כניסה באמצעות התחביר המתאים, קראו את המאמר הגדרת אימות של Microsoft Entra ל-SQL Server באמצעות רישום אפליקציה.
שיטות מומלצות
כדי לבודד את ההרשאות ולהגדיר טוב יותר את גבולות האבטחה, מומלץ מאוד ליצור רישום ייחודי של אפליקציית Microsoft Entra ID לכל מכונה של Cloud SQL ל-SQL Server. ביטול פרטי הכניסה של האפליקציה לא ישפיע על מכונות אחרות שלא קשורות אליה.
מידע נוסף זמין במאמר איך רושמים אפליקציה ב-Microsoft Entra ID.
פתרון בעיות
בקטעים הבאים מוסבר איך לפתור בעיות שעלולות לקרות כשמנהלים את השילוב עם Microsoft Entra ID.
בעיות בחיבור לרשת עם מכונות של כתובות IP פרטיות
יכול להיות שתיתקלו בחלק מהבעיות הבאות במהלך הגדרת השילוב:
- פעולות איטיות ליצירת פרטי כניסה ל-Microsoft Entra ID
- לא ניתן ליצור פרטי התחברות ל-Microsoft Entra ID
- לא ניתן להתחבר למכונה באמצעות אימות של Microsoft Entra ID
כדי לפתור את הבעיות האלה, מבצעים את בדיקת הקישוריות הבאה:
באותו פרויקט ו-VPC, ובאותו אזור של המכונה של Cloud SQL ל-SQL Server, יוצרים מכונה וירטואלית לבדיקה שמוגדרת רק עם כתובת IP פרטית. Google Cloud
מתחברים למכונה הווירטואלית שיצרתם באמצעות פרוטוקול Remote Desktop (RDP) או פרוטוקול Secure Shell (SSH). לאחר מכן, מריצים את הפקודות הבאות כדי לבדוק את הנגישות. אפשר לבצע את השלבים האלה גם במכונות וירטואליות מבוססות-Linux וגם במכונות וירטואליות מבוססות-Windows:
curl -4iv login.microsoftonline.com curl -4iv graph.microsoft.com curl -4iv ocsp.digicert.com
אם אתם לא מצליחים להגיע לאף אחת מנקודות הקצה האלה, בגלל פסק זמן קצוב או שגיאות של סירוב חיבור, בדקו את הגדרות הרשת שלכם:
- ב-Private Service Connect, ודאו ש-Cloud NAT מוגדר בצורה נכונה כדי לאפשר גישה לאינטרנט לתעבורת נתונים יוצאת.
- בגישה לשירותים פרטיים, צריך לוודא את ההגדרה של המסלולים בהתאמה אישית ושל היעדים המבוצרים (bastion hosts).
- בודקים את הכללים של חומת האש ב-VPC כדי לוודא שתעבורת נתונים יוצאת לדומיינים האלה לא חסומה.
הודעות שגיאה נפוצות
יכול להיות שתופיע הודעת השגיאה הבאה במהלך האימות ב-Microsoft Entra ID:
Login failed for user ""
כדי לפתור את הבעיה, צריך לוודא שקיים פרטי כניסה ל-SQL Server למשתמש הזה ב-Microsoft Entra ID.
העברה מ-Microsoft Active Directory
בתרחישים הבאים, אתם יכולים להפעיל את האימות של Microsoft Entra ID בלי להשבית את האימות הקיים של Microsoft Active Directory:
- ביצוע העברה בשלבים. העברת רשות האימות מ-Microsoft Active Directory ל-Microsoft Entra ID באמצעות Active Directory בניהול הלקוח (CMAD) או שירות מנוהל ל-Microsoft Active Directory.
- שימוש בסביבה היברידית. להשאיר את Microsoft Active Directory ואת Microsoft Entra ID מופעלים בו-זמנית.
רישום ביומן
כדי לקבל דוחות על שגיאות ואזהרות בסיסיות, כמו אם Microsoft Entra ID מופעל, משתמשים ביומן sqlserver.err הרגיל. כדי לקבל מידע מפורט יותר על מעקב ופתרון בעיות, אפשר להשתמש ביומן entraid.log, שמציע מידע כמו:
- מציג את מצב הקישוריות של כל נקודת קצה נדרשת.
- דיווח על פרטים לגבי הרשאות API חסרות.
- מציין את מספר הימים שנותרו עד שתוקף אישור הלקוח יפוג.
- מספק שגיאות פנימיות ספציפיות, כמו כשלים ברכישת אסימונים, שיכולות לעזור לכם לאתר את הגורם לבעיה.
רשומות היומן מתעדכנות מדי יום או בכל פעם שהמצב משתנה.
עותקים לקריאה בלבד
- אם מוסיפים רפליקה לקריאה בלבד למכונה ראשית שמופעל בה Microsoft Entra ID, הרפליקה לקריאה בלבד מוגדרת באופן אוטומטי לשימוש ב-Microsoft Entra ID.
- אם במכונה הראשית מופעל Microsoft Entra ID, ואתם משחזרים גיבוי למכונה הזו, הרפליקה לקריאה בלבד שמשויכת אליה מוגדרת באופן אוטומטי לשימוש ב-Microsoft Entra, כי הזהות לא משתנה.
- שינויים במזהה הדייר, במזהה האפליקציה או באישורים של המכונה הראשית מועברים באופן אוטומטי לרפליקות לקריאה בלבד שמשויכות למכונה.
מאגרי קריאה מנוהלים
- שינויים במזהה הדייר, במזהה האפליקציה או באישורים של המכונה הראשית מופצים באופן אוטומטי למאגרי הקריאה המנוהלים שמשויכים למכונה.
מופעים משוכפלים ושחזור למופע אחר
השילוב של Microsoft Entra ID לא מוגדר באופן אוטומטי במופע החדש בתרחישים הבאים:
- שיבוט של המכונה הראשית.
- גיבוי ששוחזר למכונה שהיא לא הראשית.
במקרים כאלה, צריך להפעיל ידנית את Microsoft Entra ID במכונה החדשה, ואז להעלות מחדש את האישור שלה לאפליקציית Microsoft Entra ID. הדרישה הזו היא אמצעי אבטחה שנועד למנוע ממספר מכונות לא קשורות להשתמש באותה זהות של אפליקציה.
מגבלות
- אפשר לאמת את Microsoft Entra ID רק בגרסאות SQL Server 2022 ואילך. אי אפשר לאמת אותו ב-SQL Server 2017 או ב-SQL Server 2019.
- אם משכפלים מכונה או משחזרים גיבוי למכונה אחרת, השילוב של Microsoft Entra ID לא מוגדר באופן אוטומטי במכונה החדשה.
- כדי להפעיל אימות של Microsoft Entra ID במכונה אזורית עם כתובת IP ציבורית וגישה לשירותים פרטיים, צריך להגדיר את המכונה לשימוש עם נתיב גישה לשירותים פרטיים ממכונת VM של באסטיון.
- כדי להפעיל אימות של Microsoft Entra ID במכונה אזורית שמשתמשת ב-Private Service Connect ובגישה לשירותים פרטיים, צריך להגדיר את המכונה לשימוש עם נתיב גישה לשירותים פרטיים ממכונה וירטואלית של Bastion.