পিএসসি প্রডিউসার এন্ডপয়েন্ট-ভিত্তিক অ্যাক্সেস কন্ট্রোল

১. ভূমিকা

ব্যক্তিগত পরিষেবা সংযোগ

প্রাইভেট সার্ভিস কানেক্ট হলো গুগল ক্লাউড নেটওয়ার্কিং-এর একটি সক্ষমতা, যা গ্রাহকদের তাদের ভিপিসি নেটওয়ার্কের ভেতর থেকে ব্যক্তিগতভাবে পরিচালিত পরিষেবাগুলো অ্যাক্সেস করার সুযোগ দেয়। একইভাবে, এটি পরিচালিত পরিষেবা প্রদানকারীদের তাদের নিজস্ব পৃথক ভিপিসি নেটওয়ার্কে এই পরিষেবাগুলো হোস্ট করতে এবং তাদের গ্রাহকদের একটি ব্যক্তিগত সংযোগ প্রদান করতে সক্ষম করে।

50b907b09af4d8ac.png

ব্যক্তিগত পরিষেবা সংযোগ প্রযোজক অ্যাক্সেস নিয়ন্ত্রণ

যেকোনো কনজিউমারের কাছ থেকে আসা সমস্ত সংযোগ স্বয়ংক্রিয়ভাবে গ্রহণ করার পরিবর্তে, প্রডিউসাররা শুধুমাত্র তখনই ইনবাউন্ড সংযোগের অনুরোধ গ্রহণ করতে পারে, যদি কনজিউমারটি কনজিউমার অ্যাকসেপ্ট লিস্টে থাকে। আপনি প্রজেক্ট, VPC নেটওয়ার্ক, বা স্বতন্ত্র PSC এন্ডপয়েন্ট অনুসারে কনজিউমারদের নির্দিষ্ট করতে পারেন। আপনি একই কনজিউমার অ্যাকসেপ্ট বা রিজেক্ট লিস্টে বিভিন্ন ধরনের কনজিউমারকে অন্তর্ভুক্ত করতে পারবেন না।

উভয় সংযোগ পছন্দের ক্ষেত্রেই, গৃহীত সংযোগগুলিকে একটি সাংগঠনিক নীতি (compute.restrictPrivateServiceConnectConsumer) দ্বারা অগ্রাহ্য ও প্রত্যাখ্যান করা যেতে পারে, যা আগত সংযোগগুলিকে ব্লক করে।

অনুগ্রহ করে মনে রাখবেন যে সংস্থা নীতি (compute.restrictPrivateServiceConnectConsumer) সংস্থা, ফোল্ডার বা প্রকল্পের ক্ষেত্রে প্রযোজ্য। আপনি যদি PSC এন্ডপয়েন্টে সূক্ষ্ম অ্যাক্সেস নিয়ন্ত্রণ চান, তাহলে আপনি স্বতন্ত্র PSC এন্ডপয়েন্টগুলির কনজিউমার অ্যাকসেপ্ট লিস্ট ব্যবহার করতে পারেন।

এন্ডপয়েন্ট-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ

পিএসসি এন্ডপয়েন্ট-ভিত্তিক অ্যাক্সেস কন্ট্রোল হলো সার্ভিস অ্যাটাচমেন্ট পলিসিতে থাকা স্বতন্ত্র পিএসসি এন্ডপয়েন্টগুলোর মাধ্যমে প্রডিউসারদের কনজিউমারদের অনুমোদন দেওয়ার ক্ষমতা।

এই পদ্ধতিটি, যা মাল্টি-টেন্যান্ট সার্ভিসের জন্য সুপারিশ করা হয়, সংযোগ ব্যবস্থাপনার ক্ষেত্রে সবচেয়ে সূক্ষ্ম নিয়ন্ত্রণ প্রদান করে।

এই কোডল্যাবটির মূল উদ্দেশ্য হলো এই ফিচারটি কীভাবে কনফিগার করতে হয় তা শেখা।

অনুগ্রহ করে মনে রাখবেন, এই পদ্ধতিটি প্রাইভেট সার্ভিস কানেক্ট ব্যাকএন্ডের ক্ষেত্রে প্রযোজ্য নয়।

২. আপনি যা শিখবেন

  • একজন প্রযোজক হিসেবে, PSC ব্যবহার করে কীভাবে একটি পরিষেবা প্রকাশ করবেন।
  • একজন প্রযোজক হিসেবে, কীভাবে পিএসসি এন্ডপয়েন্ট-ভিত্তিক অ্যাক্সেস কন্ট্রোল তৈরি করবেন।
  • একজন ভোক্তা হিসেবে কীভাবে পিএসসি পরিষেবা পাওয়া যাবে।

৩. ল্যাবের সামগ্রিক স্থাপত্য

3d7cbafaffb50d2d.png

৪. প্রস্তুতির ধাপসমূহ

ল্যাবে কাজ করার জন্য IAM পদের প্রয়োজন

প্রজেক্ট লেভেলে GCP অ্যাকাউন্টে প্রয়োজনীয় IAM রোলগুলো অ্যাসাইন করার মাধ্যমে আপনি শুরু করবেন।

  • কম্পিউট নেটওয়ার্ক অ্যাডমিন ( roles/compute.networkAdmin ) এই রোলটি আপনাকে কম্পিউট ইঞ্জিনের নেটওয়ার্কিং রিসোর্সগুলোর উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়।
  • লগিং অ্যাডমিন ( roles/logging.admin ) এই রোলটি আপনাকে সমস্ত লগিং পারমিশন এবং এর উপর নির্ভরশীল পারমিশনগুলো ব্যবহারের সুযোগ দেয়।
  • সার্ভিস ইউসেজ অ্যাডমিন ( roles/serviceusage.serviceUsageAdmin ) এই রোলটি আপনাকে সার্ভিসের অবস্থা চালু, বন্ধ ও পরিদর্শন করা, অপারেশন পরিদর্শন করা এবং একটি কনজিউমার প্রজেক্টের জন্য কোটা ও বিলিং ব্যবহার করার ক্ষমতা দেয়।
  • কম্পিউট ইনস্ট্যান্স অ্যাডমিন ( roles/compute.instanceAdmin.v1 ) এই রোলটি আপনাকে কম্পিউট ইঞ্জিন ইনস্ট্যান্স, ইনস্ট্যান্স গ্রুপ, ডিস্ক, স্ন্যাপশট এবং ইমেজের উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়। সমস্ত কম্পিউট ইঞ্জিন নেটওয়ার্কিং রিসোর্সে রিড অ্যাক্সেস।
  • কম্পিউট সিকিউরিটি অ্যাডমিন ( roles/compute.securityAdmin ) এই রোলটি আপনাকে ফায়ারওয়াল রুল এবং SSL সার্টিফিকেট তৈরি, পরিবর্তন ও মুছে ফেলার এবং শিল্ডেড ভিএম (Shielded VM) সেটিংস কনফিগার করার অনুমতি দেয়।

এপিআই সক্ষম করুন

ক্লাউড শেলের ভিতরে, আপনার প্রজেক্টটি সঠিকভাবে কনফিগার করা আছে কিনা তা নিশ্চিত করুন এবং আপনার এনভায়রনমেন্ট ভেরিয়েবলগুলো সেট করুন।

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud auth login
gcloud config set project <your project id>
export project_id=$(gcloud config get-value project)
export region=us-central1
export zone=$region-a
echo $project_id
echo $region
echo $zone

প্রজেক্টে প্রয়োজনীয় সকল গুগল এপিআই (API) সক্রিয় করুন। ক্লাউড শেল (Cloud Shell)-এর ভিতরে নিম্নলিখিত কাজগুলো করুন:

gcloud services enable \
  compute.googleapis.com 
  

প্রযোজক ভিপিসি তৈরি করুন

প্রজেক্টটিতে কাস্টম সাবনেট মোড সহ একটি VPC নেটওয়ার্ক তৈরি করুন। ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks create producer-net \
    --subnet-mode=custom

প্রডিউসার VPC-তে সাবনেট তৈরি করুন

আপনার তিনটি সাবনেটের প্রয়োজন হবে: আপনার সার্ভিসের জন্য প্রডিউসার-সাবনেট; লোড ব্যালান্সারের মাধ্যমে সার্ভিসটি পাবলিশ করার জন্য প্রক্সি-অনলি-সাবনেট; এবং পিএসসি-এর মাধ্যমে সার্ভিস পাবলিশ করার জন্য পিএসসি-সাবনেট।

ক্লাউড শেলের ভিতরে, IPV4 সাবনেট তৈরি করতে নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks subnets create producer-subnet \
    --network=producer-net \
    --range=10.10.0.0/24 \
    --region=$region
gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=$region \
    --network=producer-net \
    --range=10.30.0.0/24
gcloud compute networks subnets create psc-subnet \
    --network=producer-net \
    --region=$region \
    --range=192.168.0.0/16 \
    --purpose=PRIVATE_SERVICE_CONNECT

প্রডিউসার VPC-এর জন্য ক্লাউড NAT এবং ক্লাউড রাউটার তৈরি করুন

ভার্চুয়াল মেশিনকে অ্যাপ্লিকেশন ডাউনলোড ও ইনস্টল করার সুযোগ দিতে ক্লাউড ন্যাট ব্যবহার করা হয়।

gcloud compute routers create $region-cr \
   --network=producer-net \
   --region=$region
gcloud compute routers nats create $region-nat \
    --router=$region-cr \
    --region=$region \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

কনজিউমার ভিপিসি তৈরি করুন

প্রজেক্টটিতে কাস্টম সাবনেট মোড সহ একটি VPC নেটওয়ার্ক তৈরি করুন। ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks create consumer-net \
    --subnet-mode=custom

কনজিউমার ভিপিসিতে সাবনেট তৈরি করুন

ক্লাউড শেলের ভিতরে, একটি IPV4 সাবনেট তৈরি করতে নিম্নলিখিতগুলি করুন:

gcloud compute networks subnets create consumer-subnet \
    --network=consumer-net \
    --range=10.20.0.0/24 \
    --region=$region

প্রডিউসার ভিপিসি এবং কনজিউমার ভিপিসির জন্য একটি গ্লোবাল ফায়ারওয়াল পলিসি তৈরি করুন

আপনি একটি গ্লোবাল নেটওয়ার্ক ফায়ারওয়াল পলিসি তৈরি করবেন এবং সেটিকে প্রডিউসার ভিপিসি ও কনজিউমার ভিপিসির সাথে সংযুক্ত করবেন।

gcloud compute network-firewall-policies create global-fw-policy \
--global
gcloud compute network-firewall-policies associations create \
    --firewall-policy=global-fw-policy \
    --name=producer-fw-policy \
    --network=producer-net \
    --global-firewall-policy 
gcloud compute network-firewall-policies associations create \
    --firewall-policy=global-fw-policy \
    --name=consumer-fw-policy \
    --network=consumer-net \
    --global-firewall-policy 

SSH অনুমতি দিন

আইডেন্টিটি-অ্যাওয়্যার প্রক্সি (IAP)-কে আপনার VM ইনস্ট্যান্সগুলির সাথে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

  • এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
  • 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।
gcloud compute network-firewall-policies rules create 100 \
    --action=ALLOW \
    --firewall-policy=global-fw-policy \
    --description="producer-allow-iap" \
    --direction=INGRESS \
    --src-ip-ranges=35.235.240.0/20 \
    --layer4-configs=tcp:22  \
    --global-firewall-policy

আপনার পরিষেবাতে ইনগ্রেস ফায়ারওয়াল নিয়ম যোগ করুন

সার্ভিসটি পাবলিশ করার জন্য আপনি রিজিওনাল ইন্টারনাল অ্যাপ্লিকেশন লোড ব্যালেন্সার ব্যবহার করবেন। ইনগ্রেস ফায়ারওয়াল রুলে অবশ্যই প্রক্সি-অনলি-সাবনেটকে সার্ভিসটি অ্যাক্সেস করার অনুমতি থাকতে হবে। বিস্তারিত তথ্যের জন্য, এই ডকুমেন্টটি পর্যালোচনা করুন।

gcloud compute network-firewall-policies rules create 200 \
    --action=ALLOW \
    --firewall-policy=global-fw-policy \
    --description="producer-allow-access-service" \
    --direction=INGRESS \
    --src-ip-ranges=10.30.0.0/24 \
    --layer4-configs=tcp:80  \
    --global-firewall-policy

আপনার পরিষেবাতে লোড ব্যালেন্সারের স্বাস্থ্য পরীক্ষা করার অনুমতি দিন।

রিজিওনাল ইন্টারনাল অ্যাপ্লিকেশন লোড ব্যালান্সার হেলথচেক প্রোবগুলো 35.191.0.0/16 এবং 130.211.0.0/22 ​​রেঞ্জ ব্যবহার করে। প্রোবগুলো থেকে হেলথচেকের অনুমতি দেওয়ার জন্য আপনাকে একটি ইনগ্রেস ফায়ারওয়াল রুল তৈরি করতে হবে। আরও বিস্তারিত জানতে, এই ডকুমেন্টটি পর্যালোচনা করুন।

gcloud compute network-firewall-policies rules create 300 \
    --action=ALLOW \
    --firewall-policy=global-fw-policy \
    --description="producer-allow-health-check" \
    --direction=INGRESS \
    --src-ip-ranges=35.191.0.0/16,130.211.0.0/22\
    --layer4-configs=tcp:80  \
    --global-firewall-policy

কনজিউমার ভিপিসিতে একটি ভিএমকে http ক্লায়েন্ট হিসেবে তৈরি করুন

ক্লাউড শেলের ভিতরে, টেস্ট ক্লায়েন্ট হিসেবে একটি ভিএম ইনস্ট্যান্স তৈরি করতে নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute instances create myclient \
    --zone=$zone \
    --subnet=consumer-subnet \
    --shielded-secure-boot \
    --no-address

প্রডিউসার ভিপিসিতে একটি ভিএমকে এইচটিটিপি সার্ভার হিসেবে তৈরি করুন।

ক্লাউড শেলের ভিতরে, একটি ভিএম ইনস্ট্যান্সকে http সার্ভার হিসেবে তৈরি করতে নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:

gcloud compute instances create myserver \
    --subnet=producer-subnet \
    --zone=$zone \
    --no-address \
    --shielded-secure-boot \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "I am a Http Server." | \
    tee /var/www/html/index.html
    systemctl restart apache2'

৫. প্রযোজক পিএসসি পরিষেবা প্রকাশ করেন

আঞ্চলিক অভ্যন্তরীণ অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করুন

আপনি সার্ভিসটির ফ্রন্ট-এন্ড হিসেবে একটি আঞ্চলিক ইন্টারনাল অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করবেন এবং এর ব্যাক-এন্ড হবে সেই আনম্যানেজড ইনস্ট্যান্স গ্রুপটি, যার এন্ডপয়েন্ট হলো আমাদের পূর্বে তৈরি করা http সার্ভারটি।

লোড ব্যালেন্সারের আইপি অ্যাড্রেসটি রিজার্ভ করুন।

gcloud compute addresses create l7-ilb-ip-address \
    --region=$region \
    --subnet=producer-subnet

একটি ইনস্ট্যান্স গ্রুপ তৈরি করুন

আপনি একটি আনম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করবেন এবং সেই গ্রুপে myserver ভিএম ইনস্ট্যান্সটি যুক্ত করবেন।

gcloud compute instance-groups unmanaged create my-service-ig \
    --zone=$zone
gcloud compute instance-groups unmanaged add-instances my-service-ig \
    --zone=$zone \
    --instances=myserver

একটি HTTP স্বাস্থ্য পরীক্ষা তৈরি করুন

gcloud compute health-checks create http l7-ilb-basic-check \
     --region=$region \
     --use-serving-port

ব্যাকএন্ড পরিষেবা তৈরি করুন

gcloud compute backend-services create l7-ilb-backend-service \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTP \
    --health-checks=l7-ilb-basic-check \
    --health-checks-region=$region \
    --region=$region

ব্যাকএন্ড সার্ভিসে ব্যাকএন্ড যোগ করুন

gcloud compute backend-services add-backend l7-ilb-backend-service \
    --balancing-mode=UTILIZATION \
    --instance-group=my-service-ig \
    --instance-group-zone=$zone \
    --region=$region

ইউআরএল ম্যাপ তৈরি করুন

gcloud compute url-maps create l7-ilb-map \
    --default-service=l7-ilb-backend-service \
    --region=$region

টার্গেট প্রক্সি তৈরি করুন

gcloud compute target-http-proxies create l7-ilb-proxy \
    --url-map=l7-ilb-map \
    --url-map-region=$region \
    --region=$region

ফরওয়ার্ডিং নিয়ম তৈরি করুন

gcloud compute forwarding-rules create l7-ilb-forwarding-rule \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --network=producer-net \
    --subnet=producer-subnet \
    --address=l7-ilb-ip-address \
    --ports=80 \
    --region=$region \
    --target-http-proxy=l7-ilb-proxy \
    --target-http-proxy-region=$region

পিএসসি প্রযোজক পরিষেবাটি প্রকাশ করে

আপনি connection-preference=ACCEPT_MANUAL এবং খালি কনজিউমার তালিকা সহ পরিষেবাটি প্রকাশ করতে PSC ব্যবহার করবেন।

gcloud compute service-attachments create my-psc-service \
    --region=$region \
 --target-service=projects/$project_id/regions/$region/forwardingRules/l7-ilb-forwarding-rule \
    --connection-preference=ACCEPT_MANUAL \
    --nat-subnets=psc-subnet
export myserver_service_attachment=$(gcloud compute service-attachments describe my-psc-service --region=$region --format="value(selfLink.scope(v1))")

echo $myserver_service_attachment

৬. গ্রাহক PSC এন্ডপয়েন্ট তৈরি করে

PSC এন্ডপয়েন্টের জন্য একটি IP রিজার্ভ করুন

gcloud compute addresses create myserver-psc-endpoint-ip \
    --region=$region \
    --subnet=consumer-subnet \
    --ip-version=IPV4

PSC এন্ডপয়েন্ট তৈরি করুন

পরবর্তী ধাপে পরীক্ষার জন্য PSC এন্ডপয়েন্ট তৈরি করুন এবং এর IP সংগ্রহ করুন।

gcloud compute forwarding-rules create myserver-psc-endpoint \
    --region=$region \
    --network=consumer-net \
    --address=myserver-psc-endpoint-ip \
    --target-service-attachment=$myserver_service_attachment
psc_endpoint_ip=$(gcloud compute forwarding-rules describe myserver-psc-endpoint \
    --region=$region --format="value(IPAddress)")

echo $psc_endpoint_ip

ভোক্তা PSC এন্ডপয়েন্টের অবস্থা যাচাই করে

প্রডিউসার কনজিউমার লিস্টে PSC এন্ডপয়েন্টটি যোগ করার আগে, কনজিউমার সাইডের কানেক্টেড এন্ডপয়েন্টে কানেকশনটি 'পেন্ডিং' স্ট্যাটাস সহ দৃশ্যমান থাকে।

gcloud compute forwarding-rules describe myserver-psc-endpoint \
    --region=$region

আপনি নীচের মতো একটি ফলাফল দেখতে পাবেন।

IPAddress: 10.20.0.3
allowPscGlobalAccess: false
creationTimestamp: '2026-02-23T16:27:27.920-08:00'
fingerprint: yh_UiYqjHCc=
id: '934193159895862912'
kind: compute#forwardingRule
labelFingerprint: 42WmSpB8rSM=
name: myserver-psc-endpoint
network: https://www.googleapis.com/compute/v1/projects/<project_id>/global/networks/consumer-net
networkTier: PREMIUM
pscConnectionId: '160443618817212419'
pscConnectionStatus: PENDING
region: https://www.googleapis.com/compute/v1/projects/<project_id>/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/<project_id>/regions/us-central1/forwardingRules/myserver-psc-endpoint
selfLinkWithId: https://www.googleapis.com/compute/v1/projects/<project_id>/regions/us-central1/forwardingRules/934193159895862912
serviceDirectoryRegistrations:
- namespace: goog-psc-default
target: https://www.googleapis.com/compute/v1/projects/<project_id>/regions/us-central1/serviceAttachments/my-psc-service

৭. কনজিউমার ভিএম থেকে প্রডিউসার ভিএম-এ অ্যাক্সেস পরীক্ষা করুন

PSC এন্ডপয়েন্ট IP যাচাই করুন।

echo $psc_endpoint_ip

myclient নামের VM-টিতে SSH করুন এবং পরীক্ষা করে দেখুন এটি http 80 পোর্টে myserver অ্যাক্সেস করতে পারে কি না।

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute ssh \
    --zone=$zone "myclient" \
    --tunnel-through-iap 

আপনার তৈরি করা PSC এন্ডপয়েন্টটি অ্যাক্সেস করতে curl ব্যবহার করুন।

curl -m 10 <psc_endpoint_ip> 

আপনি দেখবেন `curl` কমান্ডটির টাইম আউট হয়ে গেছে। কনজিউমার ভিপিসি থেকে টেস্ট ক্লায়েন্টটি প্রডিউসার ভিপিসিতে থাকা http সার্ভারটি অ্যাক্সেস করতে পারছে না।

curl: (28) Connection timed out after 10001 milliseconds

SSH সেশন থেকে বেরিয়ে ক্লাউড শেলে ফিরে যান।

exit

৮. প্রযোজক পিএসসি এন্ডপয়েন্ট অনুমোদন করেন।

প্রযোজক PSC এন্ডপয়েন্টের অবস্থা যাচাই করে

প্রডিউসার কনজিউমার লিস্টে PSC এন্ডপয়েন্টটি যোগ করার আগে, সার্ভিস অ্যাটাচমেন্টে কানেকশনটি 'পেন্ডিং' স্ট্যাটাস সহ দৃশ্যমান থাকে।

gcloud compute service-attachments describe my-psc-service --region=$region 

আপনি নীচের মতো একটি ফলাফল দেখতে পাবেন।

connectedEndpoints:
- consumerNetwork: https://www.googleapis.com/compute/projects/<project_id>/global/networks/consumer-net
  endpoint: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/myserver-psc-endpoint
  endpointWithId: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/934193159895862912
  pscConnectionId: '160443618817212419'
  status: PENDING
connectionPreference: ACCEPT_MANUAL
creationTimestamp: '2026-02-23T13:27:33.886-08:00'
description: ''
enableProxyProtocol: false
fingerprint: -9EI8FCALrA=
id: '2578692595155826858'
kind: compute#serviceAttachment
name: my-psc-service
natSubnets:
- https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/subnetworks/psc-subnet
pscServiceAttachmentId:
  high: '149466704441770984'
  low: '2578692595155826858'
reconcileConnections: false
region: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1
selfLink: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/serviceAttachments/my-psc-service
targetService: https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/l7-ilb-forwarding-rule

PSC এন্ডপয়েন্টের আইডি-ভিত্তিক URI পান

PSC এন্ডপয়েন্টের আইডি-ভিত্তিক URI হলো কনজিউমারের তৈরি করা ফরওয়ার্ডিং রুলের আইডি। উপরের উদাহরণে, 'endpointWithId' হলো কনজিউমারের তৈরি করা PSC এন্ডপয়েন্টের URI। প্রডিউসারের এন্ডপয়েন্ট-ভিত্তিক অ্যাক্সেস কন্ট্রোল তৈরি করার জন্য এই URI-টি প্রয়োজন হবে।

অনুগ্রহ করে মনে রাখবেন, পিএসসি সংযোগ আইডিটি আমাদের কাঙ্ক্ষিত আইডি নয়।

export psc_endpoint_uri=$(gcloud compute service-attachments describe my-psc-service --region=$region --format="value(connectedEndpoints.endpointWithId)")

echo $psc_endpoint_uri

কনজিউমার অ্যাকসেপ্ট লিস্টে PSC এন্ডপয়েন্ট আইডি-ভিত্তিক URI যোগ করুন

gcloud compute service-attachments update my-psc-service \
    --region=$region \
    --consumer-accept-list=$psc_endpoint_uri

প্রযোজক PSC এন্ডপয়েন্টের অবস্থা যাচাই করে

gcloud compute service-attachments describe my-psc-service --region=$region --format="value(connectedEndpoints)"

আপনি নীচের মতো একটি ফলাফল দেখতে পাবেন। স্ট্যাটাসটি 'গৃহীত'-এ পরিবর্তিত হয়েছে।

{'consumerNetwork': 'https://www.googleapis.com/compute/projects/<project_id>/global/networks/consumer-net', 'endpoint': 'https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/myserver-psc-endpoint', 'endpointWithId': 'https://www.googleapis.com/compute/projects/<project_id>/regions/us-central1/forwardingRules/47564871796017232', 'pscConnectionId': '54547416268144643', 'status': 'ACCEPTED'}

৯. কনজিউমার ভিএম থেকে প্রডিউসার ভিএম-এ অ্যাক্সেস পরীক্ষা করুন

PSC এন্ডপয়েন্ট IP যাচাই করুন।

echo $psc_endpoint_ip

myclient নামের VM-টিতে SSH করুন এবং পরীক্ষা করে দেখুন এটি http 80 পোর্টে myserver অ্যাক্সেস করতে পারে কি না।

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute ssh \
    --zone=$zone "myclient" \
    --tunnel-through-iap 

আপনার তৈরি করা PSC এন্ডপয়েন্টটি অ্যাক্সেস করতে curl ব্যবহার করুন।

curl <psc_endpoint_ip>

আপনি দেখবেন `curl` কমান্ডটি myserver থেকে সফলভাবে রেসপন্স ফেরত দিয়েছে। `consumer VPC`-র টেস্ট ক্লায়েন্টটি `producer VPC`-র http সার্ভারটি অ্যাক্সেস করেছে।

I am a Http Server.

SSH সেশন থেকে বেরিয়ে ক্লাউড শেলে ফিরে যান।

exit

১০. পরিষ্কার করুন

ভিএমগুলো পরিষ্কার করুন

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute instances delete myserver --zone $zone --quiet
gcloud compute instances delete myclient --zone $zone --quiet

পিএসসি ভোক্তা উপাদানগুলি পরিষ্কার করুন

gcloud compute forwarding-rules delete myserver-psc-endpoint \
    --region=$region --quiet
gcloud compute addresses delete myserver-psc-endpoint-ip \
    --region=$region --quiet

পিএসসি উৎপাদক উপাদানগুলি পরিষ্কার করুন

gcloud compute service-attachments delete my-psc-service \
    --region=$region --quiet
gcloud compute forwarding-rules delete l7-ilb-forwarding-rule \
    --region=$region --quiet
gcloud compute target-http-proxies delete l7-ilb-proxy \
    --region=$region --quiet
gcloud compute url-maps delete l7-ilb-map \
    --region=$region --quiet
gcloud compute backend-services remove-backend l7-ilb-backend-service \
    --instance-group=my-service-ig \
    --instance-group-zone=$zone \
    --region=$region --quiet
gcloud compute backend-services delete l7-ilb-backend-service \
    --region=$region --quiet
gcloud compute health-checks delete l7-ilb-basic-check \
     --region=$region --quiet
gcloud compute instance-groups unmanaged delete my-service-ig \
    --zone=$zone --quiet
gcloud compute addresses delete l7-ilb-ip-address \
    --region=$region --quiet

ফায়ারওয়াল, ক্লাউড NAT, ক্লাউড রাউটার এবং VPC পরিষ্কার করুন

gcloud compute network-firewall-policies rules delete 100 \
    --firewall-policy=global-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies rules delete 200 \
    --firewall-policy=global-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies rules delete 300 \
    --firewall-policy=global-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies associations delete \
    --firewall-policy=global-fw-policy \
    --name=producer-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies associations delete \
    --firewall-policy=global-fw-policy \
    --name=consumer-fw-policy \
    --global-firewall-policy --quiet
gcloud compute network-firewall-policies delete global-fw-policy \
    --global --quiet
gcloud compute routers nats delete $region-nat \
    --router=$region-cr \
    --region=$region --quiet
gcloud compute routers delete $region-cr \
    --region=$region --quiet
gcloud compute networks subnets delete producer-subnet \
    --region=$region --quiet
gcloud compute networks subnets delete proxy-only-subnet \
    --region=$region --quiet
gcloud compute networks subnets delete psc-subnet \
    --region=$region --quiet
gcloud compute networks delete producer-net --quiet
gcloud compute networks subnets delete consumer-subnet \
    --region=$region --quiet
gcloud compute networks delete consumer-net --quiet

১১. অভিনন্দন

আপনি সফলভাবে প্রাইভেট সার্ভিস কানেক্ট প্রডিউসার এন্ডপয়েন্ট-ভিত্তিক অ্যাক্সেস কন্ট্রোল পরীক্ষা করেছেন।