בדף הזה נסביר איך להשתמש ב-Microsoft Active Directory בניהול הלקוח (שנקרא גם AD בניהול הלקוח (CMAD)):
- שילוב של Cloud SQL ל-SQL Server עם CMAD.
- מתחברים למופע באמצעות משתמש Active Directory (AD).
מכונת Cloud SQL שמשולבת עם CMAD תומכת באימות Windows בנוסף לאימות SQL.
לפני שמתחילים
- במסוף Google Cloud , בוחרים את שם הפרויקט.
- מוודאים שהחיוב מופעל בפרויקט Google Cloud . איך מוודאים שהחיוב מופעל בפרויקט?
- מתקינים ומפעילים את ה-CLI של gcloud.
- מוודאים שיש לכם תפקיד אדמין ב-Cloud SQL בחשבון המשתמש. כניסה לדף 'ניהול הזהויות והרשאות הגישה' (IAM).
- בדיקת הדרישות המוקדמות לשילוב
- מוודאים שהשכפול של Active Directory פועל בצורה תקינה. אם לא תטמיעו את התכונה בצורה נכונה, יכול להיות שתיתקלו בבעיות בשילוב עם CMAD.
יצירת מכונה וירטואלית עם אימות Windows
אפשר לשלב עם CMAD במהלך יצירת מופע, על ידי הפעלת אימות Windows עבור המופע. כדי לבצע שילוב, בוחרים דומיין שאליו המופע יצטרף. אם ההצטרפות לדומיין נכשלת, יצירת המופע נכשלת.
לפני שיוצרים מופע עם אימות Windows, כדאי לעיין בטיפים ובמגבלות ובחלופות.
אפשר לבחור להשתמש בכתובת IP ציבורית, אבל למכונת Cloud SQL צריכה להיות גם גישה לכתובת IP פרטית.
אפשר להשתמש באחת מהאפשרויות הבאות כדי ליצור מופע שמשולב עם CMAD, וכתוצאה מכך מופעל עבור אימות Windows. מידע על הפקודה הבסיסית ליצירת מופע זמין במאמר יצירת מופעים.
gcloud
כדי ליצור מופע באמצעות CMAD, מריצים את הפקודה הבאה:
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --root-password=PASSWORD \ --active-directory-domain=DOMAIN \ --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \ --active-directory-organizational-unit="OU=CLOUD_OU,DC=DC1,DC=DC2" \ --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \ --active-directory-dns-servers=IP1,IP2 \ --cpu=CPU \ --memory=MEMORY \ --network=NETWORK
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של מופע Cloud SQL ל-SQL Server שרוצים ליצור.
- DATABASE_VERSION: גרסת מסד הנתונים שרוצים להשתמש בה, למשל
SQLSERVER_2019_STANDARD. - DOMAIN: שם הדומיין שרוצים להשתמש בו, למשל
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: מציין את המצב של הדומיין. אם הדומיין נוצר על ידי Google והוא בבעלותה, מזינים
MANAGED_ACTIVE_DIRECTORY. אם הדומיין נוצר על ידי המשתמש ונמצא בבעלותו, מזיניםCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: הוא שם היחידה הארגונית שרוצים להשתמש בה.
לדוגמה,
CLOUDOU. אפשר להזין כמה יחידות ארגוניות שרוצים. - DC1: הוא הרכיב הראשון בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
DOMAIN. אפשר להזין כמה רכיבי דומיין שרוצים. - DC2: הוא הרכיב השני בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
COM. ערך מלא של הדגל--active-directory-organizational-unitיכול להיראות כך:"OU=CLOUDOU,DC=DOMAIN,DC=COM". אפשר להזין כמה רכיבי דומיין שרוצים. - PROJECT_ID: מזהה הפרויקט שבו תמוקם המכונה.
- SECRET_NAME: הוא הסוד שבו רוצים להשתמש.
- IP1: כתובת ה-IP של שרת ה-DNS הראשון שרוצים להשתמש בו, לדוגמה
10.20.30.40. אפשר להזין כמה כתובות IP שרוצים. - IP2: כתובת ה-IP של שרת ה-DNS השני שרוצים להשתמש בו, לדוגמה
20.30.40.50. אפשר להזין כמה כתובות IP שרוצים. - CPU: כמות המעבד שרוצים להקצות למכונה.
- MEMORY: כמות הזיכרון שרוצים להקצות למופע.
- NETWORK: השם של הרשת שאליה המכונה תתחבר, למשל
projects/my-gcp-project-123/global/networks/my-production-vpc.
REST v1
כדי ליצור מכונה עם CMAD, משתמשים בבקשת POST עם ה-method users:insert.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_VERSION: גרסת מסד הנתונים שרוצים להשתמש בה, למשל
SQLSERVER_2019_STANDARD. - INSTANCE_NAME: השם של מופע Cloud SQL ל-SQL Server שרוצים ליצור.
- REGION: האזור שבו רוצים שהמכונה תמוקם, למשל
us-central1. - PASSWORD: הסיסמה של המכונה.
- MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה עבור המופע, למשל
db-n1-standard-8. - NETWORK: השם של הרשת שאליה המכונה תתחבר, למשל
projects/my-gcp-project-123/global/networks/my-production-vpc. - DOMAIN: שם הדומיין שרוצים להשתמש בו, למשל
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: מציין את המצב של הדומיין. אם הדומיין נוצר על ידי Google והוא בבעלותה, מזינים
MANAGED_ACTIVE_DIRECTORY. אם הדומיין נוצר על ידי המשתמש ונמצא בבעלותו, מזיניםCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: הוא שם היחידה הארגונית שרוצים להשתמש בה.
לדוגמה,
CLOUDOU. אפשר להזין כמה יחידות ארגוניות שרוצים. - DC1: הוא הרכיב הראשון בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
DOMAIN. אפשר להזין כמה רכיבי דומיין שרוצים. - DC2: הוא הרכיב השני בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
COM. ערך מלא של הדגל--active-directory-organizational-unitיכול להיראות כך:"OU=CLOUDOU,DC=DOMAIN,DC=COM". אפשר להזין כמה רכיבי דומיין שרוצים. - PROJECT_ID: מזהה הפרויקט שבו תמוקם המכונה.
- SECRET_NAME: הוא הסוד שבו רוצים להשתמש.
- IP1: כתובת ה-IP של שרת ה-DNS הראשון שרוצים להשתמש בו, לדוגמה
10.20.30.40. אפשר להזין כמה כתובות IP שרוצים. - IP2: כתובת ה-IP של שרת ה-DNS השני שרוצים להשתמש בו, לדוגמה
20.30.40.50. אפשר להזין כמה כתובות IP שרוצים.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"databaseVersion":"DATABASE_VERSION",
"name":"INSTANCE_NAME",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":{
"tier":"MACHINE-TYPE",
"ipConfiguration":{
"privateNetwork":"NETWORK"
},
"activeDirectoryConfig":{
"domain":"DOMAIN"
"mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
"organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
"admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
"dns_servers":"IP1,IP2"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
כדי ליצור מכונה עם CMAD, משתמשים בבקשת POST עם ה-method users:insert.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_VERSION: גרסת מסד הנתונים שרוצים להשתמש בה, למשל
SQLSERVER_2019_STANDARD. - INSTANCE_NAME: השם של מופע Cloud SQL ל-SQL Server שרוצים ליצור.
- REGION: האזור שבו רוצים שהמכונה תמוקם, למשל
us-central1. - PASSWORD: הסיסמה של המכונה.
- MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה עבור המופע, למשל
db-n1-standard-8. - NETWORK: השם של הרשת שאליה המכונה תתחבר, למשל
projects/my-gcp-project-123/global/networks/my-production-vpc. - DOMAIN: שם הדומיין שרוצים להשתמש בו, למשל
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: מציין את המצב של הדומיין. אם הדומיין נוצר על ידי Google והוא בבעלותה, מזינים
MANAGED_ACTIVE_DIRECTORY. אם הדומיין נוצר על ידי המשתמש ונמצא בבעלותו, מזיניםCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: הוא שם היחידה הארגונית שרוצים להשתמש בה.
לדוגמה,
CLOUDOU. אפשר להזין כמה יחידות ארגוניות שרוצים. - DC1: הוא הרכיב הראשון בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
DOMAIN. אפשר להזין כמה רכיבי דומיין שרוצים. - DC2: הוא הרכיב השני בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
COM. ערך מלא של הדגל--active-directory-organizational-unitיכול להיראות כך:"OU=CLOUDOU,DC=DOMAIN,DC=COM". אפשר להזין כמה רכיבי דומיין שרוצים. - PROJECT_ID: מזהה הפרויקט שבו תמוקם המכונה.
- SECRET_NAME: הוא הסוד שבו רוצים להשתמש.
- IP1: כתובת ה-IP של שרת ה-DNS הראשון שרוצים להשתמש בו, לדוגמה
10.20.30.40. אפשר להזין כמה כתובות IP שרוצים. - IP2: כתובת ה-IP של שרת ה-DNS השני שרוצים להשתמש בו, לדוגמה
20.30.40.50. אפשר להזין כמה כתובות IP שרוצים.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"databaseVersion":"DATABASE_VERSION",
"name":"INSTANCE_NAME",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":{
"tier":"MACHINE-TYPE",
"ipConfiguration":{
"privateNetwork":"NETWORK"
},
"activeDirectoryConfig":{
"domain":"DOMAIN"
"mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
"organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
"admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
"dns_servers":"IP1,IP2"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
עדכון מכונה עם אימות Windows
אפשר לעדכן את הדומיין של מופע קיים, למשל לשנות או להוסיף דומיין.
מידע כללי על עדכון מכונה זמין במאמר עריכת מכונות.
אם מכונה מצורפת כרגע לדומיין CMAD, היא תבוטל מהדומיין הזה לפני שהיא תצורף לדומיין החדש. אם העדכון נכשל, יכול להיות שלא תהיה יותר אפשרות להצטרף למופע לאף דומיין.
gcloud
הפקודה הבאה היא דוגמה לעדכון של מכונה קיימת. הפקודה מוסיפה או מחליפה דומיין. מעבירים את --active-directory-domain=DOMAIN לפקודה, באופן הבא:
gcloud sql instances patch INSTANCE_NAME \ --active-directory-domain=DOMAIN \ --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \ --active-directory-organizational-unit="OU=CLOUDOU,DC=DOMAIN,DC=COM" \ --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \ --active-directory-dns-servers=IP1,IP2
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של מופע Cloud SQL ל-SQL Server שרוצים לעדכן.
- DOMAIN: שם הדומיין שרוצים להשתמש בו, למשל
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: מציין את המצב של הדומיין. אם הדומיין נוצר על ידי Google והוא בבעלותה, מזינים
MANAGED_ACTIVE_DIRECTORY. אם הדומיין נוצר על ידי המשתמש ונמצא בבעלותו, מזיניםCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: הוא שם היחידה הארגונית שרוצים להשתמש בה.
לדוגמה,
CLOUDOU. אפשר להזין כמה יחידות ארגוניות שרוצים. - DC1: הוא הרכיב הראשון בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
DOMAIN. אפשר להזין כמה רכיבי דומיין שרוצים. - DC2: הוא הרכיב השני בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
COM. ערך מלא של הדגל--active-directory-organizational-unitיכול להיראות כך:"OU=CLOUDOU,DC=DOMAIN,DC=COM". אפשר להזין כמה רכיבי דומיין שרוצים. - PROJECT_ID: הוא מזהה הפרויקט שבו נמצאת המכונה.
- SECRET_NAME: הסוד שמשויך למכונה.
- IP1: כתובת ה-IP של שרת ה-DNS הראשון שרוצים להשתמש בו, לדוגמה
10.20.30.40. אפשר להזין כמה כתובות IP שרוצים. - IP2: כתובת ה-IP של שרת ה-DNS השני שרוצים להשתמש בו, לדוגמה
20.30.40.50. אפשר להזין כמה כתובות IP שרוצים.
REST v1
כדי לעדכן מופע של CMAD, משתמשים בבקשת PATCH עם השיטה users:insert.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- DOMAIN: שם הדומיין שרוצים להשתמש בו, למשל
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: מציין את המצב של הדומיין. אם הדומיין נוצר על ידי Google והוא בבעלותה, מזינים
MANAGED_ACTIVE_DIRECTORY. אם הדומיין נוצר על ידי המשתמש ונמצא בבעלותו, מזיניםCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: הוא שם היחידה הארגונית שרוצים להשתמש בה.
לדוגמה,
CLOUDOU. אפשר להזין כמה יחידות ארגוניות שרוצים. - DC1: הוא הרכיב הראשון בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
DOMAIN. אפשר להזין כמה רכיבי דומיין שרוצים. - DC2: הוא הרכיב השני בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
COM. ערך מלא של הדגל--active-directory-organizational-unitיכול להיראות כך:"OU=CLOUDOU,DC=DOMAIN,DC=COM". אפשר להזין כמה רכיבי דומיין שרוצים. - PROJECT_ID: הוא מזהה הפרויקט שבו נמצאת המכונה.
- SECRET_NAME: הסוד שמשויך למכונה.
- IP1: כתובת ה-IP של שרת ה-DNS הראשון שרוצים להשתמש בו, לדוגמה
10.20.30.40. אפשר להזין כמה כתובות IP שרוצים. - IP2: כתובת ה-IP של שרת ה-DNS השני שרוצים להשתמש בו, לדוגמה
20.30.40.50. אפשר להזין כמה כתובות IP שרוצים.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings":{
"activeDirectoryConfig":{
"domain":"DOMAIN"
"mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
"organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
"admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
"dns_servers":"IP1,IP2"
}
}
}כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
כדי לעדכן מופע של CMAD, משתמשים בבקשת PATCH עם השיטה users:insert.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- DOMAIN: שם הדומיין שרוצים להשתמש בו, למשל
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: מציין את המצב של הדומיין. אם הדומיין נוצר על ידי Google והוא בבעלותה, מזינים
MANAGED_ACTIVE_DIRECTORY. אם הדומיין נוצר על ידי המשתמש ונמצא בבעלותו, מזיניםCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: הוא שם היחידה הארגונית שרוצים להשתמש בה.
לדוגמה,
CLOUDOU. אפשר להזין כמה יחידות ארגוניות שרוצים. - DC1: הוא הרכיב הראשון בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
DOMAIN. אפשר להזין כמה רכיבי דומיין שרוצים. - DC2: הוא הרכיב השני בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
COM. ערך מלא של הדגל--active-directory-organizational-unitיכול להיראות כך:"OU=CLOUDOU,DC=DOMAIN,DC=COM". אפשר להזין כמה רכיבי דומיין שרוצים. - PROJECT_ID: הוא מזהה הפרויקט שבו נמצאת המכונה.
- SECRET_NAME: הסוד שמשויך למכונה.
- IP1: כתובת ה-IP של שרת ה-DNS הראשון שרוצים להשתמש בו, לדוגמה
10.20.30.40. אפשר להזין כמה כתובות IP שרוצים. - IP2: כתובת ה-IP של שרת ה-DNS השני שרוצים להשתמש בו, לדוגמה
20.30.40.50. אפשר להזין כמה כתובות IP שרוצים.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings":{
"activeDirectoryConfig":{
"domain":"DOMAIN"
"mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
"organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
"admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
"dns_servers":"IP1,IP2"
}
}
}כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
העברה בין שירות מנוהל ל-Microsoft Active Directory לבין CMAD
כדי להעביר מופע מאינטגרציה עם שירות מנוהל ל-Microsoft AD לאינטגרציה עם CMAD, משתמשים בפקודה הבאה של ה-CLI של gcloud:
gcloud sql instances patch INSTANCE_NAME \ --active-directory-domain=DOMAIN \ --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \ --active-directory-organizational-unit="OU=CLOUDOU,DC=DOMAIN,DC=COM" \ --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \ --active-directory-dns-servers=IP1,IP2
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של מופע Cloud SQL ל-SQL Server שרוצים לשנות.
- DOMAIN: שם הדומיין שרוצים להשתמש בו, למשל
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: מציין את המצב של הדומיין. אם הדומיין נוצר על ידי Google והוא בבעלותה, מזינים
MANAGED_ACTIVE_DIRECTORY. אם הדומיין נוצר על ידי המשתמש ונמצא בבעלותו, מזיניםCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: הוא שם היחידה הארגונית שרוצים להשתמש בה.
לדוגמה,
CLOUDOU. אפשר להזין כמה יחידות ארגוניות שרוצים. - DC1: הוא הרכיב הראשון בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
DOMAIN. אפשר להזין כמה רכיבי דומיין שרוצים. - DC2: הוא הרכיב השני בדומיין שמשמש לשם המובחן של היחידה הארגונית. לדוגמה,
COM. ערך מלא של הדגל--active-directory-organizational-unitיכול להיראות כך:"OU=CLOUDOU,DC=DOMAIN,DC=COM". אפשר להזין כמה רכיבי דומיין שרוצים. - PROJECT_ID: הוא מזהה הפרויקט שבו נמצאת המכונה.
- SECRET_NAME: הסוד שמשויך למכונה.
- IP1: כתובת ה-IP של שרת ה-DNS הראשון שרוצים להשתמש בו, לדוגמה
10.20.30.40. אפשר להזין כמה כתובות IP שרוצים. - IP2: כתובת ה-IP של שרת ה-DNS השני שרוצים להשתמש בו, לדוגמה
20.30.40.50. אפשר להזין כמה כתובות IP שרוצים.
התחברות למכונה באמצעות משתמש
ב-Cloud SQL ל-SQL Server, המשתמש שמוגדר כברירת מחדל הוא sqlserver.
אחרי שמבצעים שילוב של מופע עם CMAD, אפשר להתחבר למופע עם המשתמש sqlserver, באופן הבא:
- יוצרים התחברות ל-SQL Server על סמך משתמש או קבוצה ב-Windows, באופן הבא:
CREATE LOGIN [domain\user_or_group] FROM WINDOWS
- נכנסים למופע באמצעות אימות Windows, עם שם ה-DNS של המופע. דוגמאות לשמות DNS של מופעים שאפשר לציין:
- בדוגמה הבאה מוצג חיבור באמצעות כתובת IP פרטית:
private.myinstance.us-central1.myproject.cloudsql.mydomain.com
- דוגמה לחיבור דרך כתובת IP ציבורית:
public.myinstance.us-central1.myproject.cloudsql.mydomain.com
- בדוגמה הבאה מוסבר איך להתחבר באמצעות שרת proxy ל-Cloud SQL Auth:
proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com
מידע נוסף זמין במאמר שימוש בשרת proxy ל-Cloud SQL Auth עם אימות Windows.
- בדוגמה הבאה מוצג חיבור באמצעות כתובת IP פרטית:
אם משתמשים בכתובת ה-IP של המכונה, צריך להגדיר את לקוחות Kerberos כך שיתמכו בשמות מארחים של כתובות IP. Cloud SQL לא תומך בכניסה באמצעות כתובות IP מדומיינים שמחוברים דרך יחסי אמון.
שימוש בשרת proxy ל-Cloud SQL Auth עם אימות Windows
אפשר להשתמש בשרת proxy ל-Cloud SQL Auth בשילוב עם CMAD.
לפני שמתחילים, חשוב לעיין במידע הבא:
שלבים לאימות ב-Windows
מידע נוסף על הפעלת שרת proxy ל-Cloud SQL Auth זמין במאמר בנושא הפעלת שרת proxy ל-Cloud SQL Auth.
כדי להשתמש באימות Windows, צריך להריץ את שרת ה-proxy ל-Cloud SQL Auth ביציאה 1433. כדי למפות רשומה של שם שירות ראשי (SPN) שהוגדרה מראש לכתובת של שרת proxy ל-Cloud SQL Auth, משתמשים בפקודה הבאה:
Proxy.[instance].[location].[project].cloudsql.[domain]
הפעלת שרת proxy ל-Cloud SQL Auth באופן מקומי
אם מריצים את Cloud SQL Auth Proxy באופן מקומי, צריך להשתמש בקובץ המארחים כדי למפות את הערכים הבאים ל-127.0.0.1:
Proxy.[instance].[location].[project].cloudsql.[domain]
לדוגמה, אפשר להוסיף את השורה הבאה לקובץ hosts (לדוגמה, ל-c:\windows\system32\drivers\etc\hosts):
127.0.0.1 proxy.[instance].[location].[project].cloudsql.[domain]
בדוגמה הזו, אפשר להריץ את שרת ה-proxy ל-Cloud SQL Auth באמצעות הפקודה הזו, ולהפוך אותו לזמין ב-127.0.0.1:1433:
cloud-sql-proxy.exe --credentials-file credential.json project:name
הפעלת שרת proxy ל-Cloud SQL Auth שלא באופן מקומי
כדי להריץ את שרת ה-proxy ל-Cloud SQL Auth באופן חיצוני, פועלים לפי ההוראות במאמר בנושא הרצת שרת ה-proxy ל-Cloud SQL Auth באופן מקומי, אבל משתמשים ברשומה אחרת בקובץ hosts.
לדוגמה, אם מארח לא מקומי הוא MyOtherHost, אפשר להוסיף את השורה הבאה לקובץ hosts:
127.0.0.1 MyOtherHost proxy.[instance].[location].[project].cloudsql.[domain]
פתרון בעיות שקשורות לגיבוי NTLM בלקוחות
אם אתם משתמשים באימות של Windows ובכתובת IP של מופע כדי להיכנס למופע, אתם צריכים להגדיר לקוח Kerberos כדי לתמוך בשמות מארחים של כתובות IP.
Cloud SQL לא תומך באימות NTLM, אבל יכול להיות שחלק מלקוחות Kerberos ינסו לחזור אליו. כפי שמוסבר בקטע הזה, אם מנסים להתחבר באמצעות SQL Server Management Studio (SSMS) ומופיעה הודעת השגיאה הבאה, סביר להניח שהסיבה לכך היא חזרה ל-NTLM:
NTLM הוא קבוצה של פרוטוקולי אבטחה של מיקרוסופט לאימות. מידע נוסף זמין במאמר Reasons for NTLM fallback (סיבות למעבר חזרה ל-NTLM).
אימות של חזרה ל-NTLM עבור לקוח Windows
כדי לוודא שחזרה ל-NTLM גרמה לשגיאה ממסוף Windows:
- נכנסים באמצעות פרטי הכניסה המקומיים שרוצים להשתמש בהם. לא להשתמש בפקודות
"Run as...". - פותחים שורת פקודה.
- מריצים את
klist purge. - מנסים להתחבר ל-SQL Server באמצעות אימות Windows מ-SSMS.
- מריצים את הפקודה
klistובודקים אם הונפק כרטיס לשגיאה שהוחזרה, - אם אין כרטיס כזה, סביר להניח שהשגיאה נגרמת בגלל חזרה ל-NTLM.
- אם יש כרטיס כזה, צריך לוודא שמנהל ההתקן של SQL Server לא אוכף אימות NTLM. כדאי גם לבדוק אם אימות NTLM נאכף באמצעות מדיניות קבוצתית.
אימות של חזרה ל-NTLM עבור לקוח Linux
כדי לוודא שחזרה ל-NTLM גרמה לשגיאה ב-Ubuntu 16.04, פועלים לפי השלבים שבקטע הזה. השלבים דומים לאלה של הפצות לינוקס אחרות.
הגדרת אימות Kerberos
- הגדרת לקוח Kerberos:
sudo apt-get install krb5-user
- כשמוצגת בקשה להזין את התחום שמוגדר כברירת מחדל, מקלידים שם דומיין מקומי באותיות רישיות.
- מריצים את הפקודה הבאה כדי להתקין את כלי שורת הפקודה של SQL Server:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list sudo apt-get update sudo apt-get install mssql-tools unixodbc-dev
התחברות באמצעות אימות Windows
- מריצים את הכלי kinit באופן הבא:
kinit
- כדי להתחבר באמצעות אימות Windows, מריצים את הפקודה הבאה:
/opt/mssql-tools/bin/sqlcmd -S
- מריצים את הפקודה klist ובודקים אם כרטיס הונפק במיוחד להודעה הבאה שמוחזרת:
MSSQLSvc/:1433 @ domain
- אם הכרטיס לא הונפק, סביר להניח שהשגיאה הקודמת מצביעה על בעיה שגורמת לחזרה ל-NTLM.
הסיבות למעבר חזרה ל-NTLM
חזרה ל-NTLM היא טעות בהגדרת הלקוח שיכולה להיות קשורה לתנאים הבאים:
- כברירת מחדל, Windows לא מנסה לבצע אימות Kerberos למארח אם שם המארח הוא כתובת IP. כדי להפעיל אימות Kerberos לכתובות IP, אפשר לנסות את השיטה שמתוארת במסמכי התיעוד של מיקרוסופט.
- אימות Kerberos באמצעות יחסי אמון חיצוניים לא פועל. במקום זאת, אפשר להשתמש ביחסי אמון בין יערות.
- אימות Kerberos מחייב ניתוב של סיומות שמות כדי לאפשר את איתור השירותים ביער אחר. אפשר לנסות את השיטה שמתוארת במאמר בנושא הגדרת יחסי אמון בין שני דומיינים.
- אימות Kerberos לא פועל אם לא רשום SPN לשירות. כדי להתחבר באמצעות אימות Windows, צריך להשתמש רק ב-FQDN או בכתובות IP שמתקבלות מ Google Cloud המסוף.
יצירת התחברות ל-Windows למשתמשי AD מקומיים
פועלים לפי ההוראות לCREATE LOGIN יצירת התחברות ל-Windows עבור משתמש מקומי. לדוגמה, מציינים פקודה שדומה לזו:
CREATE LOGIN [DOMAIN_NAME\USER_NAME] FROM WINDOWS
טיפים לשימוש ב-CMAD עם Cloud SQL
- מכונה עם כתובת IP ציבורית נתמכת, כל עוד יש לה גם כתובת IP פרטית. צריך להפעיל כתובת IP פרטית למופע. אחר כך תוכלו לבחור אם להשתמש בכתובת IP ציבורית או פרטית כדי להתחבר למכונה, כל עוד שתיהן זמינות.
- לפני שיוצרים מופע, כולל מופע חלופי, כדאי לעיין בנקודות הבאות:
- אם אימות Windows נכשל מדומיין שמחובר דרך יחסי אמון, צריך לוודא שאימות Windows פועל עבור משתמש מדומיין בניהול הלקוח. אם כן, מבצעים את הפעולות הבאות:
- מוודאים שהשתמשתם בשם DNS. אין תמיכה בכתובות IP מדומיינים שמקושרים באמצעות יחסי אמון.
- חשוב לוודא שהשלמתם את השלבים במאמר בנושא הגדרת יחסי אמון בין שני דומיינים, כולל פתיחת כל הפורטים בחומת האש.
- מאמתים את האמון.
- מוודאים שכיוון האמון מאפשר למשתמשים מהדומיין (שמחובר דרך יחסי אמון) לבצע אימות.
- פועלים לפי השלבים שמתוארים במאמר בנושא הכנת דומיין שלא ניתן לניתוב לצורך סנכרון עם ספרייה.
- מוודאים שהאמון פועל בלי להשתמש ב-Cloud SQL ל-SQL Server:
- יוצרים מכונה וירטואלית של Windows.
- מצטרפים לדומיין CMAD.
- לדוגמה, מנסים להפעיל את פנקס הרשימות בתור משתמש מהדומיין שמחובר באמצעות יחסי אמון.
- מפעילים מחדש את ה-VM של הלקוח ובודקים מחדש את אימות Windows.
- יכול להיות שתנסו ליצור התחברות ל-SQL Server, אבל תקבלו את השגיאה הבאה:
יכול להיות שהבעיה קרתה כי לא נתמכות קבוצות מקומיות בדומיין. אם זה המקרה, צריך להשתמש בקבוצות גלובליות או אוניברסליות.
- אם שאילתות של SQL Server מובילות לשגיאה הבאה, חשוב לדעת שכתובות IP לא נתמכות למשתמשים מדומיינים שמחוברים באמצעות יחסי אמון:
הפעולות הבאות עשויות לפתור את הבעיה:
- אם כתובת IP משמשת לחיבור משתמשים מדומיין מנוהל, פועלים לפי ההוראות במסמכי מיקרוסופט.
- אל תשתמשו בשרתי proxy, ותמיד השתמשו באותו שם DNS כדי להתחבר ל-Cloud SQL ל-SQL Server, כמו שמופיע השם במסוף Google Cloud .
אם יש מופע עם בעיות מתמשכות באימות Windows (בין אם המופע עודכן לאחרונה ובין אם לא), נסו לבטל את ההצטרפות שלו לדומיין ואז להצטרף אליו מחדש. כדי לעשות זאת, משתמשים בתהליך העדכון כדי לבטל את ההצטרפות לדומיין ואז להצטרף אליו מחדש. הפעולה הזו לא תסיר משתמשים או התחברויות קיימים שמאומתים על ידי Windows ומאוחסנים במסדי הנתונים שלכם. עם זאת,
הסרה של אימות Windows גורמת להפעלה מחדש של מופע.
- אפשר להשתמש בכלי האבחון של AD כדי לפתור בעיות בהגדרת AD בדומיין בניהול הלקוח ובמכונות Cloud SQL ל-SQL Server ב Google Cloud console. מדלגים על השלבים שקשורים לשירות מנוהל ל-Microsoft AD.
פתרון בעיות
בטבלה הבאה מפורטות הודעות שגיאה נפוצות ודרכים לפתור אותן:
| לשגיאה הזו... | יכול להיות שהבעיה היא... | אפשר לנסות את הפעולות הבאות… |
|---|---|---|
Per-product, per-project Service Account (P4 SA) not found for project. |
השם של חשבון השירות שגוי. | בדף Service Accounts, מוודאים שיצרתם חשבון שירות עבור פרויקט המשתמש הנכון. |
The operation completed but an update to Active Directory failed.
You may experience issues with Windows Authentication on this instance, please
see https://cloud.google.com/sql/docs/sqlserver/configure-cmad for tips. |
לא ניתן לבצע את העדכונים הנדרשים בדומיין CMAD. | אם נתקלים בבעיות באימות Windows, אפשר לנסות לצאת מהדומיין של CMAD ואז להצטרף אליו מחדש. כדי לעשות זאת, משתמשים בתהליך העדכון כדי לבטל את ההצטרפות לדומיין ואז להצטרף אליו מחדש. הפעולה הזו לא תסיר משתמשים או התחברויות קיימים שאומתו ב-Windows ומאוחסנים במסדי הנתונים שלכם. עם זאת, הסרה של אימות Windows גורמת להפעלה מחדש של מופע. |
This instance would need new network architecture to support Active
Directory. See https://cloud.google.com/sql/docs/sqlserver/configure-cmad." |
המופע הזה לא משתמש בארכיטקטורת הרשת החדשה. | משדרגים את המכונה לארכיטקטורת הרשת החדשה. |
Admin credential secret name / Organizational unit / DNS Server
names is required or Invalid Admin credential secret name /
OrganizationalUnit / DNS Server names provided. |
פרמטרים נדרשים: פרטי אדמין, יחידה ארגונית ושרתי DNS. | נסו לשלוח שוב את הבקשה עם הפרמטרים האלה. |
Integration failed due to insufficient permissions. The Service
Agent for this project must be granted the secretmanager.secrets.getIamPolicy
and secretmanager.secrets.setIamPolicy permissions on the provided admin
credential key in Secret Manager. |
לסוכן השירות בפרויקט הזה חסרות הרשאות נדרשות. | יוצרים תפקיד בהתאמה אישית עם ההרשאות secretmanager.secrets.getIamPolicy ו-secretmanager.secrets.setIamPolicy ומקצים אותו לסוכן השירות של הפרויקט הזה. מידע נוסף זמין במאמר בנושא תפקידים והרשאות ב-Secret Manager. |