1. ভূমিকা
এই ল্যাবে, আমরা শিখব কীভাবে BigQuery ডেটা ট্রান্সফার পরিষেবাকে রক্ষা করতে হয়, VPC পরিষেবা নিয়ন্ত্রণগুলি ব্যবহার করে, ক্লাউড স্টোরেজ থেকে BigQuery ডেটাসেটে ডেটা স্থানান্তর করার সময়৷ তারপরে আমরা ক্লাউড স্টোরেজ রক্ষা করি এবং ক্লাউড স্টোরেজ থেকে BigQuery-এ ডেটা স্থানান্তর করার প্রক্রিয়াটি পুনরাবৃত্তি করি। ক্লাউড স্টোরেজের সুরক্ষা একটি VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন ঘটায়, যা সফল স্থানান্তরের জন্য সংশোধন করা প্রয়োজন৷ শেষ পর্যন্ত, আমরা BigQuery ও রক্ষা করি এবং তারপরে প্রকল্পগুলির মধ্যে ডেটাসেট কপি করার চেষ্টা করি, যার ফলে একটি লঙ্ঘন হয় যা ঠিক করা প্রয়োজন।
এই ল্যাব জুড়ে, আমরা দেখব কিভাবে ইনগ্রেস এবং এগ্রেস নিয়মগুলি ব্যবহার করে যথাক্রমে প্রবেশ এবং প্রস্থান লঙ্ঘন উভয়ই ঠিক করা যায়। BigQuery ডেটা ট্রান্সফার ইনগ্রেস লঙ্ঘন ঠিক করতে আমরা অ্যাক্সেস লেভেলও ব্যবহার করব। এই কোডল্যাবের লক্ষ্যগুলি হল:
- বিভিন্ন পরিষেবা, বিশেষ করে ক্লাউড স্টোরেজ, BigQuery এবং BigQuery ডেটা ট্রান্সফার পরিষেবাতে যথাক্রমে প্রবেশ এবং প্রস্থান নিয়মগুলি ব্যবহার করে কীভাবে প্রবেশ এবং বহির্গমন লঙ্ঘনগুলি ঠিক করা যায় তা বুঝুন।
- কেন একটি নির্দিষ্ট লঙ্ঘন ঘটেছে তা বুঝুন।
2. সম্পদ সেটআপ এবং প্রয়োজনীয়তা
আপনি শুরু করার আগে
এই কোডল্যাবে, আমরা ধরে নিই যে আপনি ইতিমধ্যেই জানেন:
- কিভাবে একটি ফোল্ডার তৈরি করতে হয়
- কিভাবে একটি ফোল্ডারে একটি প্রজেক্ট তৈরি করতে হয় বা একটি ফোল্ডারে বিদ্যমান প্রজেক্ট সরাতে হয়
- কীভাবে একটি স্কোপড অ্যাক্সেস নীতি তৈরি করবেন
- গুগল ক্লাউড কনসোল থেকে কীভাবে একটি পরিষেবা পরিধি তৈরি এবং কনফিগার করবেন
- অডিট লগ থেকে লঙ্ঘনের লগগুলি কীভাবে খুঁজে পাবেন
সেটআপ
আমাদের প্রাথমিক সেটআপটি নিম্নরূপ ডিজাইন করা হয়েছে:
- একটি Google ক্লাউড সংস্থা।
- সংস্থার অধীনে একটি ফোল্ডার। এই কোডল্যাবের জন্য, আমরা একে বলব
codelab-folder
। -
codelab-folder
ফোল্ডারে দুটি গুগল ক্লাউড প্রকল্প। এই কোডল্যাবের জন্য, আমরা প্রকল্পগুলিকে বলিproject-1
এবংproject-2
।- যদি আপনার কাছে ইতিমধ্যেই তৈরি করা ফোল্ডার এবং প্রকল্পগুলি না থাকে, Google ক্লাউড কনসোলে , সংস্থার অধীনে একটি ফোল্ডার তৈরি করুন এবং দুটি নতুন প্রকল্প তৈরি করুন ।
- প্রয়োজনীয় অনুমতিগুলি: ফোল্ডারগুলি পরিচালনার জন্য IAM ভূমিকা , প্রকল্পগুলি পরিচালনার জন্য IAM ভূমিকা , VPC পরিষেবা নিয়ন্ত্রণগুলি কনফিগার করার জন্য প্রয়োজনীয় IAM ভূমিকা , BigQuery পরিচালনার জন্য IAM ভূমিকা এবং ক্লাউড স্টোরেজ পরিচালনার জন্য IAM ভূমিকা ৷
-
project-1
এবংproject-2
উভয় প্রকল্পের জন্য বিলিং অ্যাকাউন্ট।
একটি স্কোপড নীতি এবং একটি নিয়মিত পরিষেবা পরিধি তৈরি করুন
এই কোডল্যাবে, আমরা project-2
রক্ষাকারী একটি নিয়মিত পরিষেবা পরিধি ব্যবহার করব।
- একটি স্কোপড অ্যাক্সেস নীতি তৈরি করুন , যা ফোল্ডার
codelab-folder
স্তরে স্কোপ করা হয়। এই কোডল্যাবের জন্য, আমরা ধরে নিই যে তৈরি করা অ্যাক্সেস পলিসির আইডি987654321
আছে। - একটি নিয়মিত পরিধি তৈরি করুন , আমরা এটিকে
perimeter-2
বলি, এবং প্রকল্পproject-2
যোগ করি।
পরিধির perimeter-2
এ, BigQuery Data Transfer API
সীমাবদ্ধ করুন।
ক্লাউড স্টোরেজ বাকেট এবং BigQuery ডেটাসেট তৈরি করা
এই কোডল্যাবের উদ্দেশ্যে, বিষয়বস্তু নির্বিশেষে যেকোনো csv ফাইলই যথেষ্ট। প্রধান সীমাবদ্ধতা কোলোকেশন প্রয়োজনীয়তার সাথে সম্পর্কিত যা প্রয়োগ করে:
- যদি আপনার BigQuery ডেটাসেট একটি মাল্টি-অঞ্চলে থাকে, তাহলে ক্লাউড স্টোরেজ বালতিতে যে ডেটা আপনি স্থানান্তর করছেন সেটি অবশ্যই একই মাল্টি-অঞ্চলে বা মাল্টি-অঞ্চলের মধ্যে থাকা একটি অবস্থানে থাকতে হবে।
- আপনার ডেটাসেট একটি অঞ্চলে থাকলে, আপনার ক্লাউড স্টোরেজ বালতি অবশ্যই একই অঞ্চলে থাকতে হবে।
এখন থেকে, এই কোডল্যাবের জন্য, আমরা নিশ্চিত করব যে ক্লাউড স্টোরেজ বাকেট এবং BigQuery ডেটাসেট উভয়ই একই অঞ্চল বা বহু-অঞ্চলে রয়েছে।
প্রজেক্ট project-1
এ একটি নতুন ক্লাউড স্টোরেজ বাকেট তৈরি করুন
একটি নতুন ক্লাউড স্টোরেজ বালতি তৈরি করতে, একটি নতুন বালতি তৈরির জন্য নথিভুক্ত পদক্ষেপগুলি অনুসরণ করুন৷
- বালতির নামের জন্য, বালতির নামের প্রয়োজনীয়তা পূরণ করে এমন একটি নাম লিখুন। এই কোডল্যাবের জন্য, আমরা বালতিটিকে
codelab-bqtransfer-bucket
বলব। - কোথায় ডেটা সংরক্ষণ করতে হবে, বালতির অবস্থান, একটি অবস্থানের ধরন এবং অবস্থান নির্বাচন করুন যেখানে বালতি ডেটা স্থায়ীভাবে সংরক্ষণ করা হবে। এই কোডল্যাবের জন্য, আমরা আমাদের ব্যবহার করব (মার্কিন যুক্তরাষ্ট্রের একাধিক অঞ্চল) ।
একটি CSV ফাইল তৈরি করুন
আপনার স্থানীয় মেশিন থেকে বা ক্লাউড শেল ব্যবহার করে, আমরা নিম্নলিখিত কমান্ডগুলি ব্যবহার করে একটি নমুনা csv ফাইল, codelab-test-file.csv
তৈরি করতে echo
কমান্ড ব্যবহার করতে পারি:
echo "name,age" > codelab-test-file.csv; \
echo "Alice,10" >> codelab-test-file.csv; \
echo "Bob,20" >> codelab-test-file.csv; \
echo "Carol,30" >> codelab-test-file.csv; \
echo "Dan,40" >> codelab-test-file.csv; \
echo "Eve,50" >> codelab-test-file.csv; \
echo "Frank,60" >> codelab-test-file.csv; \
echo "Grace,70" >> codelab-test-file.csv; \
echo "Heidi,80" >> codelab-test-file.csv;
ক্লাউড স্টোরেজ বালতিতে CSV ফাইল আপলোড করুন
csv ফাইলটি তৈরি হয়ে গেলে, তৈরি করা বালতিতে ফাইল অবজেক্ট আপলোড করতে নিম্নলিখিত কমান্ডটি চালান:
gcloud storage cp codelab-test-file.csv gs://codelab-bqtransfer-bucket
আপনি যাচাই করতে পারেন যে ফাইলটি তৈরি করা বালতিতে আপলোড করা হয়েছে বালতিতে বস্তু তালিকাবদ্ধ করে বা নিম্নলিখিত কমান্ডটি চালিয়ে:
gcloud storage ls --recursive gs://codelab-bqtransfer-bucket/**
project-2
এ BigQuery ডেটাসেট এবং টেবিল তৈরি করুন
- এই ধাপগুলি অনুসরণ করে প্রজেক্ট
project-2
এ একটি BigQuery ডেটাসেট তৈরি করুন।- ডেটাসেট আইডির জন্য, একটি অনন্য ডেটাসেটের নাম লিখুন। এই কোডল্যাবের জন্য, আমরা ব্যবহার করি:
codelab_bqtransfer_dataset
। - অবস্থান প্রকারের জন্য, ডেটাসেটের জন্য একটি ভৌগলিক অবস্থান চয়ন করুন৷ এই কোডল্যাবের জন্য, আমরা ক্লাউড স্টোরেজ বাকেটের মতো একই অবস্থান ব্যবহার করি: US (মার্কিন যুক্তরাষ্ট্রের একাধিক অঞ্চল) ।
- ডেটাসেট আইডির জন্য, একটি অনন্য ডেটাসেটের নাম লিখুন। এই কোডল্যাবের জন্য, আমরা ব্যবহার করি:
- এই ধাপগুলি অনুসরণ করে তৈরি করা ডেটাসেট
codelab_bqtransfer_dataset
এর অধীনে একটি BigQuery টেবিল তৈরি করুন।- উত্স বিভাগে, তালিকা থেকে তৈরি টেবিলে খালি টেবিল নির্বাচন করুন।
- টেবিল ক্ষেত্রে, আপনি যে টেবিলটি তৈরি করতে চান তার নাম লিখুন। এই কোডল্যাবের জন্য, আমরা নাম ব্যবহার করি:
codelab-bqtransfer-table
। - যাচাই করুন যে টেবিল টাইপ ক্ষেত্রটি নেটিভ টেবিলে সেট করা আছে
- স্কিমা বিভাগে, স্কিমার সংজ্ঞা লিখুন। আপনি পাঠ্য হিসাবে সম্পাদনা ক্লিক করে স্কিমা তথ্য প্রবেশ করতে পারেন এবং নিম্নলিখিত স্কিমা ইনপুট করতে পারেন, যা তৈরি করা csv ফাইলের বিন্যাসের সাথে সামঞ্জস্যপূর্ণ।
[{ "name": "name", "type": "STRING", "mode": "NULLABLE", "description": "The name" }, { "name": "age", "type": "INTEGER", "mode": "NULLABLE", "description": "The age" }]
খরচ
ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে প্রজেক্ট project-2
এবং project-1
এ বিলিং সক্ষম করতে হবে। আমরা এই কোডল্যাবের বাইরে বিলিং এড়াতে ব্যবহৃত সংস্থানগুলি বন্ধ করার পরামর্শ দিই।
যে সংস্থানগুলি খরচ বহন করে তা হল BigQuery এবং ক্লাউড স্টোরেজ। BigQuery প্রাইসিং ক্যালকুলেটর এবং ক্লাউড স্টোরেজ ক্যালকুলেটরে একটি আনুমানিক খরচ পাওয়া যাবে।
3. ক্লাউড স্টোরেজ অবজেক্ট থেকে BigQuery টেবিলে ডেটা স্থানান্তর কনফিগার করুন
আমরা এখন ক্লাউড স্টোরেজ ( project-1
-এ অবস্থিত) থেকে BigQuery ( project-2
-এ অবস্থিত) থেকে স্থানান্তর করার জন্য একটি ডেটা ট্রান্সফার পরিষেবা ( project-2
-2-এ) তৈরি করার চেষ্টা করব, যখন project-2
BigQuery ডেটা ট্রান্সফার পরিষেবাকে সুরক্ষা দেওয়ার জন্য VPC পরিষেবা নিয়ন্ত্রণ থাকবে। project-2
। শুধুমাত্র BigQuery ডেটা ট্রান্সফার পরিষেবা (BigQuery এবং ক্লাউড স্টোরেজকেও সুরক্ষিত না করে) রক্ষা করা প্রিন্সিপালদের শুধুমাত্র ডেটা ট্রান্সফার তৈরি এবং পরিচালনা করতে সীমাবদ্ধ করে (যেমন ম্যানুয়ালি ডেটা ট্রান্সফার শুরু করা)।
ক্লাউড স্টোরেজ থেকে ডেটা ট্রান্সফার সেটআপ করুন
একটি ডেটা স্থানান্তর তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
-
project-2
এর Google ক্লাউড কনসোলে BigQuery পৃষ্ঠায় যান। - ডেটা স্থানান্তর ক্লিক করুন।
ডেটা স্থানান্তর পৃষ্ঠা অ্যাক্সেস করার সময় লঙ্ঘন তদন্ত করুন
Google ক্লাউড কনসোলে, আমরা ভিপিসি সার্ভিস কন্ট্রোল ইউনিক আইডেন্টিফায়ার দেখতে পাচ্ছি। লগ ফিল্টার করতে এবং লঙ্ঘনের বিশদ শনাক্ত করতে একই শনাক্তকারী ব্যবহার করুন ( OBSERVED_VPCSC_DENIAL_UNIQUE_ID
পর্যবেক্ষণ করা অস্বীকার আইডি দিয়ে প্রতিস্থাপন করুন):
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.metadata.vpcServiceControlsUniqueId="OBSERVED_VPCSC_DENIAL_UNIQUE_ID"
পর্যবেক্ষিত লঙ্ঘন হল একটি NO_MATCHING_ACCESS_LEVEL
, যা নিম্নলিখিতগুলির অনুরূপ বিবরণ সহ একটি প্রবেশ লঙ্ঘন:
ingressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
targetResource: "projects/[PROJECT2_NUMBER]"
}]
violationReason: "NO_MATCHING_ACCESS_LEVEL"
callerIp: "USER_PUBLIC_IP_ADDRESS"
resource: {
labels: {
method: "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferConfigs"
project_id: "project-2"
service: "bigquerydatatransfer.googleapis.com"
}
type: "audited_resource"
}
ডেটা স্থানান্তর পৃষ্ঠা অ্যাক্সেস করা যে কোনও কনফিগার করা ডেটা স্থানান্তর তালিকাভুক্ত করার চেষ্টা করে; তাই, ListTransferConfigs
পদ্ধতির লঙ্ঘন।
bigquerydatatransfer.googleapis.com
পরিষেবার জন্য লঙ্ঘন ঠিক করুন
প্রবেশের লঙ্ঘন ঠিক করতে একটি অ্যাক্সেস লেভেল বা প্রবেশের নিয়ম ব্যবহার করা যেতে পারে। এই কোডল্যাবে, আসুন অস্বীকার করা ব্যবহারকারী পরিচয়ের সাথে কনফিগার করা একটি প্রবেশ নিয়ম ব্যবহার করি, যা bigquerydatatransfer.googleapis.com
পরিষেবা এবং সমস্ত পদ্ধতিতে অ্যাক্সেসের অনুমতি দেয়।
একবার প্রবেশের নিয়ম চালু হয়ে গেলে, ডেটা স্থানান্তর পৃষ্ঠায় অ্যাক্সেস কোনও সমস্যা ছাড়াই কাজ করা উচিত।
ক্লাউড স্টোরেজ থেকে ডেটা স্থানান্তরের সেটআপ পুনরায় শুরু করুন
পূর্ববর্তী পদক্ষেপগুলি থেকে, ডেটা স্থানান্তর পৃষ্ঠায় থাকাকালীন (ডেটা স্থানান্তর ক্লিক করার পরে), নিম্নলিখিত পদক্ষেপগুলি চালিয়ে যান:
- ক্লিক করুন + স্থানান্তর তৈরি করুন ।
- সোর্স টাইপ বিভাগে, সোর্সের জন্য, Google ক্লাউড স্টোরেজ বেছে নিন।
- স্থানান্তর কনফিগার নাম বিভাগে, প্রদর্শন নামের জন্য, স্থানান্তরের জন্য একটি নাম লিখুন যেমন
Codelab Transfer
। - সময়সূচী বিকল্প বিভাগে:
- একটি পুনরাবৃত্তি ফ্রিকোয়েন্সি নির্বাচন করুন যেমন 15 মিনিট।
- এখনই শুরু করুন নির্বাচন নিশ্চিত করুন; অন্যথায়, কনফিগার করা পুনরাবৃত্তি ফ্রিকোয়েন্সির পরেই ডেটা স্থানান্তর শুরু হবে
- গন্তব্য সেটিংস বিভাগে, গন্তব্য ডেটাসেটের জন্য, আপনার ডেটা সংরক্ষণ করতে আপনার তৈরি করা ডেটাসেটটি বেছে নিন:
codelab_bqtransfer_dataset
- তথ্য উৎস বিবরণ বিভাগে
- গন্তব্য টেবিলের জন্য, আপনার গন্তব্য টেবিলের নাম লিখুন। গন্তব্য টেবিলটি অবশ্যই টেবিলের নামকরণের নিয়ম অনুসরণ করবে। এই কোডল্যাবের জন্য, আমরা আগে তৈরি করা টেবিলটি ব্যবহার করব:
codelab-bqtransfer-table
- ক্লাউড স্টোরেজ ইউআরআই-এর জন্য, ক্লাউড স্টোরেজ ইউআরআই লিখুন। এই কোডল্যাবের জন্য, আমরা তৈরি করা বালতি এবং ফাইল ব্যবহার করি:
codelab-bqtransfer-bucket/codelab-test-file.csv
- লেখার পছন্দের জন্য,
APPEND
রাখুন (বাMIRROR
বেছে নিন)। - স্থানান্তরের পরে ফাইলগুলি মুছে ফেলার জন্য নির্বাচন করবেন না (কারণ আমরা একই ফাইল একাধিকবার পুনরায় ব্যবহার করব। তবে, আপনি একাধিক ফাইল ব্যবহার করতে পারেন এবং স্থানান্তরের পরে উত্স ফাইলগুলি মুছতে পারেন)
- ফাইল ফরম্যাটের জন্য, CSV নির্বাচন করুন
- স্থানান্তর বিকল্পের মধ্যে, CSV-এর অধীনে, ক্ষেত্র বিভাজক হিসাবে কমা(",") লিখুন।
- গন্তব্য টেবিলের জন্য, আপনার গন্তব্য টেবিলের নাম লিখুন। গন্তব্য টেবিলটি অবশ্যই টেবিলের নামকরণের নিয়ম অনুসরণ করবে। এই কোডল্যাবের জন্য, আমরা আগে তৈরি করা টেবিলটি ব্যবহার করব:
- পরিষেবা অ্যাকাউন্ট মেনুতে, আপনার Google ক্লাউড প্রকল্পের সাথে যুক্ত পরিষেবা অ্যাকাউন্টগুলি থেকে একটি পরিষেবা অ্যাকাউন্ট নির্বাচন করুন৷
- নির্বাচিত পরিষেবা অ্যাকাউন্টে স্টোরেজ বালতি হোস্টিং প্রকল্পে উভয় ক্লাউড স্টোরেজের জন্য প্রয়োজনীয় অনুমতি থাকতে হবে;
project-1
এই কোডল্যাবে। - এই কোডল্যাবের জন্য, আমরা
project-2
এ তৈরি করা একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করবcodelab-sa@project-2.iam.gserviceaccount.com
হিসেবে।
- নির্বাচিত পরিষেবা অ্যাকাউন্টে স্টোরেজ বালতি হোস্টিং প্রকল্পে উভয় ক্লাউড স্টোরেজের জন্য প্রয়োজনীয় অনুমতি থাকতে হবে;
- Save এ ক্লিক করুন।
যেহেতু আমরা সময়সূচী বিকল্প হিসাবে Start Now নির্বাচন করেছি, সেভ নির্বাচন করার সাথে সাথেই প্রথম স্থানান্তর শুরু হবে।
ডেটা স্থানান্তর পরিষেবার অবস্থা যাচাই করুন
কনফিগার করা ডেটা স্থানান্তরের স্থিতি যাচাই করতে:
- Google ক্লাউড কনসোলে BigQuery পৃষ্ঠায় যান
- ডেটা স্থানান্তর ক্লিক করুন।
- কনফিগার করা স্থানান্তরের তালিকা প্রদর্শিত হয়
Codelab Transfer
ক্লিক করুন (ডিসপ্লে নামের অধীনে) এবং এটি এখন পর্যন্ত সম্পাদিত সমস্ত রানের একটি তালিকা প্রদর্শন করবে।
ম্যানুয়ালি ট্রিগার করা এবং নির্ধারিত ডেটা ট্রান্সফারের জন্য কোনও VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন ছাড়াই ডেটা ট্রান্সফার রান সফল হওয়া উচিত। উল্লেখ্য যে, শুধুমাত্র ম্যানুয়ালি ট্রিগার করা ট্রান্সফারের প্রিন্সিপালে অ্যাক্সেসের অনুমতি দেওয়ার জন্য প্রবেশের নিয়মের প্রয়োজন, যা ম্যানুয়ালি ট্রান্সফার শুরু করছে।
4. ম্যানুয়ালি ট্রিগার করা ডেটা ট্রান্সফারের জন্য আইপি অ্যাড্রেস সীমাবদ্ধতা
বর্তমান কনফিগার করা প্রবেশের নিয়মগুলি কনফিগার করা পরিচয়কে যেকোনো আইপি ঠিকানা থেকে ম্যানুয়ালি ডেটা স্থানান্তর ট্রিগার করার অনুমতি দেয়।
অ্যাক্সেস লেভেলের ব্যবহারের সাথে, ভিপিসি সার্ভিস কন্ট্রোল নির্দিষ্ট API অনুরোধ বৈশিষ্ট্য দ্বারা অনুমোদিত অ্যাক্সেস সীমিত করার ক্ষমতা প্রদান করে, বিশেষ করে:
- আইপি সাবনেটওয়ার্ক: অনুরোধটি একটি নির্দিষ্ট আইপি ঠিকানা থেকে আসছে কিনা তা পরীক্ষা করে।
- অঞ্চল: অনুরোধটি একটি নির্দিষ্ট অঞ্চল থেকে আসছে কিনা তা পরীক্ষা করে, যা IP ঠিকানার ভূ-অবস্থান দ্বারা নির্ধারিত হয়।
- অধ্যক্ষ: একটি নির্দিষ্ট অ্যাকাউন্ট থেকে অনুরোধ আসছে কিনা তা পরীক্ষা করে।
- ডিভাইস নীতি: অনুরোধটি নির্দিষ্ট প্রয়োজনীয়তা পূরণ করে এমন একটি ডিভাইস থেকে আসছে কিনা তা পরীক্ষা করে।
ইতিমধ্যে কনফিগার করা প্রবেশ নিয়মের সাথে এই বৈশিষ্ট্যগুলির যাচাইকরণ কার্যকর করার জন্য, আমাদের একটি অ্যাক্সেস স্তর তৈরি করতে হবে, যা পছন্দসই বৈশিষ্ট্যগুলিকে অনুমতি দেয় এবং তারপরে প্রবেশের নিয়মে উত্স হিসাবে তৈরি অ্যাক্সেস স্তরটিকে যুক্ত করতে হবে।
এই চিত্রটি তিনটি পরিস্থিতিতে দুটি অধ্যক্ষ (
user@example.com
এবং user2@example.com
) দ্বারা সূচিত অ্যাক্সেসকে চিত্রিত করে, এটি প্রদর্শন করে যে কীভাবে VPC পরিষেবা নিয়ন্ত্রণগুলি উত্স (অনুপ্রবেশের অ্যাক্সেস স্তর) এবং পরিচয় বৈশিষ্ট্যগুলিকে একটি AND শর্ত হিসাবে মূল্যায়ন করে যেখানে উভয়েরই মিল থাকতে হবে .
- ব্যবহারকারী user@example.com অ্যাক্সেস স্তর দ্বারা অনুমোদিত একটি আইপি ঠিকানা থেকে অ্যাক্সেসের চেষ্টা করার সময় অ্যাক্সেসের অনুমতি দেওয়া হয়, কারণ তাদের আইপি ঠিকানা এবং ব্যবহারকারীর অ্যাকাউন্ট প্রবেশের নিয়মের কনফিগারেশনের সাথে মেলে।
- ব্যবহারকারী user@example.com অ্যাক্সেস ব্লক করা হয় যখন তাদের আইপি ঠিকানা অনুমোদিত আইপি ঠিকানার সাথে মেলে না, যদিও তাদের অ্যাকাউন্টটি প্রবেশের নিয়মে কনফিগার করা হয়েছে।
- ব্যবহারকারী user2@example.com একটি অনুমোদিত IP ঠিকানা থেকে অ্যাক্সেস করার চেষ্টা করা সত্ত্বেও অ্যাক্সেস ব্লক করা হয়েছে , কারণ তাদের অ্যাকাউন্ট প্রবেশের নিয়ম দ্বারা অনুমোদিত নয়৷
অ্যাক্সেস লেভেল তৈরি করুন
অ্যাক্সেস স্তর তৈরি করতে যা আইপি ঠিকানা দ্বারা অ্যাক্সেস সীমিত করে :
- Google ক্লাউড কনসোলে অ্যাক্সেস কনটেক্সট ম্যানেজার পৃষ্ঠাটি খুলুন।
- যদি আপনাকে অনুরোধ করা হয়,
codelab-folder
ফোল্ডারটি নির্বাচন করুন।
- যদি আপনাকে অনুরোধ করা হয়,
- অ্যাক্সেস কনটেক্সট ম্যানেজার পৃষ্ঠার শীর্ষে, অ্যাক্সেস লেভেল তৈরি করুন ক্লিক করুন।
- নতুন অ্যাক্সেস লেভেল প্যানে, নতুন অ্যাক্সেস লেভেলকে একটি শিরোনাম দিন। এই কোডল্যাবের জন্য, আমরা একে বলব
project_2_al
। - শর্ত বিভাগে, আইপি সাবনেটওয়ার্কের সামনে + ক্লিক করুন।
- আইপি সাবনেটওয়ার্ক বাক্সে, পাবলিক আইপি নির্বাচন করুন
- বিকল্প হিসাবে, আপনি অ্যাক্সেস লেভেলে অভ্যন্তরীণ IP ঠিকানা ব্যবহার করতে ব্যক্তিগত IP ব্যবহার করতে পারেন। যাইহোক, এই কোডল্যাবের জন্য, আমরা একটি পাবলিক আইপি ব্যবহার করছি।
- CIDR ব্লক হিসাবে ফর্ম্যাট করা এক বা একাধিক IPv4 বা IPv6 রেঞ্জ লিখুন৷
প্রবেশের নিয়মে অ্যাক্সেস লেভেল যোগ করুন
ইনগ্রেস নিয়মের মধ্যে, অ্যাক্সেস লেভেল sources
ফিল্ডের অধীনে উল্লেখ করা হয়, যা ইনগ্রেস রুল রেফারেন্সে নথিভুক্ত একটি প্রয়োজনীয় ক্ষেত্র। সংস্থানগুলিতে প্রবেশের অনুমতি দেওয়ার জন্য, VPC পরিষেবা নিয়ন্ত্রণগুলি একটি AND শর্ত হিসাবে sources
এবং identityType
বৈশিষ্ট্যগুলিকে মূল্যায়ন করে৷ প্রবেশের নিয়মটি ম্যানুয়ালি ডেটা স্থানান্তর ট্রিগারকারী প্রধানের পরিচয় ব্যবহার করে, ডেটা স্থানান্তর কনফিগারেশনে নির্দিষ্ট পরিষেবা অ্যাকাউন্ট নয়।
IP ঠিকানা দ্বারা অ্যাক্সেস সীমিত কনফিগারেশনের সাথে স্থানান্তর পুনরায় চালান
প্রয়োগকৃত কনফিগারেশনের কার্যকারিতা মূল্যায়ন করতে, নিম্নলিখিত পরিস্থিতিগুলি ব্যবহার করে আবার স্থানান্তর ট্রিগার করুন:
- প্রবেশের নিয়ম দ্বারা উল্লেখিত অ্যাক্সেস স্তরে অনুমোদিত পরিসরে IP ঠিকানা ব্যবহার করে।
- কনফিগারেশন দ্বারা অনুমোদিত নয় এমন একটি আইপি ঠিকানা ব্যবহার করা
অনুমোদিত IP ঠিকানা থেকে অ্যাক্সেস সফল হওয়া উচিত যখন অ-অনুমোদিত IP ঠিকানাগুলি থেকে অ্যাক্সেস ব্যর্থ হওয়া উচিত এবং এর ফলে একটি VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন হওয়া উচিত।
একটি ভিন্ন আইপি ঠিকানা ব্যবহার করে পরীক্ষা করার একটি সহজ উপায় হল Google ক্লাউড কনসোল ব্যবহার করার সময় আইপি ঠিকানা বরাদ্দ করা এবং তারপর ক্লাউড শেল ব্যবহার করার সময় পরীক্ষা করা।
ক্লাউড শেল-এ, RUN_TIME এবং RESOURCE_NAME উভয় প্রতিস্থাপন করে ম্যানুয়ালি একটি স্থানান্তর ট্রিগার করতে নিম্নলিখিত কমান্ডটি চালান:
bq mk \
--transfer_run \
--run_time='RUN_TIME' \
RESOURCE_NAME
উদাহরণস্বরূপ, নিম্নলিখিত নমুনা কমান্ডটি 1234567890
প্রকল্পে স্থানান্তর 12345678-90ab-cdef-ghij-klmnopqrstuv
কনফিগারেশনের জন্য অবিলম্বে চলে।
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ");
bq mk \
--transfer_run \
--run_time=$NOW \
projects/1234567890/locations/us/transferConfigs/12345678-90ab-cdef-ghij-klmnopqrstuv
পর্যবেক্ষিত আউটপুট একটি VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন দেখায়, প্রত্যাশিত হিসাবে, যেহেতু IP ঠিকানাটি অনুমোদিত নয়৷
পর্যবেক্ষণ লঙ্ঘন DataTransferService.StartManualTransferRuns
পদ্ধতিতে।
ingressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
targetResource: "projects/[PROJECT2_NUMBER]"
targetResourcePermissions: [0: "vpcsc.permissions.unavailable"]
}]
violationReason: "RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER"
resource: {
labels: {
method: "google.cloud.bigquery.datatransfer.v1.DataTransferService.StartManualTransferRuns"
project_id: "project-2"
service: "bigquerydatatransfer.googleapis.com"
}
type: "audited_resource"
}
severity: "ERROR"
5. ক্লাউড স্টোরেজ পরিষেবা রক্ষা করার সময় ডেটা স্থানান্তর শুরু করা
যেহেতু আমরা ক্লাউড স্টোরেজ থেকে BigQuery-এ ট্রান্সফার করছি, আসুন VPC সার্ভিস কন্ট্রোল দ্বারা সুরক্ষিত পরিষেবাগুলির মধ্যে ক্লাউড স্টোরেজ যোগ করি এবং ট্রান্সফার সফল হয় কিনা তা দেখুন।
perimeter-2
কনফিগারেশনে, BigQuery ডেটা ট্রান্সফার API সহ সীমাবদ্ধ পরিষেবাগুলির একটি হিসাবে ক্লাউড স্টোরেজ API যোগ করুন।
ক্লাউড স্টোরেজ API সুরক্ষিত করার পরে, পরবর্তী নির্ধারিত ডেটা স্থানান্তরের জন্য অপেক্ষা করুন, বা নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে ম্যানুয়ালি একটি স্থানান্তর ট্রিগার করুন :
- Google ক্লাউড কনসোলে BigQuery পৃষ্ঠায় যান।
- ডেটা স্থানান্তর ক্লিক করুন।
- তালিকা থেকে আপনার স্থানান্তর নির্বাচন করুন: এই কোডল্যাবের জন্য, আমরা কোডল্যাব স্থানান্তর স্থানান্তর ব্যবহার করছি
- রান স্থানান্তর এখন ক্লিক করুন
- ওকে ক্লিক করুন।
আরেকটি স্থানান্তর শুরু করা হবে। এটি দেখতে আপনাকে পৃষ্ঠাটি রিফ্রেশ করতে হতে পারে৷ এই সময় স্থানান্তর একটি VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘনের সাথে ব্যর্থ হবে৷
ক্লাউড স্টোরেজ VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন তদন্ত করুন৷
vpcServiceControlsUniqueIdentifier
ব্যবহার করে অডিট লগ ফিল্টার করুন যেমন স্থানান্তর সারাংশে দেখা যায়।
পর্যবেক্ষণ করা লঙ্ঘন হল নিম্নলিখিত বিবরণ সহ একটি RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
প্রস্থান লঙ্ঘন:
- প্রিন্সিপাল হল ডেটা ট্রান্সফার সার্ভিসে কনফিগার করা পরিষেবা অ্যাকাউন্ট (ম্যানুয়ালি ট্রিগার করা হোক বা নির্ধারিত ডেটা ট্রান্সফার চালানো হোক না কেন, অস্বীকার করা প্রিন্সিপাল একই হবে।)
- পরিষেবা প্রভাবিত ক্লাউড স্টোরেজ
- অনুরোধের উৎস হল সেই প্রকল্প যেখানে ডেটা ট্রান্সফার সার্ভিস কনফিগার করা হয়েছে:
project-2
- লক্ষ্য প্রকল্প হল সেই প্রকল্প যেখানে ক্লাউড স্টোরেজ অবজেক্টটি অবস্থিত:
project-1
principalEmail: "codelab-sa@project-2.iam.gserviceaccount.com"
egressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
source: "projects/[PROJECT2_NUMBER]"
sourceType: "Resource"
targetResource: "projects/[PROJECT1_NUMBER]"
targetResourcePermissions: [0: "storage.objects.get"]
}]
labels: {
method: "google.storage.objects.get"
project_id: "project-2"
service: "storage.googleapis.com"
}
ক্লাউড স্টোরেজ এগ্রেস লঙ্ঘন ঠিক করুন
বহির্গমন লঙ্ঘন ঠিক করতে, আমাদের একটি প্রস্থান নিয়ম ব্যবহার করতে হবে যা অস্বীকৃত পরিষেবা অ্যাকাউন্ট থেকে ক্লাউড স্টোরেজ অবজেক্ট সহ প্রকল্পের দিকে ট্রাফিকের অনুমতি দেয়।
পরিসেবা পরিধি perimeter-2
পরিবর্তন করার পর, আবার স্থানান্তর ট্রিগার করার প্রক্রিয়াটি পুনরাবৃত্তি করুন। স্থানান্তর একটি ত্রুটি দেখাবে না.
6. প্রকল্প-2 থেকে প্রকল্প-1-এ BigQuery ডেটাসেট কপি করুন
আমরা project-1
এর ক্লাউড স্টোরেজ বাকেট থেকে project-2
এর BigQuery ডেটাসেটে ডেটা স্থানান্তর করতে পারি তা নিশ্চিত করার পরে, আসুন project-2
থেকে project-1
BigQuery ডেটাসেট কপি করি ; যখন BigQuery API VPC পরিষেবা নিয়ন্ত্রণ দ্বারা সুরক্ষিত।
ডেটাসেট তৈরি এবং অনুলিপি করতে, আমরা bq mk
কমান্ড ব্যবহার করব, যা bq টুল ব্যবহার করে।
project-1
এ গন্তব্য ডেটাসেট তৈরি করুন
ডেটাসেট কপি করার আগে, গন্তব্য ডেটাসেটটি প্রথমে তৈরি করতে হবে। গন্তব্য ডেটাসেট তৈরি করতে, আমরা নিম্নলিখিত কমান্ডটি চালাতে পারি, যা us
কাছে অবস্থান হিসাবে প্রজেক্ট project-1
-এ copied_dataset
নামে একটি ডেটাসেট তৈরি করে।
bq mk \
--dataset \
--location=us \
project-1:copied_dataset
ভিপিসি সার্ভিস কন্ট্রোল সহ project-2
এ BigQuery পরিষেবাকে সুরক্ষিত করুন
পরিধি perimeter-2
এর কনফিগারেশন পরিবর্তন করুন এবং BigQuery ডেটা স্থানান্তর এবং ক্লাউড স্টোরেজ পরিষেবাগুলির সাথে সুরক্ষিত পরিষেবা হিসাবে BigQuery API যোগ করুন।
ডেটাসেট কপি শুরু করুন
ডেটাসেট কপি করতে, নিম্নলিখিত bq mk
কমান্ডটি চালান, যা প্রজেক্ট project-2
এ ডেটাসেট codelab_bqtransfer_dataset
project-1
-এ ডেটাসেট copied_dataset
দিকে কপি করে এবং ডেটাসেটের বিষয়বস্তু ওভাররাইট করে, যদি থাকে।
bq mk \
--transfer_config \
--project_id=project-1 \
--target_dataset=copied_dataset \
--data_source=cross_region_copy \
--display_name='Dataset from project-2 to project-1' \
--params='{
"source_dataset_id":"codelab_bqtransfer_dataset",
"source_project_id":"project-2",
"overwrite_destination_table":"true"
}'
কমান্ড সফলভাবে চালানো হবে; ইতিমধ্যে, ট্রান্সফার কনফিগারেশন সফলভাবে তৈরি করা হয়েছে, ডেটাসেট কপি করার জন্য অপারেশন শুরু করতে। একটি VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন সহ, ডেটাসেট নিজেই অনুলিপি করা ব্যর্থ হবে৷
সংশ্লিষ্ট VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘনের বিবরণ খুঁজে পেতে, নিম্নলিখিত লগ ক্যোয়ারী সহ project-2
(সোর্স ডেটাসেট প্রজেক্ট) লগ ইন চেক করুন। লগ কোয়েরিটি BigQuery পরিষেবাতে লগ ফিল্টার করে এবং কপি করা ডেটাসেটের রিসোর্স নাম ( codelab_bqtransfer_dataset
)।
resource.labels.service="bigquery.googleapis.com"
protoPayload.metadata.resourceNames:"datasets/codelab_bqtransfer_dataset"
পর্যবেক্ষণ করা ভিপিসি সার্ভিস কন্ট্রোল লঙ্ঘন হল project-2
থেকে project-1
পর্যন্ত প্রস্থান লঙ্ঘন।
egressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
source: "projects/[PROJECT-2-NUMBER]"
sourceType: "Resource"
targetResource: "projects/[PROJECT-1-NUMBER]"
targetResourcePermissions: [
0: "bigquery.transfers.update"
1: "bigquery.transfers.get"
2: "bigquery.jobs.create"
]
}
]
method: "bigquery.tables.getData"
service: "bigquery.googleapis.com"
সমস্ত BigQuery লঙ্ঘন ঠিক করুন এবং আবার ডেটাসেট কপি শুরু করুন
বহির্গমন লঙ্ঘন ঠিক করার জন্য, আমাদের একটি প্রস্থান নিয়ম তৈরি করতে হবে যা অস্বীকৃত প্রধানকে অনুমতি দেয়। অস্বীকার করা অধ্যক্ষ হল mk
কমান্ড চালাচ্ছেন।
একবার এগ্রেস নিয়ম চালু হয়ে গেলে, ঘের perimeter-2
এ, ডেটাসেটটি অনুলিপি করতে একই কমান্ড চালান। এই সময়, এটি কোন VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন ছাড়াই সফলভাবে ডেটাসেটটি অনুলিপি করবে৷
7. পরিষ্কার করা
পরিষেবাটি ব্যবহার না করার সময় VPC পরিষেবা নিয়ন্ত্রণগুলি ব্যবহার করার জন্য কোনও আলাদা চার্জ নেই, এই পরীক্ষাগারে ব্যবহৃত সেটআপ পরিষ্কার করার জন্য এটি একটি সর্বোত্তম অনুশীলন৷ চার্জ এড়াতে আপনি VM ইনস্ট্যান্স এবং/অথবা ক্লাউড প্রকল্পগুলিও মুছে ফেলতে পারেন। ক্লাউড প্রকল্প মুছে ফেলা সেই প্রকল্পের মধ্যে ব্যবহৃত সমস্ত সংস্থানগুলির জন্য বিলিং বন্ধ করে দেয়।
- ক্লাউড স্টোরেজ বালতি মুছতে , নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- Google ক্লাউড কনসোলে, ক্লাউড স্টোরেজ বাকেট পৃষ্ঠাতে যান।
- মুছে ফেলার জন্য বালতির চেকবক্স নির্বাচন করুন, এবং তারপর মুছুন ক্লিক করুন।
- প্রদর্শিত ওভারলে উইন্ডোতে, আপনি বালতি এবং এর বিষয়বস্তু মুছতে চান তা নিশ্চিত করুন।
- BigQuery ডেটাসেট মুছতে , নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:
- Google ক্লাউড কনসোলে, BigQuery পৃষ্ঠাতে যান।
- এক্সপ্লোরার ফলকে, আপনার প্রকল্প প্রসারিত করুন এবং একটি ডেটাসেট নির্বাচন করুন।
- তিন-বিন্দু মেনু প্রসারিত করুন এবং মুছুন ক্লিক করুন।
- ডেটাসেট মুছুন ডায়ালগে, ক্ষেত্রের মধ্যে
delete
টাইপ করুন এবং তারপরে মুছুন ক্লিক করুন।
- পরিষেবা পরিধি মুছে ফেলতে , নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- Google ক্লাউড কনসোলে, নিরাপত্তা নির্বাচন করুন এবং তারপরে VPC পরিষেবা নিয়ন্ত্রণগুলি যেখানে অ্যাক্সেস নীতির সুযোগ রয়েছে, এই ক্ষেত্রে ফোল্ডার স্তরে।
- VPC পরিষেবা নিয়ন্ত্রণ পৃষ্ঠায়, আপনি যে ঘেরটি মুছতে চান তার সাথে সম্পর্কিত টেবিলের সারিতে,
Delete Icon
নির্বাচন করুন।
- অ্যাক্সেস লেভেল মুছে ফেলতে , নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- Google ক্লাউড কনসোলে, ফোল্ডার স্কোপে অ্যাক্সেস কনটেক্সট ম্যানেজার পৃষ্ঠাটি খুলুন।
- গ্রিডে, আপনি যে অ্যাক্সেস স্তরটি মুছতে চান তার জন্য সারিটি চিহ্নিত করুন, তিন-বিন্দু মেনু নির্বাচন করুন এবং তারপরে মুছুন নির্বাচন করুন।
- প্রকল্পগুলি বন্ধ করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- Google ক্লাউড কনসোলে, আপনি যে প্রকল্পটি মুছতে চান তার IAM এবং অ্যাডমিন সেটিংস পৃষ্ঠায় যান।
- IAM এবং অ্যাডমিন সেটিংস পৃষ্ঠায়, শাটডাউন নির্বাচন করুন।
- প্রজেক্ট আইডি লিখুন এবং যেভাবেই হোক শাটডাউন নির্বাচন করুন।
8. অভিনন্দন!
এই কোডল্যাবে, আপনি একটি VPC পরিষেবা নিয়ন্ত্রণ পরিধি তৈরি করেছেন, এটি প্রয়োগ করেছেন এবং এটির সমস্যা সমাধান করেছেন৷
আরও জানুন
আপনি নিম্নলিখিত পরিস্থিতিতেও অন্বেষণ করতে পারেন:
- একটি ভিন্ন পরিধিতে
project-1
যোগ করুন যা BigQuery, BigQuery ডেটা ট্রান্সফার পরিষেবা এবং ক্লাউড স্টোরেজকেও রক্ষা করে। - অন্যান্য সমর্থিত উত্স থেকে BigQuery ডেটা স্থানান্তর সম্পাদন করুন৷
- লোকেশন বা ডিভাইস নীতির মতো অন্যান্য বৈশিষ্ট্য দ্বারা ব্যবহারকারীর অ্যাক্সেস সীমাবদ্ধ করুন।
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।