Spanner Omni und Spanner verwenden die Go-Clientbibliothek auf ähnliche Weise. In diesem Dokument wird beschrieben, wie Sie sichere Verbindungen zu Spanner Omni herstellen, indem Sie die Go-Clientbibliothek konfigurieren. Sie stellen diese Verbindungen her, indem Sie spanner.ClientConfig konfigurieren, wenn Sie einen Datenbankverwaltungsclient oder einen Datenbankclient erstellen.
Die Go-Clientbibliothek unterstützt Nur-Text-, TLS-, TLS-mit-Anmeldedaten- und mTLS-Verbindungen.
Weitere Informationen finden Sie in der Spanner-Dokumentation unter Erste Schritte mit Spanner in Go.
Hinweis
Wenn Sie die Go-Clientbibliothek mit Spanner Omni verwenden möchten, benötigen Sie die Go-Clientbibliothek Version v1.94.0 oder höher und Go-Releaseversion 1.25 oder höher.
Führen Sie den folgenden Befehl aus, um das Spanner Go-Modul zu Ihrer go.mod-Datei hinzuzufügen:
go get cloud.google.com/go/spanner@v1.94.0
ClientConfig-Objekt konfigurieren
Wenn Sie die Go-Clientbibliothek verwenden möchten, um ein Client oder ein DatabaseAdminClient zu erstellen, konfigurieren Sie das ClientConfig-Objekt, indem Sie Type: spanner.OMNI angeben und den Endpunkt mit option.WithEndpoint() bereitstellen.
Die folgenden Beispiele zeigen, wie das ClientConfig-Objekt für jede unterstützte Sicherheitskonfiguration konfiguriert wird:
Nur-Text
Wenn Sie eine Nur-Text-Verbindung herstellen möchten, legen Sie UsePlainText in spanner.ClientConfig auf true fest:
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
Geben Sie zum Herstellen einer TLS-Verbindung den Pfad zu Ihrem CA-Zertifikat mit CaCertificateFile an:
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 mit Anmeldedaten
Wenn Sie eine TLS-Verbindung mit Nutzername und Passwortauthentifizierung herstellen möchten, geben Sie CaCertificateFile, Username und Password an:
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
Geben Sie für eine gegenseitige TLS-Verbindung (mTLS) CaCertificateFile, ClientCertificateFile und ClientKeyFile an:
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()
Ersetzen Sie Folgendes:
PATH_TO_CA_CERT: der Pfad zu Ihrer CA-Zertifikatsdatei.PATH_TO_CLIENT_CERT: der Pfad zu Ihrer Clientzertifikatsdatei.PATH_TO_CLIENT_KEY: der Pfad zu Ihrer Clientschlüsseldatei.