השימוש בספריית הלקוח של Go ב-Spanner Omni וב-Spanner דומה. במאמר הזה מוסבר איך ליצור חיבורים מאובטחים ל-Spanner Omni באמצעות הגדרה של ספריית הלקוח Go. אתם יוצרים את החיבורים האלה כשאתם מגדירים את spanner.ClientConfig כשאתם יוצרים לקוח ניהול של מסד נתונים או לקוח של מסד נתונים.
ספריית הלקוח Go תומכת בחיבורים של טקסט רגיל, TLS, TLS עם פרטי כניסה ו-mTLS.
מידע נוסף זמין במאמר תחילת העבודה עם Spanner ב-Go במסמכי Spanner.
לפני שמתחילים
כדי להשתמש בספריית הלקוח של Go עם Spanner Omni, צריך להשתמש בספריית הלקוח של Go בגרסה v1.94.0 ואילך ובגרסת הפצה של Go 1.25 ואילך.
כדי להוסיף את מודול Spanner Go לקובץ go.mod, מריצים את הפקודה הבאה:
go get cloud.google.com/go/spanner@v1.94.0
הגדרת האובייקט ClientConfig
כדי להשתמש בספריית הלקוח של Go כדי ליצור Client או DatabaseAdminClient, צריך להגדיר את האובייקט ClientConfig על ידי ציון Type: spanner.OMNI ולספק את נקודת הקצה באמצעות option.WithEndpoint().
בדוגמאות הבאות אפשר לראות איך להגדיר את האובייקט ClientConfig לכל אחת מהגדרות האבטחה הנתמכות:
טקסט פשוט
כדי ליצור חיבור של טקסט פשוט, מגדירים את UsePlainText ל-true ב-spanner.ClientConfig:
clientConfig := spanner.ClientConfig{
Type: spanner.OMNI,
UsePlainText: true,
}
adminClient, err := database.NewDatabaseAdminClientWithConfig(ctx, clientConfig,
option.WithEndpoint("ENDPOINT"),
)
if err != nil {
// Handle error.
}
defer adminClient.Close()
databaseClient, err := spanner.NewClientWithConfig(ctx, "DATABASE_NAME", clientConfig,
option.WithEndpoint("ENDPOINT"),
)
if err != nil {
// Handle error.
}
defer databaseClient.Close()
TLS
כדי ליצור חיבור TLS, צריך לציין את הנתיב לאישור ה-CA באמצעות CaCertificateFile:
clientConfig := spanner.ClientConfig{
Type: spanner.OMNI,
CaCertificateFile: "PATH_TO_CA_CERT",
}
adminClient, err := database.NewDatabaseAdminClientWithConfig(ctx, clientConfig,
option.WithEndpoint("ENDPOINT"),
)
if err != nil {
// Handle error.
}
defer adminClient.Close()
databaseClient, err := spanner.NewClientWithConfig(ctx, "DATABASE_NAME", clientConfig,
option.WithEndpoint("ENDPOINT"),
)
if err != nil {
// Handle error.
}
defer databaseClient.Close()
TLS עם פרטי כניסה
כדי ליצור חיבור TLS עם אימות של שם משתמש וסיסמה,
מציינים את CaCertificateFile, Username ו-Password:
clientConfig := spanner.ClientConfig{
Type: spanner.OMNI,
CaCertificateFile: "PATH_TO_CA_CERT",
Username: "USERNAME",
Password: []byte("PASSWORD"),
}
adminClient, err := database.NewDatabaseAdminClientWithConfig(ctx, clientConfig,
option.WithEndpoint("ENDPOINT"),
)
if err != nil {
// Handle error.
}
defer adminClient.Close()
databaseClient, err := spanner.NewClientWithConfig(ctx, "DATABASE_NAME", clientConfig,
option.WithEndpoint("ENDPOINT"),
)
if err != nil {
// Handle error.
}
defer databaseClient.Close()
mTLS
כדי ליצור חיבור TLS הדדי (mTLS), מציינים את CaCertificateFile,
ClientCertificateFile ו-ClientKeyFile:
clientConfig := spanner.ClientConfig{
Type: spanner.OMNI,
CaCertificateFile: "PATH_TO_CA_CERT",
ClientCertificateFile: "PATH_TO_CLIENT_CERT",
ClientKeyFile: "PATH_TO_CLIENT_KEY",
}
adminClient, err := database.NewDatabaseAdminClientWithConfig(ctx, clientConfig,
option.WithEndpoint("ENDPOINT"),
)
if err != nil {
// Handle error.
}
defer adminClient.Close()
databaseClient, err := spanner.NewClientWithConfig(ctx, "DATABASE_NAME", clientConfig,
option.WithEndpoint("ENDPOINT"),
)
if err != nil {
// Handle error.
}
defer databaseClient.Close()
מחליפים את מה שכתוב בשדות הבאים:
PATH_TO_CA_CERT: הנתיב לקובץ אישור ה-CA.
PATH_TO_CLIENT_CERT: הנתיב לקובץ אישור הלקוח.
PATH_TO_CLIENT_KEY: הנתיב לקובץ המפתח של הלקוח.