Mit SSH können Sie eine sichere, interaktive Shell-Verbindung zu Ihren laufenden Containerinstanzen herstellen. So erhalten Sie direkten Zugriff auf das Dateisystem und die Laufzeitumgebung des Containers und können Systemressourcen prüfen, Konfigurationen verifizieren und Fehler beheben.
SSH für Cloud Run verwendet die folgenden Dienste, um Verbindungen zu sichern:
- Die TCP-Weiterleitung von Identity-Aware Proxy leitet SSH-Verbindungen weiter. Anfragen müssen daher Authentifizierungs- und Autorisierungsprüfungen bestehen, bevor sie Ihren Container erreichen. Sie können IAP-Zugriffsrichtlinien mit kontextsensitivem Zugriff erweitern, um den Zugriff basierend auf Attributen wie IP-Adresse und Endnutzergerät einzuschränken.
- OS Login verwendet die SSH-Zertifikatsauthentifizierung, um Nutzer zu authentifizieren. Wenn Sie eine Verbindung herstellen, erstellt die gcloud CLI ein kurzlebiges SSH-Zertifikat für Sie, das nach fünf Minuten abläuft. Das Zertifikat wird in Ihrem Container validiert. Google prüft die IAM-Berechtigungen bei jedem Anmeldeversuch.
SSH für Cloud Run fügt dem Dateisystem Ihres Containers automatisch die erforderlichen von Google verwalteten Binärdateien hinzu, einschließlich sshd und der Binärdateien, die Ihr Zertifikat validieren. Diese Binärdateien sind nur für die Dauer der SSH-Sitzung zugänglich und werden nach Beendigung der Sitzung entfernt. Vorhandene SSH-Konfigurationen, einschließlich /etc/passwd-Einträgen, werden von Cloud Run SSH zugunsten von Google-verwalteten Konfigurationen ignoriert.
Wenn eine SSH-Sitzung eingerichtet wird, werden die Open-Source-Urheberrechtshinweise von Drittanbietern für von Google verwaltete SSH-Abhängigkeiten in Ihrem Container unter folgendem Pfad bereitgestellt: /usr/share/licenses/google_ssh/THIRD_PARTY_NOTICES.
SSH-Sitzungen und Dienstinstanzen
Beachten Sie Folgendes, wenn Sie eine Verbindung zu einem Dienst über SSH herstellen:
- Wenn keine Instanz des Dienstes ausgeführt wird, startet Cloud Run eine neue Instanz für die SSH-Sitzung.
- Cloud Run versucht, die Dienstinstanz für die Dauer der SSH-Sitzung aktiv zu halten. Die Instanz wird Ihnen wie gewohnt in Rechnung gestellt, solange sie aktiv ist.
Beschränkungen
Für SSH gelten die folgenden Einschränkungen:
- SSH-Sitzungen dauern maximal 24 Stunden. Nach 24 Stunden wird die Sitzung getrennt und Sie müssen die Verbindung wiederherstellen.
- IAP trennt SSH-Sitzungen nach einer Stunde Inaktivität. Weitere Informationen finden Sie unter Bekannte Einschränkungen der IAP-TCP-Weiterleitung.
- SSH ist nur für Dienste verfügbar, die in der Umgebung der zweiten Generation von Cloud Run und auf Cloud Run-Instanzen ausgeführt werden.
- Wenn Sie SSH verwenden, werden Hostschlüssel im Image überschrieben. Die Schlüssel bleiben nach dem Beenden der SSH-Sitzung überschrieben, bis die Dienstinstanz neu gestartet wird.
- Windows: PuTTY wird nicht unterstützt. Verwenden Sie den OpenSSH-Client.
- Bei der Verwendung von SSH sollten Sie besonders darauf achten, Ihren Container zu sichern. Berücksichtigen Sie Best Practices für die Sicherheit, z. B. das Ausführen von Anwendungscode als Nutzer ohne Root-Berechtigung.
- Wenn eine SSH-Verbindung einen Multi-Container-Dienst mit Containerstartreihenfolge (
container-dependencies) kalt startet, wird die Anfrage weitergeleitet, bevor die Containerumgebung bereit ist. Cloud Run gibt einen HTTP-500-Fehler zurück und beendet die neue Instanz sofort. Wenn Sie eine Verbindung über die Google Cloud CLI herstellen, schlägt der Befehl fehl. Stellen Sie zur Problemumgehung nur dann eine SSH-Verbindung her, wenn eine Instanz bereits ausgeführt wird. Senden Sie beispielsweise zuerst eine Anfrage an den Dienst, um eine Instanz zu starten, oder konfigurieren Sie Mindestinstanzen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
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.
-
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.
-
Aktivieren Sie die Cloud Run Admin API, die Cloud Resource Manager API, die Identity-Aware Proxy API und die Cloud OS Login APIs:
gcloud services enable run.googleapis.com \ cloudresourcemanager.googleapis.com \ iap.googleapis.com \ oslogin.googleapis.com
- Installieren und initialisieren Sie die gcloud CLI.
- Aktualisieren Sie die Komponenten:
gcloud components update
-
Windows: Prüfen Sie, ob der OpenSSH-Client installiert ist.
Der OpenSSH-Client ist unter Windows 10 und höher in der Regel standardmäßig installiert. Wenn es nicht installiert ist, können Sie es installieren, indem Sie den folgenden Befehl in PowerShell als Administrator ausführen:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Weitere Informationen finden Sie unter OpenSSH installieren.
- Sehen Sie sich die Preise für Cloud Run an. Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. SSH-Verbindungen werden nach ausgehenden Netzwerk-Byte abgerechnet. Außerdem wird Ihnen die Instanz wie gewohnt in Rechnung gestellt, solange sie für eine SSH-Sitzung aktiv ist.
-
Wenn Ihr Projekt VPC Service Controls (VPC-SC) verwendet, beachten Sie, dass beim Tunneling-Prozess
iaptunnel.googleapis.comals Dienstname und nichtrun.googleapis.comgeprüft wird.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Schritte benötigen:
- Dienstkontonutzer (
roles/iam.serviceAccountUser) für das Dienstkonto - Cloud Run SSH Root Access (
roles/run.sshRoot) für den Dienst - Cloud Run-Betrachter (
roles/run.viewer) für den Dienst - Nutzer IAP-gesicherter Tunnel (
roles/iap.tunnelResourceAccessor) für den Dienst - Cloud Run-Entwickler (
roles/run.developer) für den Dienst - Zugriffsberechtigter für Logbetrachtung (
roles/logging.viewAccessor) für das Projekt - Browser (
roles/browser) für das Projekt - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) für das Projekt - IAP Policy Admin (
roles/iap.admin) für das Projekt für IAP-Verwaltungsvorgänge
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Wenn Sie kein Mitglied der Organisation sind, zu der das Projekt gehört, blockiert Cloud Run den SSH-Zugriff. Wenn Sie SSH-Zugriff erhalten möchten, fügen Sie die Rolle roles/compute.osLoginExternalUser hinzu oder verwenden Sie eine benutzerdefinierte Rolle mit der Berechtigung compute.oslogin.updateExternalUser.
Sie können die Rolle „Nutzer von IAP-gesicherten Tunneln“ auf Projektebene gewähren. Wenn Sie diese Rolle auf einen bestimmten Cloud Run-Dienst oder eine bestimmte Instanz beschränken möchten, führen Sie den folgenden Befehl aus:
Für einen bestimmten Dienst
gcloud beta iap tcp add-iam-policy-binding \
--resource-type=cloud-run \
--service=SERVICE \
--region=REGION \
--member=MEMBER \
--role=roles/iap.tunnelResourceAccessor
Ersetzen Sie Folgendes:
SERVICE: der Name Ihres Dienstes.REGION: die Region, in der Ihr Dienst bereitgestellt wird.MEMBER: die Identität, der Zugriff gewährt werden soll.
Für eine bestimmte Instanz
gcloud beta iap tcp add-iam-policy-binding \
--resource-type=cloud-run \
--instance=INSTANCE \
--region=REGION \
--member=MEMBER \
--role=roles/iap.tunnelResourceAccessor
Ersetzen Sie Folgendes:
INSTANCE: Der Name der Instanz.REGION: die Region, in der Ihr Dienst bereitgestellt wird.MEMBER: die Identität, der Zugriff gewährt werden soll.
Informationen zum Gewähren der roles/iap.tunnelResourceAccessor auf Projekt- und Regionsebene finden Sie unter IAP-Zugriffsrichtlinien konfigurieren.
SSH mit Cloud Run-Diensten verwenden
Konfigurieren Sie den SSH-Zugriff auf Dienstebene und stellen Sie eine SSH-Verbindung zum Dienst her.
SSH-Zugriff auf Dienstebene konfigurieren
Sie können den Prüfzugriff auf einen bestimmten Dienst mit der gcloud CLI oder YAML zulassen:
gcloud
Verwenden Sie den folgenden Befehl, um den Zugriff auf einen vorhandenen Dienst zu aktivieren:
gcloud beta run services update SERVICE --ssh
Sie können den Prüfzugriff auf einen Dienst auch zulassen, indem Sie beim Bereitstellen des Dienstes das Flag --ssh verwenden.
YAML
Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/ssh-enabled: "true" run.googleapis.com/launch-stage: BETA spec: template: spec: containers: image: IMAGE_URLErsetzen Sie Folgendes:
SERVICE: der Name Ihres Cloud Run-Dienstes.REGION: die Google Cloud -Region, z. B.us-central1.IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run services replace service.yaml
Der Befehl
gcloud run services replaceverwendet standardmäßig die Dateiservice.yaml, falls vorhanden.
Sie können den SSH-Zugriff für einzelne Dienste über die gcloud CLI oder YAML deaktivieren:
gcloud
Verwenden Sie den folgenden Befehl, um den Zugriff auf den Dienst zu deaktivieren:
gcloud beta run services update SERVICE --no-ssh
YAML
Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/ssh-enabled: "false" run.googleapis.com/launch-stage: BETA spec: template: spec: containers: image: IMAGE_URLErsetzen Sie Folgendes:
SERVICE: der Name Ihres Cloud Run-Dienstes.REGION: die Google Cloud -Region, z. B.us-central1.IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run services replace service.yaml
Der Befehl
gcloud run services replaceverwendet standardmäßig die Dateiservice.yaml, falls vorhanden.
SSH-Verbindung zum Dienst herstellen
Verwenden Sie die gcloud CLI, um eine SSH-Verbindung zu einem Dienst herzustellen:
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Dienste:
Klicken Sie auf einen Dienst, um die Seite Dienstdetails zu öffnen.
Wählen Sie SSH aus. Dadurch wird Cloud Shell mit dem gcloud-SSH-Befehl geöffnet.
Drücken Sie die Eingabetaste.
Wenn Sie aufgefordert werden, eine Passphrase für den SSH-Schlüssel einzugeben, können Sie das Feld leer lassen. Wenn Sie jedoch eine Passphrase eingeben, müssen Sie für alle nachfolgenden SSH-Sitzungen aus demselben Arbeitsbereich dieselbe Passphrase verwenden.
Wenn die SSH-Sitzung erfolgreich abgeschlossen wurde, wird in Cloud Run die folgende Meldung angezeigt:
Project: PROJECT_ID Region:REGIONService: SERVICE Revision: REVISION Instance: INSTANCE_ID Container: CONTAINER Image: IMAGEGeben Sie
exitein, um die SSH-Sitzung zu beenden. Alle Änderungen, die Sie am Container vorgenommen haben, bleiben so lange erhalten, wie der Container aktiv ist. Wenn Sie die Sitzung beenden, wird der Container nicht neu gestartet oder beendet.
gcloud
Verwenden Sie den folgenden Google Cloud CLI-Befehl, um über SSH eine Verbindung zu einem Dienst herzustellen:
gcloud beta run services ssh SERVICE --region=REGION --project=PROJECT_ID
Ersetzen Sie Folgendes:
SERVICE: der Name Ihres Dienstes.REGION: die Region, in der Ihr Dienst bereitgestellt wird.PROJECT_ID: die Projekt-ID von Google Cloud .
Wenn Sie aufgefordert werden, eine Passphrase für den SSH-Schlüssel einzugeben, können Sie das Feld leer lassen. Wenn Sie jedoch eine Passphrase eingeben, müssen Sie für alle nachfolgenden SSH-Sitzungen aus demselben Arbeitsbereich dieselbe Passphrase verwenden.
Wenn die SSH-Sitzung erfolgreich abgeschlossen wurde, wird in Cloud Run die folgende Meldung angezeigt:
Project: PROJECT_ID
Region: REGION
Service: SERVICE
Revision: REVISION
Instance: INSTANCE_ID
Container: CONTAINER
Image: IMAGE
Geben Sie exit ein, um die SSH-Sitzung zu beenden. Alle Änderungen, die Sie am Container vorgenommen haben, bleiben so lange erhalten, wie der Container aktiv ist. Wenn Sie die Sitzung beenden, wird der Container nicht neu gestartet oder beendet.
Dienstinstanz angeben
Wenn Sie über SSH eine Verbindung zu einer bestimmten Dienstinstanz herstellen möchten, verwenden Sie die Google Cloud CLI.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Dienste:
Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.
Wählen Sie Logs aus.
Klicken Sie auf den Logeintrag für Ihre Dienstinstanz, um ihn zu maximieren.
Wählen Sie SSH-Verbindung zu dieser Instanz herstellen aus. Dadurch wird Cloud Shell mit dem gcloud-SSH-Befehl geöffnet.
Drücken Sie die Eingabetaste.
gcloud
Verwenden Sie den folgenden Google Cloud CLI-Befehl, um über SSH eine Verbindung zu einer Cloud Run-Dienstinstanz herzustellen:
gcloud beta run services ssh SERVICE --region=REGION --project=PROJECT_ID \
--revision=REVISION \
--instance=INSTANCE_ID
Ersetzen Sie Folgendes:
SERVICE: der Name Ihres Dienstes.REGION: die Region, in der Ihr Dienst bereitgestellt wird.PROJECT_ID: die Projekt-ID von Google Cloud .REVISION: der Name der Version.INSTANCE_ID: Instanz-ID. Die Dienstinstanz-ID finden Sie auf der Seite Logs im Bereich Beobachtbarkeit. Die Instanz-ID befindet sich im Feldlabelsfür einen Logeintrag. Sie können die Instanz-ID nicht finden, wenn Sie die jeweilige Instanz beenden, bevor Sie eine Verbindung zu ihr herstellen.
Version angeben
Wenn Sie über SSH eine Verbindung zu einer bestimmten Version herstellen möchten, verwenden Sie die Google Cloud CLI.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Dienste:
Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.
Wählen Sie Überarbeitungsverlauf aus.
Klicken Sie rechts neben der Version, auf die Sie per SSH zugreifen möchten, auf das Dreipunkt-Menü.
Wählen Sie SSH-Verbindung zu Versionen herstellen aus. Dadurch wird Cloud Shell mit dem gcloud-SSH-Befehl geöffnet.
Drücken Sie die Eingabetaste.
gcloud
Verwenden Sie den folgenden Google Cloud CLI-Befehl, um eine SSH-Verbindung zu einer Cloud Run-Dienstversion herzustellen:
gcloud beta run services ssh SERVICE --region=REGION --project=PROJECT_ID --revision=REVISION
Ersetzen Sie Folgendes:
SERVICE: der Name Ihres Dienstes.REGION: die Region, in der Ihr Dienst bereitgestellt wird.PROJECT_ID: die Projekt-ID von Google Cloud .REVISION: der Name der Version.
SSH mit Cloud Run-Instanzen verwenden
SSH-Zugriff auf Instanzebene konfigurieren und über SSH eine Verbindung zur Instanz herstellen
SSH-Zugriff auf Instanzebene konfigurieren
SSH ist für Instanzen standardmäßig aktiviert.
Sie können den SSH-Zugriff für einzelne Instanzen mit der gcloud CLI oder YAML deaktivieren:
gcloud
Verwenden Sie den folgenden Befehl, um den Zugriff auf die Instanz zu deaktivieren:
gcloud beta run instances update INSTANCE --no-ssh
YAML
Wenn Sie eine neue Instanz erstellen, überspringen Sie diesen Schritt. Wenn Sie eine vorhandene Instanz aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/ssh-enabled: "false" run.googleapis.com/launch-stage: BETA spec: containers: image: IMAGE_URLErsetzen Sie Folgendes:
INSTANCE: der Name Ihrer Cloud Run-Instanz.REGION: die Google Cloud -Region, z. B.us-central1.IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latest
Erstellen oder aktualisieren Sie die Instanz mit dem folgenden Befehl:
gcloud beta run instances replace instance.yaml
Sie können den Prüfzugriff auf eine bestimmte Instanz mit der gcloud CLI oder YAML zulassen.
gcloud
Verwenden Sie den folgenden Befehl, um den Zugriff auf eine vorhandene Instanz zu aktivieren:
gcloud beta run instances update INSTANCE --ssh
Sie können den Prüfzugriff auf eine Instanz auch zulassen, indem Sie beim Bereitstellen der Instanz das Flag --ssh verwenden.
YAML
Wenn Sie eine neue Instanz erstellen, überspringen Sie diesen Schritt. Wenn Sie eine vorhandene Instanz aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Das folgende Beispiel enthält die YAML-Konfiguration:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/ssh-enabled: "true" run.googleapis.com/launch-stage: BETA spec: containers: image: IMAGE_URLErsetzen Sie Folgendes:
INSTANCE: der Name Ihrer Cloud Run-Instanz.REGION: die Google Cloud -Region, z. B.us-central1.IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latest
Erstellen oder aktualisieren Sie die Instanz mit dem folgenden Befehl:
gcloud beta run instances replace instance.yaml
Stellen Sie mit SSH eine Verbindung zur Instanz her:
Verwenden Sie den folgenden Google Cloud CLI-Befehl, um über SSH eine Verbindung zu einer Instanz herzustellen:
gcloud beta run instances ssh INSTANCE --region=REGION --project=PROJECT_ID
Ersetzen Sie Folgendes:
INSTANCE: Der Name der Instanz.REGION: die Region, in der Ihr Dienst bereitgestellt wird.PROJECT_ID: die Projekt-ID von Google Cloud .
Wenn Sie aufgefordert werden, eine Passphrase für den SSH-Schlüssel einzugeben, können Sie das Feld leer lassen. Wenn Sie jedoch eine Passphrase eingeben, müssen Sie für alle nachfolgenden SSH-Sitzungen aus demselben Arbeitsbereich dieselbe Passphrase verwenden.
Wenn die SSH-Sitzung erfolgreich abgeschlossen wurde, wird in Cloud Run die folgende Meldung angezeigt:
Project: PROJECT_ID
Region: REGION
Instance: INSTANCE
Revision: REVISION
Container: CONTAINER
Image: IMAGE
Geben Sie exit ein, um die SSH-Sitzung zu beenden.
Verbindung über den OpenSSH-Client herstellen
So stellen Sie eine Verbindung über Ihren OpenSSH-Client her:
- Führen Sie den Befehl
gcloud beta run services sshfür den Zieldienst aus. Dadurch wird der SSH-Tunnel initiiert und das Zertifikat generiert. Fügen Sie Ihrer SSH-Konfiguration Folgendes hinzu:
Host cloud-run-ssh HostName cloud-run-default User root IdentityFile /Users/USER/.ssh/google_compute_engine CertificateFile /Users/USER/.ssh/google_compute_engine_cert/PROJECT_ID_REGION_SERVICE-cert.pub CheckHostIP no HashKnownHosts no HostKeyAlias cloud-run-default IdentitiesOnly yes StrictHostKeyChecking no UserKnownHostsFile /dev/null ProxyUseFdpass no ProxyCommand /usr/local/bin/python3 -S /Users/USER/google-cloud-sdk/lib/gcloud.py beta run start-iap-tunnel --project_number=PROJECT_NUMBER --project_id=PROJECT_ID --workload_type=service --deployment_name=SERVICE --region=REGIONErsetzen Sie Folgendes:
USER: der Nutzername auf Ihrem lokalen Computer.PROJECT_ID: die Projekt-ID von Google Cloud .PROJECT_NUMBER: die Projektnummer von Google Cloud .REGION: die Region, in der Ihr Dienst bereitgestellt wird.SERVICE: der Name Ihres Dienstes.
Wenn die gcloud CLI in einem anderen Ordner installiert ist, müssen Sie möglicherweise den Speicherort in der letzten Zeile aktualisieren.
Führen Sie dazu diesen Befehl aus:
ssh cloud-run-ssh
Ihr SSH-Zertifikat läuft nach fünf Minuten ab. Wenn Sie nach fünf Minuten versuchen, eine SSH-Verbindung zu Ihrem Dienst herzustellen, müssen Sie gcloud beta run services ssh noch einmal ausführen, um das Zertifikat neu zu generieren.
SSH-Zugriffslogs
Wenn Sie Audit-Logs für die SSH-Schlüsselverwaltung erfassen möchten, müssen Sie Audit-Logs für die Cloud OS Login API aktivieren. Weitere Informationen finden Sie unter OS Login-Audit-Logs aufrufen. Für den Zugriff auf SSH-Logs von Cloud Run-Ressourcen benötigen Sie Zugriff auf Cloud-Audit-Logs für das entsprechende Projekt.
Im folgenden Beispiel werden alle Cloud Run-Dienste für den letzten Tag abgefragt:
gcloud logging read '
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access" AND
protoPayload.serviceName="oslogin.googleapis.com" AND
protoPayload.request.instance:"run.googleapis.com"
' --project=PROJECT_ID \
--freshness=1d \
--format="table(timestamp, protoPayload.authenticationInfo.principalSubject:label=USER, protoPayload.request.instance:label=CLOUD_RUN_SERVICE)"
SSH-Zugriff sichern und steuern
Sie können festlegen, wer SSH verwenden darf und wie es in Ihrer Umgebung eingeschränkt wird.
SSH-Zugriff mit Organisationsrichtlinien deaktivieren
Wenn Sie eine Organisationsrichtlinie zum Deaktivieren von SSH festlegen möchten, verwenden Sie die benutzerdefinierte Einschränkung, die das Aktivieren des SSH-Debugging-Zugriffs für Cloud Run-Dienste einschränkt.
Nächste Schritte
- Weitere Informationen zur Fehlerbehebung bei Cloud Run-Problemen
- Weitere Informationen zur Fehlerbehebung bei Cloud Run-Diensten
- Bekannte Probleme in Cloud Run