Blog
So greifen Sie von Google Cloud Build über den Identity Aware Proxy auf private GKE-Cluster zu

In diesem Blogbeitrag zeige ich Ihnen, wie Sie von Google Cloud Build aus über den Identity Aware Proxy auf einen privaten GKE-Cluster zugreifen können. Im
den IAP- und GKE-Server-Proxy bereitstellen
Um das IAP und den GKE-Server-Proxy einzusetzen, folgen Sie den Anweisungen in der README von github.com/binxio/simple-iap-proxy. Danach müssen Sie in Ihrem Cloud-Build-Job:
- die erforderlichen IAP-Parameter abrufen
- ein Zertifikat erzeugen
- Starten Sie den HTTPS-Proxy
- setzen Sie den kubectl-Kontext so, dass er auf den Proxy zeigt, und schon sind Sie bereit für die Bereitstellung!
die erforderlichen IAP-Parameter abrufen
Um eine Verbindung über einen IAP-Proxy herzustellen, benötigen Sie Folgendes:
- die Ziel-URL, an der der Reverse-Proxy lauscht
- die Zielgruppe der IAP-Anwendung
- und das Dienstkonto, das den Zugriff über den IAP-Proxy gewährt. Dieses Beispiel speichert diese Parameter als Google Secret Manager-Geheimnisse. Das folgende Snippet macht diese Werte als Umgebungsvariablen im Cloud Build-Job verfügbar.
availableSecrets:
secretManager:
- env: AUDIENCE
versionName: projects/${PROJECT_ID}/secrets/simple-iap-proxy-audience/versions/latest
- env: SERVICE_ACCOUNT
versionName: projects/${PROJECT_ID}/secrets/simple-iap-proxy-service-account/versions/latest
- env: TARGET_URL
versionName: projects/${PROJECT_ID}/secrets/simple-iap-proxy-target-url/versions/latest
das Zertifikat generieren
Im ersten Schritt wird ein Zertifikat generiert, das der HTTPS-Proxy verwendet, um sichere Verbindungen herzustellen:
- id: generate certificate
name: gcr.io/binx-io-public/simple-iap-proxy:0.5.2
args: [
"generate-certificate",
"--key-file", "server.key",
"--certificate-file", "server.crt",
"--dns-name", "simple-iap-proxy"
]
Starten Sie den HTTPS-Proxy
Der nächste Schritt startet den HTTPS-Proxy als Hintergrundprozess im Cloud-Build-Auftrag. Wie Sie sehen können, wird der Docker-Container im Netzwerk
- id: start simple-iap-proxy
name: gcr.io/cloud-builders/docker
secretEnv:
- AUDIENCE
- TARGET_URL
- SERVICE_ACCOUNT
entrypoint: /bin/sh
args:
- -c
- >
docker run -d --rm -v /workspace:/workspace -w /workspace
--network cloudbuild --name simple-iap-proxy
gcr.io/binx-io-public/simple-iap-proxy:0.5.2 client
--to-gke
--port 8080
--target-url $$TARGET_URL
--iap-audience $$AUDIENCE
--service-account $$SERVICE_ACCOUNT
--use-default-credentials
--key-file server.key
--certificate-file server.crt &&
sleep 2
den kubectl-Kontext festlegen
Im letzten Schritt wird der kubectl-Kontext so eingestellt, dass er über den Proxy auf Ihren Cluster verweist:
- id: get credentials for cluster
name: gcr.io/cloud-builders/gcloud
entrypoint: gcloud
args: [
"container", "clusters",
"get-credentials", "${_CLUSTER_NAME}",
"--internal-ip",
"--zone", "${_CLUSTER_ZONE}"
]
- id: setup kubectl to use proxy
name: gcr.io/cloud-builders/kubectl
entrypoint: /bin/sh
args:
- -c
- context_name=$(kubectl config current-context) &&
kubectl config set clusters.$context_name.certificate-authority-data "$(base64 < server.crt)" &&
kubectl config set clusters.$context_name.proxy-url https://simple-iap-proxy:8080 &&
kubectl cluster-info
bereit!
Das ist alles, was Sie wissen müssen. Sie können kubectl, helm oder jedes andere Tool verwenden, wie Sie wollen!
- id: deploy to gke
name: gcr.io/cloud-builders/kubectl
entrypoint: kubectl
args:
- cluster-info
Fazit
Da Google Cloud Build das Starten von Containern im Hintergrund erlaubt, ist es möglich, den simple-iap-proxy-Client zu starten, um über den Identity Aware Proxy eine Verbindung zu einem privaten GKE-Cluster herzustellen.
Verfasst von

Mark van Holsteijn
Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.
Unsere Ideen
Weitere Blogs
Contact



