בדף הזה מוסבר איך ליצור או לערוך מכונות Cloud SQL כדי לאפשר למשתמשים, לחשבונות שירות או לקבוצות שהוגדרו להשתמש באימות מסד נתונים של Cloud SQL IAM. מידע נוסף על שילוב IAM עם Cloud SQL זמין במאמר אימות IAM.
למופע שנוצר יש ארבעה מסדי נתונים של המערכת:
-
information_schema: גישה למטא-נתונים של מסד הנתונים, מידע על שרת MySQL. -
mysql: הסכימה של המערכת. הוא מכיל טבלאות שמאחסנות מידע שנדרש לשרת MySQL בזמן שהוא פועל. -
performance_schema: תכונה למעקב אחר הביצוע של שרת MySQL ברמה נמוכה. -
sys: מכילה קבוצה של אובייקטים שעוזרים למנהלי מסדי נתונים ולמפתחים לפרש את הנתונים שנאספים על ידי סכימת הביצועים.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
מוודאים שבחשבון המשתמש שלכם יש את התפקידים "אדמין ב-Cloud SQL" ו"צפייה ב-Compute".
מידע נוסף על תפקידים והרשאות
המספר המקסימלי של מופעים שיכולים להיות בפרויקט יחיד תלוי בארכיטקטורת הרשת של המופעים האלה:
- ארכיטקטורת רשת חדשה של SQL: אפשר להשתמש בעד 1,000 מופעים לכל פרויקט.
- ארכיטקטורת רשת SQL ישנה: אפשר ליצור עד 100 מכונות לכל פרויקט.
- שימוש בשתי הארכיטקטורות: המגבלה תהיה בין 100 ל-1,000, בהתאם להתפלגות המכונות בין שתי הארכיטקטורות.
שליחת בקשת תמיכה כדי לבקש הגדלה. רפליקות לקריאה נספרות כמכונות.
הגדרת מכונות חדשות לאימות מסד נתונים של IAM
כדי להגדיר מכונה חדשה של Cloud SQL לאימות של מסד נתונים ב-IAM, צריך להפעיל את הדגל cloudsql_iam_authentication.
אחרי שמפעילים את הדגל הזה, אפשר להוסיף למכונה של Cloud SQL משתמשים, חשבונות שירות או קבוצות ב-IAM.
כדי להגדיר מכונת Cloud SQL חדשה לשימוש באימות IAM למסד נתונים:
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- לוחצים על Create Instance.
- לוחצים על Choose MySQL (בחירת MySQL).
- מזינים שם למזהה המכונה. אל תכללו בשם של המופע מידע רגיש או פרטים אישיים מזהים, כי הוא גלוי מבחוץ. לא צריך לכלול את מזהה הפרויקט בשם המופע. מזהה הפרויקט נכלל אוטומטית במקומות המתאימים (לדוגמה, בקובצי היומן).
- מזינים סיסמה למשתמש ה-root.
- בתפריט Database version בוחרים גרסת מסד נתונים.
- בקטע Choose region and zonal availability, בוחרים את האזור והתחום של המכונה. ממקמים את המופע באותו אזור שבו נמצאים המשאבים שיש להם גישה אליו. אי אפשר לשנות את האזור שבחרתם. בדרך כלל לא צריך לציין אזור.
- בקטע Customize your instance (התאמה אישית של המופע), לוחצים על Show Configuration Options (הצגת אפשרויות ההגדרה) ואז מרחיבים את Flags (דגלים).
- לוחצים על הוספת סימון.
- בתפריט בחירת דגל, בוחרים את הדגל של
cloudsql_iam_authentication. מוודאים שהערך של הדגל הזה הוא On ולוחצים על Done. - מגדירים הגדרות אחרות של המופע לפי הצורך. מידע נוסף על ההגדרות מופיע במאמר הגדרות.
- לוחצים על Create Instance.
gcloud
מריצים את הפקודה gcloud sql instances create עם הפרמטר --database-flags שמוגדר לערך cloudsql_iam_authentication=on.
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של המכונה החדשה.
- MYSQL_VERSION: הגרסה של MySQL (למשל MYSQL_5_7 או MYSQL_8_0).
- NUMBER_OF_CORES: מספר ליבות המעבד במחשב.
- AMOUNT_OF_MEMORY: כמות הזיכרון במכונה. צריך לציין יחידת גודל (למשל, 3072MiB או 9GiB).
- thought ZONE: האזור המועדף ב-Compute Engine (למשל us-central1-a או us-central1-b).
- PASSWORD: יצירת סיסמה למשתמש Root.
gcloud sql instances create INSTANCE_NAME \ --database-version=MYSQL_VERSION \ --cpu=NUMBER_OF_CORES \ --memory=AMOUNT_OF_MEMORY \ --zone=ZONE_NAME \ --root-password=PASSWORD \ --database-flags=cloudsql_iam_authentication=on
Terraform
כדי ליצור מופע עם אימות מסד נתונים של IAM מופעל, צריך להשתמש במשאב של Terraform.
החלה של השינויים
כדי להחיל את הגדרות Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את Google Cloud פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
מחיקת השינויים
כדי למחוק את השינויים:
- כדי להשבית את ההגנה מפני מחיקה, בקובץ התצורה של Terraform מגדירים את הארגומנט
deletion_protectionלערךfalse.deletion_protection = "false"
- מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:terraform apply
-
כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה:terraform destroy
REST v1
אל תכללו בשם של המופע מידע רגיש או פרטים אישיים מזהים (PII), כי הוא גלוי מחוץ לארגון.
לא צריך לכלול את מזהה הפרויקט בשם המכונה. מזהה הפרויקט נכלל באופן אוטומטי במקומות שבהם הוא נדרש (לדוגמה, בקובצי היומן).
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- INSTANCE_ID: מזהה המכונה הרצוי
- REGION: האזור הרצוי, למשל us-east-1
- PROJECT_ID: מזהה הפרויקט
- LOCATION_ID: מזהה המיקום
- DATABASE_VERSION: מחרוזת של טיפוסים בני מנייה (enum) של גרסת מסד הנתונים.
לדוגמה:
MYSQL_8_0 - PASSWORD: הסיסמה של משתמש Root
- MACHINE_TYPE: מחרוזת enum של סוג המכונה (tier), באופן הבא:
db-custom-[CPUS]-[MEMORY_MBS]
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_ID",
"region": "REGION",
"databaseVersion": "DATABASE_VERSION",
"rootPassword": "PASSWORD",
"settings": {
"tier": "MACHINE_TYPE",
"backupConfiguration": {
"enabled": true
},
"databaseFlags": [
{
"name": "cloudsql_iam_authentication",
"value": "on"
}
]
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת 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
אל תכללו מידע רגיש או פרטים אישיים מזהים (PII) בשם המכונה, כי הוא גלוי באופן חיצוני.
לא צריך לכלול את מזהה הפרויקט בשם המכונה. מזהה הפרויקט נכלל באופן אוטומטי במקומות שבהם הוא נדרש (לדוגמה, בקובצי היומן).
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- INSTANCE_ID: מזהה המכונה הרצוי
- REGION: האזור הרצוי, למשל us-east-1
- PROJECT_ID: מזהה הפרויקט
- LOCATION_ID: מזהה המיקום
- DATABASE_VERSION: מחרוזת של טיפוסים בני מנייה (enum) של גרסת מסד הנתונים.
לדוגמה:
MYSQL_8_0 - PASSWORD: הסיסמה של משתמש Root
- MACHINE_TYPE: מחרוזת enum של סוג המכונה (tier), באופן הבא:
db-custom-[CPUS]-[MEMORY_MBS]
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_ID",
"region": "REGION",
"databaseVersion": "DATABASE_VERSION",
"rootPassword": "PASSWORD",
"settings": {
"tier": "MACHINE_TYPE",
"backupConfiguration": {
"enabled": true
},
"databaseFlags": [
{
"name": "cloudsql_iam_authentication",
"value": "on"
}
]
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת 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-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
הגדרת אימות מסד נתונים של IAM במופעים קיימים
כדי להגדיר מכונה קיימת של Cloud SQL לאימות של מסד נתונים ב-IAM, צריך להפעיל את הדגל cloudsql_iam_authentication.
אחרי שמפעילים את הדגל הזה, אפשר להוסיף למכונה של Cloud SQL משתמשים, חשבונות שירות או קבוצות ב-IAM.
כדי להגדיר מכונה קיימת של Cloud SQL לשימוש באימות של מסד נתונים ב-IAM:
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
- לוחצים על Edit.
- בקטע Customize your instance, מרחיבים את Flags.
- לוחצים על הוספת דגל.
- בתפריט בחירת דגל, בוחרים את הדגל של
cloudsql_iam_authentication. מוודאים שהערך של הדגל הזה הוא On ולוחצים על Done. - משנים את ההגדרות האחרות של המכונה לפי הצורך. מידע נוסף על ההגדרות מופיע במאמר הגדרות.
- לוחצים על Save.
gcloud
במאמר התקנת ה-CLI של gcloud מוסבר איך מתקינים את ה-CLI של gcloud ומתחילים להשתמש בו. מידע על הפעלת Cloud Shell זמין במאמר בנושא שימוש ב-Cloud Shell.
כדי לבצע את התהליך הזה, משתמשים ב-
gcloud
sql instances patch.
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של המכונה החדשה.
gcloud sql instances patch INSTANCE_NAME \ --database-flags=cloudsql_iam_authentication=on
הפעולה הזו מאפסת את כל ההגדרות הקיימות האחרות של דגלים לניהול מסדי נתונים. איך מגדירים דגלים לניהול מסדי נתונים
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- LOCATION_ID: מזהה המיקום
- INSTANCE_ID: מזהה המכונה הרצוי
- REGION: האזור הרצוי
- DATABASE_VERSION: מחרוזת של טיפוסים בני מנייה (enum) של גרסת מסד הנתונים.
לדוגמה:
MYSQL_8_0 - PASSWORD: הסיסמה של משתמש Root
- MACHINE_TYPE: מחרוזת enum של סוג המכונה (tier), באופן הבא:
db-custom-[CPUS]-[MEMORY_MBS]
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_ID",
"region": "REGION",
"databaseVersion": "DATABASE_VERSION",
"rootPassword": "PASSWORD",
"settings": {
"tier": "MACHINE_TYPE",
"backupConfiguration": {
"enabled": true
}
"databaseFlags":
[
{
"name": "cloudsql_iam_authentication",
"value": "on"
}
]
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת 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: מזהה הפרויקט
- LOCATION_ID: מזהה המיקום
- INSTANCE_ID: מזהה המכונה הרצוי
- REGION: האזור הרצוי
- DATABASE_VERSION: מחרוזת של טיפוסים בני מנייה (enum) של גרסת מסד הנתונים.
לדוגמה:
MYSQL_8_0 - PASSWORD: הסיסמה של משתמש Root
- MACHINE_TYPE: מחרוזת enum של סוג המכונה (tier), באופן הבא:
db-custom-[CPUS]-[MEMORY_MBS]
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_ID",
"region": "REGION",
"databaseVersion": "DATABASE_VERSION",
"rootPassword": "PASSWORD",
"settings": {
"tier": "MACHINE_TYPE",
"backupConfiguration": {
"enabled": true
}
"databaseFlags":
[
{
"name": "cloudsql_iam_authentication",
"value": "on"
}
]
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת 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-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
המאמרים הבאים
- מידע נוסף על אימות מסד נתונים של IAM
- איך מגדירים פרטי כניסה לעותק זהה לקריאה בלבד לצורך אימות מסד נתונים של IAM
- איך יוצרים משתמשים וחשבונות שירות שמשתמשים באימות מסד נתונים של Cloud SQL IAM
- איך מוסיפים קישור של מדיניות IAM לחשבון משתמש או לחשבון שירות
- איך מתחברים למסד נתונים של Cloud SQL באמצעות אימות פרטי התחברות ב-IAM
- איך מנהלים משתמשים וחשבונות שירות לאימות מסד נתונים של IAM