Auf dieser Seite wird beschrieben, wie sich Nutzer und Dienstkonten mithilfe der Cloud SQL-IAM-Datenbankauthentifizierung in Cloud SQL-Datenbanken anmelden können. Weitere Informationen finden Sie unter IAM-Authentifizierung.
Hinweise
- Konfigurieren Sie die Instanz, um die IAM-Datenbankauthentifizierung zu verwenden. Weitere Informationen finden Sie unter Neue Instanzen für die IAM-Datenbankauthentifizierung konfigurieren.
- Fügen Sie der Datenbank einen IAM-Nutzer, ein Dienstkonto oder eine Gruppe hinzu. Weitere Informationen finden Sie unter IAM-Nutzer oder Dienstkonto zur Datenbank hinzufügen und Gruppe zur Datenbank hinzufügen.
- Fügen Sie Ihrem IAM-Nutzer, Dienstkonto oder Ihrer Gruppe die IAM-Rolle
roles/cloudsql.instanceUser
hinzu. Dies ist eine vordefinierte Rolle, die die erforderliche Cloud SQL-IAM-Berechtigungcloudsql.instances.login
enthält. Sie benötigen diese Berechtigung, um sich mit einer IAM-Datenbankauthentifizierung bei einer Datenbankinstanz anzumelden. Weitere Informationen finden Sie unter Rollen und -Berechtigungen. - Wenn ein IAM-Nutzer einer Datenbank hinzugefügt wird, erhält dieser neue Nutzer standardmäßig keine Berechtigungen für Datenbanken. Sie müssen den Befehl
GRANT
verwenden, um dem IAM-Datenbanknutzer die erforderlichen Berechtigungen zu erteilen. Weitere Informationen finden Sie unter IAM-Nutzer Datenbankberechtigungen erteilen und Einer Gruppe Datenbankberechtigungen erteilen. - Wenn Sie eine IAM-Gruppenauthentifizierung verwenden, muss der IAM-Nutzer oder das Dienstkonto Mitglied einer Gruppe sein, der eine IAM-Rolle oder Berechtigung zum Anmelden in der Cloud SQL-Instanz hat. Cloud SQL erstellt ein Konto, wenn sich der Nutzer oder das Dienstkonto zum ersten Mal in der Instanz anmeldet. Die IAM-Gruppenauthentifizierung befindet sich in der Vorschau.
Mit automatischer IAM-Datenbankauthentifizierung anmelden
Sie können einen Cloud SQL-Connector so konfigurieren, dass die Authentifizierung bei der Cloud SQL-Instanz automatisch im Namen eines Nutzers oder einer Anwendung ausgeführt wird. Connectors umfassen den Cloud SQL-Auth-proxy, den Go-Connector, den Java-Connector und den Python-Connector, die alle die automatische IAM-Datenbankauthentifizierung unterstützen. Wenn Sie einen Cloud SQL-Connector mit der automatischen IAM-Datenbankauthentifizierung verwenden, muss das IAM-Konto, mit dem Sie den Connector starten, mit dem Konto übereinstimmen, mit dem Sie sich bei der Datenbank authentifizieren.So melden Sie sich mit der automatischen IAM-Datenbankauthentifizierung an:
Cloud SQL Auth-Proxy
Authentifizieren Sie sich bei Google Cloud.
Nutzer
Authentifizieren Sie sich bei Google Cloud mit den Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC).
Führen Sie den Befehl
gcloud auth application-default login
aus. Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen einrichten.Dienstkonto
Zur Authentifizierung bei Google Cloud mit ADC mit einem Dienstkonto können Sie die Identität des Dienstkontos übernehmen oder einen Dienstkontoschlüssel einrichten. Wenn Sie sich mit Identität des Dienstkontos authentifizieren möchten, ersetzen Sie SERVICE_ACCOUNT_EMAIL_ADDRESS und führen Sie den folgenden Befehl aus:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS
Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen einrichten.
Starten Sie den Cloud SQL Auth-Proxy mit dem Flag
--auto-iam-authn
. Ersetzen Sie INSTANCE_CONNECTION_NAME durch den Verbindungsstring, der zur Identifizierung der Cloud SQL-Instanz verwendet wird. Wenn Sie einen anderen Port als den MySQL-Standardport verwenden, geben Sie die Portnummer an. Informationen dazu, wie Sie diesen String ermitteln und erstellen, finden Sie unter Optionen für die Authentifizierung des Cloud SQL Auth-Proxys../cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
Weitere Informationen zum Starten des Proxys finden Sie unter Cloud SQL Auth-Proxy starten.
Wenn Sie über den Cloud SQL Auth-Proxy eine Verbindung zur Instanz herstellen möchten, melden Sie sich mit dem
mysql
-Client an. Ersetzen Sie Folgendes:- HOSTNAME: Die vom Cloud SQL Auth-Proxy verwendete IP-Adresse. Standardmäßig verwendet der Cloud SQL Auth-Proxy die localhost-Adresse von
127.0.0.1
. Sie können jedoch beim Starten des Cloud SQL Auth Proxys eine andere IP-Adresse zuweisen. - USERNAME: Bei einem IAM-Nutzerkonto ist das die E-Mail-Adresse des Nutzers ohne dem
@
oder den Domainnamen. Geben Sie beispielsweise fürtest-user@example.com
den Werttest-user
ein. Bei einem Dienstkonto ist dies die E-Mail-Adresse des Dienstkontos ohne das Suffix@project-id.iam.gserviceaccount.com
. - PORT_NUMBER: Optional. Wenn Sie einen anderen Port im Instanzverbindungsstring angegeben haben, geben Sie diese Portnummer an.
Führen Sie dazu diesen Befehl aus:
mysql --host=HOSTNAME \ --user=USERNAME \ --port=PORT_NUMBER
Weitere Informationen zum Herstellen einer Verbindung zum Cloud SQL-Authentifizierungsproxy finden Sie unter Verbindung mit dem mysql-Client herstellen.
- HOSTNAME: Die vom Cloud SQL Auth-Proxy verwendete IP-Adresse. Standardmäßig verwendet der Cloud SQL Auth-Proxy die localhost-Adresse von
Einfach loslegen (Go)
Java-JDBC
Java R2DBC
Python
Mit manueller IAM-Datenbankauthentifizierung anmelden
Ein Nutzer oder eine Anwendung kann sich mithilfe von IAM bei der Datenbank authentifizieren und dafür manuell ein Zugriffstoken von Google Cloud anfordern und es an die Datenbank übergeben. Mit der gcloud CLI haben Sie die Möglichkeit, explizit ein OAuth 2.0-Token im Geltungsbereich der Cloud SQL Admin API anzufordern, das für die Anmeldung bei der Datenbank verwendet wird. Wenn Sie sich als Datenbanknutzer mit der manuellen IAM-Datenbankauthentifizierung anmelden, verwenden Sie Ihre E-Mail-Adresse als Nutzernamen und das Zugriffstoken als Passwort. Sie können diese Methode entweder mit einer direkten Verbindung zur Datenbank oder mit einem Cloud SQL-Connector verwenden.
In diesem Verfahren authentifizieren Sie sich bei Google Cloud, fordern ein Zugriffstoken an und stellen dann eine Verbindung zur Datenbank her. Dazu übergeben Sie das Token als Passwort für den IAM-Datenbanknutzer. Führen Sie die folgenden Schritte aus, um eine Verbindung ohne den Cloud SQL-Authentifizierungsproxy herzustellen.
Für diese Schritte müssen Sie Folgendes tun:
- Verwenden Sie die
mysql
-Option --enable-cleartext-plugin. - Wenn Sie eine Verbindung zu einer Instanz mit öffentlicher IP-Adresse herstellen, autorisieren Sie den externen Zugriff auf die Instanz. Weitere Informationen finden Sie unter IP-Adresse Ihres Computers für öffentliche IP-Adressen autorisieren.
- Wenn Sie eine Verbindung zu einer Instanz mit privater IP-Adresse herstellen, führen Sie den Befehl im VPC-Netzwerk (Virtual Private Cloud) aus.
- Generieren Sie mit dem Befehl
gcloud sql generate-login-token
Ihr Authentifizierungstoken.
So melden Sie sich mit der manuellen IAM-Datenbankauthentifizierung an:
gcloud
Authentifizieren Sie sich bei Google Cloud.
Nutzer
Authentifizieren Sie sich mit
gcloud auth login
bei IAM. Weitere Informationen finden Sie unter Mit Nutzerkonten autorisieren.Dienstkonto
Authentifizieren Sie sich mit
gcloud auth activate-service-account
bei IAM. Weitere Informationen finden Sie unter Mit Dienstkonto autorisieren.Fordern Sie das Zugriffstoken an und melden Sie sich bei einem Client an.
Ersetzen Sie Folgendes:
- HOSTNAME: Die IP-Adresse der Instanz, entweder die öffentliche oder die private IP-Adresse.
- USERNAME: Bei einem IAM-Nutzerkonto ist das die E-Mail-Adresse des Nutzers ohne dem
@
oder den Domainnamen. Geben Sie beispielsweise fürtest-user@example.com
den Werttest-user
ein. Bei einem Dienstkonto ist dies die E-Mail-Adresse des Dienstkontos ohne das Suffix@project-id.iam.gserviceaccount.com
.
MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=REQUIRED \ --host=HOSTNAME \ --user=USERNAME
Wenn
ssl_mode
für Ihre Cloud SQL-Instanz aufTRUSTED_CLIENT_CERTIFICATE_REQUIRED
konfiguriert ist, geben Sie bei der Anmeldung ein Clientzertifikat und einen Clientschlüssel an. Geben Sie außerdem das Serverzertifikatserver-ca.pem
an, damit der Client die Identität des Servers für die gegenseitige Authentifizierung prüfen kann. Beispiel:MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=VERIFY_CA \ --ssl-ca=server-ca.pem \ --ssl-cert=client-cert.pem \ --ssl-key=client-key.pem \ --host=HOSTNAME \ --user=USERNAME
Informationen zum Erstellen eines Clientzertifikats und eines Schlüssels finden Sie unter Clientzertifikate.
Nächste Schritte
- IAM-Datenbankauthentifizierung
- Anmeldedaten in Audit-Logs aktivieren und ansehen
- Nutzer und Dienstkonten erstellen, die die Cloud SQL-IAM-Datenbankauthentifizierung verwenden
- IAM-Richtlinienbindung zu Nutzern oder Dienstkonten hinzufügen
- Nutzer und Dienstkonten für die IAM-Datenbankauthentifizierung verwalten