Cloud Identity-Aware Proxy (Cloud IAP) lets Google Cloud Platform (GCP) customers manage access to apps running in App Engine standard environment, App Engine flexible environment, Compute Engine, and Google Kubernetes Engine.
Cloud IAP can also target apps hosted on-premises or on other cloud providers with a Cloud IAP connector. This configurable Cloud Deployment Manager template creates the resources needed to host and deploy the Cloud IAP connector into a Cloud IAP-enabled GCP project, forwarding authenticated and authorized requests to your app.
Within a GCP project, a Cloud IAP connector deploys an Ambassador proxy on a Google Kubernetes Engine (GKE) cluster. This proxy routes traffic secured by Cloud IAP to your app, indirectly applying Cloud Identity and Access Management (Cloud IAM) access policies.
The following is a summary of the steps required to enable Cloud IAP for your on-premises app. For detailed instructions, see Enabling Cloud IAP for on-premises apps.
-
Enable the following APIs:
-
Grant the Kubernetes Engine Admin role to the default service account,
[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
, by going to the Cloud IAM page. -
Upload your SSL certificate(s) for your domain to Google Compute Engine (GCE).
gcloud compute ssl-certificates create [CERTIFICATE_NAME] --private-key=[PRIVATE_KEY_FILE].pem --certificate=[CERTIFICATE_FILE].pem
-
To fit your deployment needs, set routing rules and overwrite default parameters in
iap-connector.yaml
file. See the Cloud IAP for on-premises apps overview for information about routing rules. -
Deploy the Cloud IAP connector.
gcloud deployment-manager deployments create <deployment_name> --config=iap-connector.yaml
-
Associate your source domain with the public IPv4 address of the load balancer by updating the DNS resource records within your domain manager.
-
Turn on Cloud IAP for your app and set what members have access from the Identity-Aware Proxy page.
-
Ensure traffic to your app has been forwarded from the Cloud IAP connector by checking the header of a request.