בדף הזה מוסבר איך להשתמש ב-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 Authentication במכונה. כדי לשלב, בוחרים דומיין שאליו המכונה תצטרף. אם ההצטרפות לדומיין נכשלת, יצירת המכונה נכשלת.
לפני שיוצרים מכונה עם אימות של 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: כמות המעבד (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
- דוגמה לחיבור באמצעות Cloud SQL Auth Proxy:
proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com
מידע נוסף זמין במאמר שימוש ב-Cloud SQL Auth Proxy עם אימות של Windows.
- דוגמה לחיבור באמצעות כתובת IP פרטית:
אם משתמשים בכתובת ה-IP של המכונה, צריך להגדיר את לקוחות Kerberos כך שיתמכו בשמות מארחים של IP. ב-Cloud SQL אי אפשר להיכנס באמצעות כתובות IP מדומיינים שמחוברים דרך קשר אמון.
שימוש ב-Cloud SQL Auth Proxy עם אימות של Windows
אתם יכולים להשתמש ב-Cloud SQL Auth Proxy עם השילוב של CMAD.
לפני שמתחילים, חשוב לבדוק את הפרטים הבאים:
שלבים לאימות ב-Windows
כאן מוסבר איך מפעילים את Cloud SQL Auth Proxy.
כדי להשתמש באימות של Windows, צריך להריץ את Cloud SQL Auth Proxy ביציאה 1433. כדי למפות רשומת שם שירות ראשי (SPN) שהוגדרה מראש לכתובת של Cloud SQL Auth Proxy, משתמשים בפקודה הבאה:
Proxy.[instance].[location].[project].cloudsql.[domain]
הפעלת Cloud SQL Auth Proxy באופן מקומי
אם מריצים את Cloud SQL Auth Proxy באופן מקומי, משתמשים בקובץ המארחים כדי למפות את הכתובות הבאות ל-127.0.0.1:
Proxy.[instance].[location].[project].cloudsql.[domain]
לדוגמה, אפשר להוסיף את הטקסט הבא לקובץ המארחים (למשל, ל-c:\windows\system32\drivers\etc\hosts):
127.0.0.1 proxy.[instance].[location].[project].cloudsql.[domain]
בדוגמה הזו, אפשר להריץ את Cloud SQL Auth Proxy באמצעות הפקודה הבאה, ולהפוך אותו לזמין ב-127.0.0.1:1433:
cloud-sql-proxy.exe --credentials-file credential.json project:name
הפעלת Cloud SQL Auth Proxy באופן לא מקומי
כדי להריץ את Cloud SQL Auth Proxy באופן חיצוני, פועלים לפי ההוראות במאמר הרצת Cloud SQL Auth Proxy באופן מקומי, אבל משתמשים ברשומה אחרת בקובץ המארחים.
באופן ספציפי, אם המארח הלא מקומי הוא, לדוגמה, MyOtherHost, אפשר להוסיף את השורה הבאה לקובץ המארחים:
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 היא קבוצה של פרוטוקולי אבטחה של מיקרוסופט לאימות. מידע נוסף זמין במאמר הסיבות למעבר ל-NTLM.
אימות של חלופת NTLM ללקוח Windows
כדי לוודא ששגיאה נגרמה בגלל חזרה ל-NTLM, מבצעים את הפעולות הבאות בטרמינל של Windows:
- נכנסים באמצעות פרטי הכניסה המקומיים שבהם רוצים להשתמש. אל תשתמשו בפקודות
"Run as...". - פותחים שורת פקודה.
- מריצים את
klist purge. - ב-SSMS, מנסים להתחבר ל-SQL Server באמצעות אימות של Windows.
- מריצים את
klistובודקים אם הונפק כרטיס לשגיאה שהוחזרה, - אם אין כרטיס כזה, סביר להניח שהשגיאה נגרמה בגלל חזרה ל-NTLM.
- אם יש כרטיס כזה, צריך לוודא שמנהל ההתקן של SQL Server לא אוכף אימות NTLM. כדאי גם לבדוק אם אימות NTLM נאכף באמצעות מדיניות קבוצתית.
אימות של חלופת ה-NTLM ללקוח Linux
כדי לוודא ש-NTLM fallback גרם לשגיאה, בצעו את השלבים הבאים ב-Ubuntu 16.04. השלבים דומים לאלה של הפצות אחרות של Linux.
הגדרת אימות 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 fallback.
הסיבות למעבר ל-NTLM
חזרה ל-NTLM היא הגדרה שגויה של הלקוח שיכולה להיות קשורה לתנאים הבאים:
- כברירת מחדל, Windows לא מנסה לבצע אימות Kerberos למארח אם שם המארח הוא כתובת IP. כדי להפעיל אימות Kerberos לכתובות IP, נסו את השיטה שמתוארת במסמכי התיעוד של מיקרוסופט.
- אימות Kerberos דרך יחסי אמון חיצוניים לא עובד. במקום זאת, השתמשו ביחסי אמון של קבוצות מחשבים.
- כדי לאמת באמצעות Kerberos, צריך להגדיר ניתוב לפי סיומת שם כדי לאפשר חיפוש של שירותים ביער אחר. נסו את השיטה שמתוארת במאמר הגדרת יחסי אמון בין שני דומיינים.
- אימות Kerberos לא פועל אם לא רשום SPN לשירות. כדי להתחבר באמצעות אימות של Windows, צריך להשתמש רק בכתובות IP או ב-FQDN שקיבלתם ממסוף Google Cloud .
יצירת פרטי התחברות ל-Windows למשתמשי AD מקומיים
פועלים לפי ההוראות של CREATE LOGIN ליצירת פרטי כניסה ל-Windows למשתמש מקומי. לדוגמה, מציינים פקודה שדומה לזו:
CREATE LOGIN [DOMAIN_NAME\USER_NAME] FROM WINDOWS
טיפים לשימוש ב-CMAD עם Cloud SQL
- אפשר להשתמש במכונה עם כתובת IP ציבורית, כל עוד יש לה גם כתובת 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 גורמת להפעלה מחדש של המכונה.
- שימוש בכלי האבחון של Active Directory בניהול הלקוח כדי לפתור בעיות בהגדרת Active Directory בדומיין בניהול הלקוח.
פתרון בעיות
בטבלה הבאה מפורטות הודעות שגיאה נפוצות ודרכים לפתור אותן:
| אם מופיעה השגיאה הזו… | יכול להיות שהבעיה היא... | אפשר לנסות את זה… |
|---|---|---|
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://docs.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://docs.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. |
המאמרים הבאים
- סקירה כללית על Active Directory בניהול הלקוח (CMAD)
- שימוש בכלי האבחון של Active Directory בניהול הלקוח