Bu codelab hakkında
1. Giriş
Genel Bakış
Bu kod laboratuvarında, Cloud Run'dan Identity-Aware Proxy'yi etkinleştirme ve kimlik doğrulama için IAP'ye yönlendirerek Cloud Run hizmetine giden trafiği güvence altına alma hakkında bilgi edinebilirsiniz. Cloud Run'dan IAP'yi etkinleştirerek varsayılan run.app URL'leri ve yük dengeleyiciler dahil tüm giriş yollarından tek tıklamayla trafik yönlendirebilirsiniz.
Bu codelab'de, hello kapsayıcı hizmetini dağıtacaksınız. Hizmete yalnızca IAP kullanılarak izin verilenler listesine eklenen kullanıcılar erişebilir.
Bilinen diğer sınırlamalar için lütfen Cloud Run'da IAP belgelerine göz atın.
Neler öğreneceksiniz?
- Cloud Run için tek tıklamayla IAP'yi etkinleştirme
- IAP aracılığıyla bir kullanıcı kimliğine Cloud Run hizmetine erişim verme
2. Başlamadan önce
API'leri etkinleştir
Bu kod laboratuvarını kullanmaya başlamadan önce aşağıdaki API'leri etkinleştirmek için:
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
iap.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
3. Ortam değişkenleri oluşturma
Bu codelab boyunca kullanılacak ortam değişkenlerini ayarlama
export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=<YOUR_REGION>
export SERVICE_NAME=iap-example
export SERVICE_ACCOUNT_NAME=iap-example-sa
export PROJECT_NUMBER=$(gcloud projects describe "${PROJECT_ID}" --format="value(projectNumber)")
4. IAP'nin etkin olduğu bir hizmeti dağıtma
Aşağıdaki komutu çalıştırarak hizmet hesabını (Cloud Run hizmet kimliği olarak kullanılır) oluşturun:
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="IAP codelab CR identity"
Merhaba kapsayıcı görüntüsünü IAP etkinleştirilmiş şekilde dağıtın.
gcloud beta run deploy ${SERVICE_NAME} \
--image=us-docker.pkg.dev/cloudrun/container/hello \
--region=${REGION} \
--service-account $SERVICE_ACCOUNT_NAME@${PROJECT_ID}.iam.gserviceaccount.com \
--no-allow-unauthenticated \
--iap
Not: Uygulamaya şu anda erişmeye çalışırsanız You don't have access
hata sayfasını görürsünüz. Sonraki adımda, kullanıcıya IAP üzerinden erişim izni vereceksiniz.
5. IAP erişim denetimini yapılandırma
IAP hizmet aracısını oluşturun.
gcloud beta services identity create --service=iap.googleapis.com --project=${PROJECT_ID}
IAP hizmet hesabına Cloud Run Çağırıcı rolünü atama
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-iap.iam.gserviceaccount.com" \
--role="roles/run.invoker"
IAP aracılığıyla belirli kullanıcılara veya gruplara izin vererek kullanıcıya erişim izni verme
EMAIL_ADDRESS=<YOUR_EMAIL>
gcloud beta iap web add-iam-policy-binding \
--resource-type=cloud-run \
--service=${SERVICE_NAME} \
--region=${REGION} \
--member=user:${EMAIL_ADDRESS} \
--role=roles/iap.httpsResourceAccessor \
--condition=None
Not: Dilerseniz üye parametresinde group:grubunuz@example.com değerini de kullanabilirsiniz.
6. Uygulamayı test etme
Uygulamaya erişimi doğrulama
Örnek Cloud Run hizmetinin URL'sini alın.
gcloud run services describe ${SERVICE_NAME} --region ${REGION} --format 'value(status.url)'
URL'yi tarayıcınızda açın. "It's Running! Tebrikler, bir kapsayıcı görüntüsünü Cloud Run'a başarıyla dağıttınız."
Uygulamaya erişimin kaldırıldığını doğrulama
Aşağıdaki komutu çalıştırarak uygulamaya erişiminizi kaldırabilirsiniz.
gcloud beta iap web remove-iam-policy-binding \
--resource-type=cloud-run \
--service=${SERVICE_NAME} \
--region=${REGION} \
--member=user:${EMAIL_ADDRESS} \
--role=roles/iap.httpsResourceAccessor
IAM politikasının dağıtılması için birkaç dakika bekleyin. Şimdi URL'yi tarayıcınızda açmayı deneyin. You don't have access
hata sayfasını görürsünüz.
7. Tebrikler!
Codelab'i tamamladığınız için tebrikler.
Cloud Run IAP dokümanlarını incelemenizi öneririz.
İşlediğimiz konular
- Cloud Run için 1 tıklamayla IAP'yi etkinleştirme
- IAP aracılığıyla bir kullanıcı kimliğine Cloud Run hizmetine erişim verme
8. Temizleme
İstemsiz ödemelerden kaçınmak için (ör. Cloud Run hizmetleri yanlışlıkla ücretsiz kademede aylık Cloud Run çağrısı tahsisatınızdan daha fazla çağrılırsa) 6. adımda oluşturduğunuz iap-example
Cloud Run hizmetini silebilirsiniz.
Cloud Run hizmetini silmek için https://console.cloud.google.com/run adresindeki Cloud Run Cloud Console'a gidin ve iap-example
hizmetini silin.
Projenin tamamını silmek için Kaynakları Yönet'e gidin, projenizi seçin ve Sil'i tıklayın. Projeyi silerseniz Cloud SDK'nızdaki projeleri değiştirmeniz gerekir. gcloud projects list
komutunu çalıştırarak mevcut tüm projelerin listesini görüntüleyebilirsiniz.