Looker PSC Güneye Yönelik HTTPS İnternet NEG SMTP

1. Giriş

Bu codelab'de, dahili bir TCP proxy yük dengeleyici ve internet ağı uç nokta grubu (NEG) kullanarak Looker SMTP hizmetiyle güneye giden bir bağlantı oluşturacaksınız. Bu bağlantıda, Hizmet Tüketicisi olarak Looker PSC'den çağrılan FQDN notifications-pa.googleapis.com yer alır.

Özel Hizmet Bağlantısı, Google Cloud ağ iletişiminin, tüketicilerin yönetilen hizmetlere VPC ağlarının içinden özel olarak erişmesine olanak tanıyan bir ö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 Şekil 1'de belirtildiği gibi hizmet tüketicisi siz olursunuz ve Google hizmet üreticisi olur.

Şekil 1.

145ea4672c3a3b14.png

Ters PSC olarak da bilinen Güneye doğru erişim, Tüketici'nin, Looker'ın şirket içi, VPC'de, yönetilen hizmetlere ve internete erişmesine izin vermek için Üretici olarak Yayınlanan Hizmet oluşturmasına olanak tanır. Güneye giden bağlantılar, Şekil 2'de vurgulandığı 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
  • Lookers SMTP hizmetine bağlantı kurma

Gerekenler

def88091b42bfe4d.png

2. Neler oluşturacaksınız?

Private Service Connect (PSC) üzerinden hizmet olarak yayınlanan dahili TCP proxy yük dengeleyiciyi ve Internet NEG'yi dağıtmak için looker-psc-demo adlı bir üretici ağı oluşturursunuz. Yayınlandıktan sonra, Producer hizmetine erişim doğrulaması için aşağıdaki işlemleri gerçekleştirirsiniz:

  • Looker'da üretici hizmet eki ile ilişkili bir PSC uç noktası oluşturma
  • SMTP posta ayarları oluşturmak 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ğındaki paketler, kaynak NAT (SNAT) kullanılarak çevrilir. Böylece, orijinal kaynak IP adresleri, üreticinin VPC ağındaki NAT alt ağındaki kaynak IP adreslerine dönüştürülür.

PSC iletim kuralı alt ağı

Bölgesel Dahili TCP Proxy Yük Dengeleyici 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. Proxy'den arka uç sanal makinesine veya uç noktaya gönderilen paketler, yalnızca proxy alt ağından gelen bir kaynak IP adresine sahiptir.

İ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 'ni kullanır ancak BGP oturum yönetimi için kullanılmaz.

Cloud NAT

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

4. Codelab topolojisi

a4eb7693cbdbdfd4.png

5. Kurulum ve Gereksinimler

Kendi hızınızda ortam kurulumu

  1. Google Cloud Console'da oturum açıp 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. Dilediğiniz zaman güncelleyebilirsiniz.
  • Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (ayarlandıktan 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 boyunca geçerli kalır.
  • Bilginiz olması açısından, bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde 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ırmak çok pahalı 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ılabilir olsa da bu kod laboratuvarında bulutta çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

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

55efc1aaa7a4d3ad.png

Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:

7ffe5cbb04455448.png

Bu sanal makinede ihtiyaç duyacağınız tüm geliştirme araçları yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Hiç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'in içinde aşağıdaki işlemleri gerçekleştirin:

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'in içinde üretici iletim 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'in içinde yalnızca üretici bölgesel 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çidini oluşturma

NAT Ağ Geçidi, internet çıkışı için bölgesel dahili TCP proxy yük dengeleyici tarafından –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB yapılandırma seçeneğiyle 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'de 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'sini ayarlama

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

Cloud Shell'de, github.com için kullanılan bir internet NEG'si oluşturun

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

Cloud Shell içinde, internet NEG smtp-internet-neg değerini FQDN notifications-pa.googleapis.com ve 443 bağlantı noktası ile güncelleyin

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

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

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

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ığındaki trafiğin ağdaki tüm örneklere gitmesine izin verir.

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

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. Yapımcı Hizmeti Oluştur

Yük Dengeleyici Bileşenleri Oluşturma

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

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=smtp-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-smtp-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 smtp-svc-attachment adlı hizmet ekini oluşturun:

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

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

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

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

gcloud compute service-attachments describe smtp-svc-attachment --region=$region

Örnek:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-10-04T14:56:50.409-07:00'
description: ''
enableProxyProtocol: false
fingerprint: KUPXTZjrGkw=
id: '8947818105173563981'
kind: compute#serviceAttachment
name: smtp-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '23100082169578472'
  low: '8947818105173563981'
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/smtp-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-smtp-fr

Cloud Console'da şu konuma gidin:

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

b847b5ee22e3582e.png

b9a7d46c8dea4476.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'de –psc-service-attachment işaretlerini kullanarak üretici hizmet eki ile Looker Core PSC'yi ilişkilendireceksiniz.

Cloud Shell'in içinde aşağıdaki parametreleri ortamınızla eşleşecek şekilde güncelleyerek psc ilişkilendirmesi oluşturun:

  • INSTANCE_NAME: Looker (Google Cloud çekirdeği) örneğinizin adı.
  • ALAN_1: notifications-pa.googleapis.com
  • SERVICE_ATTACHMENT_1: Hizmet Eki açıklanırken yakalanan URI, smtp-svc-attachment
  • REGION: Looker (Google Cloud Core) örneğinizin barındırıldığı bölge.

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

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=notifications-pa.googleapis.com,attachment=projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment \
--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:

{
...........................
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "notifications-pa.googleapis.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/smtp-svc-attachment"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-10-04T22:02:31.445761128Z"
}

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

a7593db722f86642.png

10. SMTP Bağlantısını Test Et

Aşağıdaki adımlarda, bir SMTP testi ve raporu oluşturarak SMTP bağlantısını doğrulamak için Looker Console'u kullanacaksınız.

Test e-postası

Looker, e-postaları varsayılan SMTP sunucusu notifications-pa.googleapis.com'u kullanarak gönderir. Bu durumda ek bir işlem yapmanız gerekmez. Bildirimler için farklı bir SMTP sunucusu kullanmak istiyorsanız lütfen özel SMTP yapılandırması bölümüne bakın.

Looker Console'u açıp aşağıdakilere gidin:

Yönetici → Platform → SMTP → Test E-postası Gönder'i seçin

aacb31e399cec9b7.png

Looker'dan alınan test e-postasını aşağıda bulabilirsiniz:

ff75669fb6993d58.png

Oluşturulan rapor e-postası

Aşağıdakilere gidin:

Keşfet → Sistem Etkinliği → API Kullanımı → API Sorgu Türü → Çalıştır

788f6d6d08f5f055.png

Örnek çıkış:

cebecdf5f2e968d1.png

Sonuçları e-postanıza göndermek için dişli simgesini

c6ddb0b234b58ed4.png

Gönder'i seçin. Yeni bir pencere açılır.

15b45c5c1bc1b09b.png

E-posta adresinizi girin ve Gönder'i seçin

86970bb94247ed62.png

Looker'dan alınan test e-postası aşağıda verilmiştir:

c925c8917f8078b3.png

11. Özel SMTP yapılandırması

Bu eğitimde Looker SMTP sunucusu, internet çıkışı yapan FQDN notifications-pa.googleapis.com ve Cloud NAT üzerinden e-posta bildirimleri göndermek için kullanılır. Kendi SMTP sunucunuzu kullanmak için aşağıdaki değişiklikleri içeren yeni bir hizmet eki oluşturun:

İnternet NEG'sini SMTP sunucunuzun tam alan adıyla güncelleyin:

gcloud compute network-endpoint-groups update smtp-internet-neg \
    --add-endpoint="fqdn=<your SMTP FQDN>,port=443" \
    --region=$region

Looker PSC örneğini güncellerken SMTP alanınızı belirtin:

  • INSTANCE_NAME: Looker (Google Cloud core) örneğinizin adı.
  • ALAN_1: <SMTP sunucunuzun tam alan adı>
  • SERVICE_ATTACHMENT_1: Hizmet Eki açıklanırken yakalanan URI, smtp-svc-attachment
  • BÖLGE: Looker (Google Cloud core) örneğinizin barındırıldığı bölge.
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Farklı bir e-posta hizmeti kullanmak için Özel posta ayarlarını kullan'ı seçin.

a3fe7a0b66c80402.png

12. Temizleme

Tek bir Cloud Shell terminalinden laboratuvar bileşenlerini silme

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

gcloud compute forwarding-rules delete producer-smtp-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 smtp-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

13. Tebrikler

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

Üretici altyapısını oluşturdunuz, internet NEG'si, üretici hizmeti ve üretici hizmetine bağlanmaya izin veren 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