Looker PSC Güneye Bağlı HTTPS İnternet NEG

1. Giriş

Bu kod laboratuvarında, dahili bir TCP proxy yük dengeleyici ve Looker PSC'den Hizmet Tüketicisi olarak çağrılan internet ağı uç noktası grubu (NEG) kullanarak GitHub'a kuzeye doğru bir HTTPS bağlantısı gerçekleştireceksiniz.

Private Service Connect, tüketicilerin yönetilen hizmetlere VPC ağları içinden özel olarak erişmesine olanak tanıyan bir Google Cloud ağ iletişimi özelliğidir. Benzer şekilde, yönetilen hizmet üreticilerinin bu hizmetleri kendi ayrı VPC ağlarında barındırmasına ve tüketicilerine özel bir bağlantı sunmasına olanak tanır. Örneğin, Looker'a erişmek için Private Service Connect'i kullandığınızda hizmet tüketicisi siz olursunuz ve Google, Şekil 1'de belirtildiği gibi hizmet üreticisi olur.

Şekil 1.

145ea4672c3a3b14.png

Ters PSC olarak da bilinen güneye giden erişim, Tüketici'nin şirket içindeki uç noktalara, bir VPC'de, yönetilen hizmetlere ve internete Looker erişimine izin vermek için Üretici olarak bir Yayınlanmış Hizmet oluşturmasını sağlar. Güneye doğru bağlantılar, Şekil 2'de belirtildiği gibi Looker PSC'nin dağıtıldığı yerden bağımsız olarak herhangi bir bölgede dağıtılabilir.

Şekil 2.

259493afd914f68b.png

Neler öğreneceksiniz?

  • Ağ gereksinimleri
  • Private Service Connect üretici hizmeti oluşturma
  • Looker'da Private Service Connect uç noktası oluşturma
  • Test bağlantısı kullanarak Looker'dan GitHub'a bağlantı kurma

Gerekenler

def88091b42bfe4d.png

2. Neler oluşturacaksınız?

Dahili TCP proxy yük dengeleyicisini ve Private Service Connect (PSC) aracılığıyla hizmet olarak yayınlanan Internet NEG'yi dağıtmak için looker-psc-demo adında bir Üretici ağı kuracaksınız. Yayınlandıktan sonra, Producer hizmetine doğrulama erişimini doğrulamak için şu işlemleri yapacaksınız:

  • Looker'da, Yapımcı hizmet eki ile ilişkili bir PSC uç noktası oluşturun
  • Yeni bir proje oluşturmak ve GitHub.com ile HTTPS bağlantısını test etmek için Looker Console'u kullanma

3. Ağ gereksinimleri

Aşağıda, üretici ağı için ağ koşullarının dökümü verilmiştir. Bu kod laboratuvarındaki tüketici, Looker PSC örneğidir.

Bileşenler

Açıklama

VPC (looker-psc-demo)

Özel mod VPC

PSC NAT Alt Ağı

Tüketici VPC ağından gelen paketler, kaynak NAT (SNAT) kullanılarak çevrilir. Böylece bu paketlerin orijinal kaynak IP adresleri, üreticinin VPC ağındaki NAT alt ağından kaynak IP adreslerine dönüştürülür.

PSC yönlendirme kuralı alt ağı

Bölgesel Dahili TCP Proxy Yük Dengelemesi için IP adresi ayırmak amacıyla kullanılır.

PSC NEG Alt Ağı

Ağ uç noktası grubu için IP adresi tahsis etmek üzere kullanılır.

Yalnızca Proxy Alt Ağı

Yük dengeleyicinin proxy'lerinin her birine bir dahili IP adresi atanır. Bir proxy'den arka uç sanal makinesine veya uç noktasına gönderilen paketlerin kaynak IP adresi, yalnızca proxy alt ağından alınır.

İnternet NEG

Yük dengeleyici için harici bir arka uç tanımlamak amacıyla kullanılan bir kaynak. Uç noktaya yalnızca Cloud VPN veya Cloud Interconnect üzerinden erişilemez.

Arka Uç Hizmeti

Arka uç hizmeti, yük dengeleyiciniz ile arka uç kaynaklarınız arasında bir köprü görevi görür. Eğiticide arka uç hizmeti, internet NEG ile ilişkilendirilir.

Cloud Router

Cloud NAT, kontrol düzlemi özellikleri için Cloud Yönlendiricileri kullanır ancak BGP oturumu yönetimi için kullanmaz.

Cloud NAT

Bölgesel internet NEG, internet çıkışı için Cloud NAT 'den yararlanır.

4. Codelab topolojisi

4e7ac0fd4a61ed9b.png

5. Kurulum ve Gereksinimler

Kendi hızınızda ortam kurulumu

  1. Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Proje adı, bu projenin katılımcılarının görünen adıdır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. İstediğiniz zaman güncelleyebilirsiniz.
  • Proje Kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, benzersiz bir dize otomatik olarak oluşturur. Bu dizenin ne olduğu genellikle önemli değildir. Çoğu kod laboratuvarında proje kimliğinize (genellikle PROJECT_ID olarak tanımlanır) referans vermeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele başka bir kimlik oluşturabilirsiniz. Alternatif olarak, kendi anahtarınızı deneyerek kullanılabilir olup olmadığını görebilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır.
  • Bazı API'lerin kullandığı üçüncü bir değer (Proje Numarası) olduğunu belirtmek isteriz. Bu değerlerin üçü hakkında daha fazla bilgiyi dokümanlar bölümünde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırmanın tekrarlanmasını önlemek amacıyla kaynakları kapatmak için oluşturduğunuz kaynakları silebilir veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Cloud Shell'i başlatma

Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

Google Cloud Console'da, sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

55efc1aaa7a4d3ad.png

Ortam sağlanıp bağlantı kurulabilmesi için birkaç saniye beklemeniz gerekir. İşlem tamamlandığında aşağıdakine benzer bir ekran görürsünüz:

7ffe5cbb04455448.png

İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansını ve kimlik doğrulamayı büyük ölçüde iyileştirir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Herhangi bir şey yüklemeniz gerekmez.

6. Başlamadan önce

API'leri etkinleştir

Cloud Shell'de proje kimliğinizin ayarlandığından emin olun:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Gerekli tüm hizmetleri etkinleştirin:

gcloud services enable compute.googleapis.com

7. Üretici VPC Ağı Oluşturma

VPC Ağı

Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks create looker-psc-demo --subnet-mode custom

Alt Ağ oluşturma

PSC alt ağı, ağ adresi çevirisi amacıyla PSC hizmet eki ile ilişkilendirilir.

Cloud Shell'in içinde PSC NAT Alt Ağı'nı oluşturun:

gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

Cloud Shell'de üretici yönlendirme kuralı alt ağını oluşturun:

gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Cloud Shell'de, üretici bölgesel yalnızca proxy alt ağını oluşturun:

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

Herkese açık NAT ağ geçidi oluşturma

NAT Gateway, –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB yapılandırma seçeneğiyle internet çıkışı için bölgesel dahili TCP proxy yük dengeleyicisi tarafından kullanılır. Bu nedenle, aynı NATGW GCE/GKE internet çıkışını desteklemez. GCE/GKE internet çıkışı için –endpoint-types=ENDPOINT_TYPE_VM ile ek bir NAT GW dağıtın.

Cloud Shell'in içinde Cloud Router'ı oluşturun:

gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region

Cloud Shell'de, TCP proxy yük dengeleyici için internet çıkışını etkinleştiren Cloud NAT ağ geçidini oluşturun:

gcloud compute routers nats create looker-psc-demo-natgw \
  --router=looker-psc-demo-cloud-router \
  --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
  --nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
  --auto-allocate-nat-external-ips \
  --region=$region

Yük dengeleyicinin IP adresini ayırma

Cloud Shell'in içinde yük dengeleyici için dahili bir IP adresi ayırın:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

Cloud Shell'de ayrılmış IP adresini görüntüleyin.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

Örnek çıkış:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

İnternet NEG'yi ayarlama

Bir internet NEG oluşturun ve –network-endpoint-type değerini internet-fqdn-port (harici arka ucunuza ulaşılabilecek ana makine adı ve bağlantı noktası) olarak ayarlayın.

Cloud Shell'in içinde github.com için kullanılan bir İnternet NEG oluşturun

gcloud compute network-endpoint-groups create github-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

Cloud Shell'de, github-internet-neg adlı internet NEG'sini github.com FQDN'si ve 443 bağlantı noktasıyla güncelleyin.

gcloud compute network-endpoint-groups update github-internet-neg \
    --add-endpoint="fqdn=github.com,port=443" \
    --region=$region

Ağ Güvenlik Duvarı Politikası ve Güvenlik Duvarı Kuralları Oluşturma

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute network-firewall-policies create looker-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy

Aşağıdaki güvenlik duvarı kuralı, PSC NAT Alt Ağı aralığından ağdaki tüm örneklere giden trafiğe izin verir.

Cloud Shell'de aşağıdakileri yapın:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

8. Üretici Hizmeti Oluşturma

Yük Dengeleyici Bileşenleri Oluşturma

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=github-internet-neg --network-endpoint-group-region=$region --region=$region

Cloud Shell'de, istekleri arka uç hizmetinize yönlendirmek için bir hedef TCP proxy'si oluşturun:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

Aşağıdaki söz diziminde bir iletim kuralı (dahili TCP proxy yük dengeleyici) oluşturun.

Cloud Shell'de aşağıdaki işlemleri gerçekleştirin:

gcloud compute forwarding-rules create producer-github-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

Hizmet Eki Oluşturma

Cloud Shell'de github-svc-attachment-https hizmet ekini oluşturun:

gcloud compute service-attachments create github-svc-attachment-https --region=$region --producer-forwarding-rule=producer-github-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

Ardından, Looker'da PSC uç noktasını yapılandırmak için projelerden başlayarak selfLink URI'sinde listelenen Hizmet Eki'ni alın ve not edin.

selfLink: projects/<proje-kimliğiniz>/regions/<bölgeniz>/serviceAttachs/github-svc-attachment-https

Cloud Shell'de aşağıdakileri yapın:

gcloud compute service-attachments describe github-svc-attachment-https --region=$region

Örnek:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-08-30T09:44:03.883-07:00'
description: ''
enableProxyProtocol: false
fingerprint: RfKh3blWZE0=
id: '2897904404386302012'
kind: compute#serviceAttachment
name: github-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '19348441121424360'
  low: '2897904404386302012'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-github-fr

Cloud Console'da şu konuma gidin:

Ağ Hizmetleri → Private Service Connect → Yayınlanan Hizmetler

a8cae886441d9c25.png

84a906b3bedabeee.png

9. Looker'da PSC Uç Nokta Bağlantısı Oluşturma

Aşağıdaki bölümde, tek bir alan için Cloud Shell'deki use –psc-service-attachment flag'lerini kullanarak Producers Hizmet Eki'ni Looker Core PSC ile ilişkilendireceksiniz.

Cloud Shell'de, aşağıdaki parametreleri ortamınızla eşleşecek şekilde güncelleyerek psc ilişkilendirmesini oluşturun:

  • INSTANCE_NAME: Looker (Google Cloud core) örneğinizin adı.
  • ALAN_1: github.com
  • SERVICE_ATTACHMENT_1: Hizmet Eki'nin tanımlanması sırasında yakalanan URI: github-svc-attachment-https.
  • REGION: Looker (Google Cloud Core) örneğinizin barındırıldığı bölge.

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Örnek:

gcloud looker instances update looker-psc-instance \
--psc-service-attachment  domain=github.com,attachment=projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https \
--region=$region

Cloud Shell'de serviceAttachments connectionStatus değerinin "ACCEPTED" olduğunu doğrulayın, Looker PSC INSTANCE_NAME ile güncelleyin

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Örnek:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Örnek:

{
  "adminSettings": {},
  "createTime": "2024-08-23T00:00:45.339063195Z",
  "customDomain": {
    "domain": "cosmopup.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.12.28",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
    "projects/$project/global/networks/looker-psc-demo",
      "projects/$project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "github.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-30T17:47:33.440271635Z"
}

Cloud Console'da PSC uç noktasını doğrulama

Cloud Console'dan PSC bağlantısını doğrulayabilirsiniz

Cloud Console'da şuraya gidin:

Looker → Looker Örneği → Ayrıntılar

2d4684d722d31e4b.png

ef907280833bcad.png

10. GitHub'a Bağlantıyı Test Etme

Aşağıdaki adımlarda, github.com ile HTTPS bağlantısını doğrulamak için bir proje oluşturmak üzere Looker Console'u kullanacaksınız.

11. Yeni proje oluştur

Geliştirme modunu etkinleştirme

Looker Console'da şuraya gidin:

Geliştirme modunu etkinleştirin (sol alttaki sayfa). Seçildikten sonra "Geliştirme modundasınız" banner'ı gösterilir.

70c9ded749decfbe.png

Yeni proje oluşturma

Cloud Console'da şuraya gidin:

Geliştirme → Projeler

e8ae11e0392a776d.png

Yeni LookML Projesi Seçin

65a3c2573e97e1e9.png

Bir proje adı girin, Boş Proje'yi ve ardından Proje Oluştur'u seçin.

9185808e001fa540.png

Git'i Yapılandır'ı seçin

42f5e51ce70642ad.png

Git'i yapılandır

Depo URL'sini HTTPS github ayrıntılarınızla güncelleyin, URL'ye .git eklediğinizden emin olun ve ardından Devam'ı seçin.

f5c448f6659b8fc1.png

Örnek:

4065ab1d196589f.png

Seçimi GitHub kullanıcı adınız ve Kişisel Erişim Jetonu (klasik) ile güncelleyin, ardından Test Et ve Kurulumu Tamamla'yı seçin.

1dc44d63c555a9ae.png

Git işlemlerini seçme

b5903668a50a99ca.png

Git Bağlantısını Test Et'i seçin

51b722e84f2df38c.png

Git Bağlantısı Testini Doğrulama

a33584380b788b6d.png

Temizleme

Tek bir Cloud Shell terminalinden laboratuvar bileşenlerini silme

gcloud compute service-attachments delete github-svc-attachment-https --region=$region -q

gcloud compute forwarding-rules delete producer-github-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy  --name=looker-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q

gcloud compute routers nats delete looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q

gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q

gcloud compute network-endpoint-groups delete github-internet-neg --region=$region -q

gcloud compute addresses delete internet-neg-lb-ip --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud compute networks delete looker-psc-demo -q

12. Tebrikler

Tebrikler, Private Service Connect tarafından desteklenen Looker Console'u kullanarak GitHub bağlantısını başarıyla yapılandırdınız ve doğruladınız.

Üretici altyapısını oluşturdunuz ve Producer hizmetine bağlanmayı sağlayan bir internet NEG, Üretici Hizmeti ve Looker PSC uç noktası oluşturmayı öğrendiniz.

Cosmopup, codelab'lerin muhteşem olduğunu düşünüyor!!

c911c127bffdee57.jpeg

Sırada ne var?

Bu codelab'lerden bazılarına göz atın...

Daha fazla bilgi ve Videolar

Referans belgeler