VPC পরিষেবা নিয়ন্ত্রণ - BigQuery ডেটা স্থানান্তর পরিষেবা সুরক্ষা৷

1. ভূমিকা

এই ল্যাবে, আমরা শিখব কীভাবে BigQuery ডেটা ট্রান্সফার পরিষেবাকে রক্ষা করতে হয়, VPC পরিষেবা নিয়ন্ত্রণগুলি ব্যবহার করে, ক্লাউড স্টোরেজ থেকে BigQuery ডেটাসেটে ডেটা স্থানান্তর করার সময়৷ তারপরে আমরা ক্লাউড স্টোরেজ রক্ষা করি এবং ক্লাউড স্টোরেজ থেকে BigQuery-এ ডেটা স্থানান্তর করার প্রক্রিয়াটি পুনরাবৃত্তি করি। ক্লাউড স্টোরেজের সুরক্ষা একটি VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন ঘটায়, যা সফল স্থানান্তরের জন্য সংশোধন করা প্রয়োজন৷ শেষ পর্যন্ত, আমরা BigQuery ও রক্ষা করি এবং তারপরে প্রকল্পগুলির মধ্যে ডেটাসেট কপি করার চেষ্টা করি, যার ফলে একটি লঙ্ঘন হয় যা ঠিক করা প্রয়োজন।

এই ল্যাব জুড়ে, আমরা দেখব কিভাবে ইনগ্রেস এবং এগ্রেস নিয়মগুলি ব্যবহার করে যথাক্রমে প্রবেশ এবং প্রস্থান লঙ্ঘন উভয়ই ঠিক করা যায়। BigQuery ডেটা ট্রান্সফার ইনগ্রেস লঙ্ঘন ঠিক করতে আমরা অ্যাক্সেস লেভেলও ব্যবহার করব। এই কোডল্যাবের লক্ষ্যগুলি হল:

  • বিভিন্ন পরিষেবা, বিশেষ করে ক্লাউড স্টোরেজ, BigQuery এবং BigQuery ডেটা ট্রান্সফার পরিষেবাতে যথাক্রমে প্রবেশ এবং প্রস্থান নিয়মগুলি ব্যবহার করে কীভাবে প্রবেশ এবং বহির্গমন লঙ্ঘনগুলি ঠিক করা যায় তা বুঝুন।
  • কেন একটি নির্দিষ্ট লঙ্ঘন ঘটেছে তা বুঝুন।

2. সম্পদ সেটআপ এবং প্রয়োজনীয়তা

আপনি শুরু করার আগে

এই কোডল্যাবে, আমরা ধরে নিই যে আপনি ইতিমধ্যেই জানেন:

সেটআপ

আমাদের প্রাথমিক সেটআপটি নিম্নরূপ ডিজাইন করা হয়েছে:

কোডল্যাব প্রাথমিক সেটআপ ডায়াগ্রাম

একটি স্কোপড নীতি এবং একটি নিয়মিত পরিষেবা পরিধি তৈরি করুন

এই কোডল্যাবে, আমরা project-2 রক্ষাকারী একটি নিয়মিত পরিষেবা পরিধি ব্যবহার করব।

পরিধির perimeter-2 এ, BigQuery Data Transfer API সীমাবদ্ধ করুন।

VPC SC কনফিগারেশন ডেটা ট্রান্সফার পরিষেবাকে সুরক্ষিত করে।

ক্লাউড স্টোরেজ বাকেট এবং 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

ক্লাউড স্টোরেজে csv ফাইল আপলোড করতে cp কমান্ড চালান।

আপনি যাচাই করতে পারেন যে ফাইলটি তৈরি করা বালতিতে আপলোড করা হয়েছে বালতিতে বস্তু তালিকাবদ্ধ করে বা নিম্নলিখিত কমান্ডটি চালিয়ে:

gcloud storage ls --recursive gs://codelab-bqtransfer-bucket/**

project-2 এ BigQuery ডেটাসেট এবং টেবিল তৈরি করুন

  1. এই ধাপগুলি অনুসরণ করে প্রজেক্ট project-2 এ একটি BigQuery ডেটাসেট তৈরি করুন।
    1. ডেটাসেট আইডির জন্য, একটি অনন্য ডেটাসেটের নাম লিখুন। এই কোডল্যাবের জন্য, আমরা ব্যবহার করি: codelab_bqtransfer_dataset
    2. অবস্থান প্রকারের জন্য, ডেটাসেটের জন্য একটি ভৌগলিক অবস্থান চয়ন করুন৷ এই কোডল্যাবের জন্য, আমরা ক্লাউড স্টোরেজ বাকেটের মতো একই অবস্থান ব্যবহার করি: US (মার্কিন যুক্তরাষ্ট্রের একাধিক অঞ্চল)BigQuery ডেটাসেট তৈরি।
  2. এই ধাপগুলি অনুসরণ করে তৈরি করা ডেটাসেট codelab_bqtransfer_dataset এর অধীনে একটি BigQuery টেবিল তৈরি করুন।
    1. উত্স বিভাগে, তালিকা থেকে তৈরি টেবিলে খালি টেবিল নির্বাচন করুন।
    2. টেবিল ক্ষেত্রে, আপনি যে টেবিলটি তৈরি করতে চান তার নাম লিখুন। এই কোডল্যাবের জন্য, আমরা নাম ব্যবহার করি: codelab-bqtransfer-table
    3. যাচাই করুন যে টেবিল টাইপ ক্ষেত্রটি নেটিভ টেবিলে সেট করা আছে
    4. স্কিমা বিভাগে, স্কিমার সংজ্ঞা লিখুন। আপনি পাঠ্য হিসাবে সম্পাদনা ক্লিক করে স্কিমা তথ্য প্রবেশ করতে পারেন এবং নিম্নলিখিত স্কিমা ইনপুট করতে পারেন, যা তৈরি করা 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 এবং ক্লাউড স্টোরেজকেও সুরক্ষিত না করে) রক্ষা করা প্রিন্সিপালদের শুধুমাত্র ডেটা ট্রান্সফার তৈরি এবং পরিচালনা করতে সীমাবদ্ধ করে (যেমন ম্যানুয়ালি ডেটা ট্রান্সফার শুরু করা)।

ক্লাউড স্টোরেজ থেকে ডেটা ট্রান্সফার সেটআপ করুন

একটি ডেটা স্থানান্তর তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. project-2 এর Google ক্লাউড কনসোলে BigQuery পৃষ্ঠায় যান।
  2. ডেটা স্থানান্তর ক্লিক করুন।

ডেটা স্থানান্তর পরিষেবা পৃষ্ঠায় VPC SC লঙ্ঘন৷

ডেটা স্থানান্তর পৃষ্ঠা অ্যাক্সেস করার সময় লঙ্ঘন তদন্ত করুন

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 পরিষেবা এবং সমস্ত পদ্ধতিতে অ্যাক্সেসের অনুমতি দেয়।

তথ্য স্থানান্তর পদ্ধতির অনুমতি দেওয়ার জন্য প্রবেশের নিয়ম।

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

ক্লাউড স্টোরেজ থেকে ডেটা স্থানান্তরের সেটআপ পুনরায় শুরু করুন

পূর্ববর্তী পদক্ষেপগুলি থেকে, ডেটা স্থানান্তর পৃষ্ঠায় থাকাকালীন (ডেটা স্থানান্তর ক্লিক করার পরে), নিম্নলিখিত পদক্ষেপগুলি চালিয়ে যান:

  1. ক্লিক করুন + স্থানান্তর তৈরি করুন
  2. সোর্স টাইপ বিভাগে, সোর্সের জন্য, Google ক্লাউড স্টোরেজ বেছে নিন।
  3. স্থানান্তর কনফিগার নাম বিভাগে, প্রদর্শন নামের জন্য, স্থানান্তরের জন্য একটি নাম লিখুন যেমন Codelab Transfer
  4. সময়সূচী বিকল্প বিভাগে:
    1. একটি পুনরাবৃত্তি ফ্রিকোয়েন্সি নির্বাচন করুন যেমন 15 মিনিট।
    2. এখনই শুরু করুন নির্বাচন নিশ্চিত করুন; অন্যথায়, কনফিগার করা পুনরাবৃত্তি ফ্রিকোয়েন্সির পরেই ডেটা স্থানান্তর শুরু হবে
  5. গন্তব্য সেটিংস বিভাগে, গন্তব্য ডেটাসেটের জন্য, আপনার ডেটা সংরক্ষণ করতে আপনার তৈরি করা ডেটাসেটটি বেছে নিন: codelab_bqtransfer_dataset
  6. তথ্য উৎস বিবরণ বিভাগে
    1. গন্তব্য টেবিলের জন্য, আপনার গন্তব্য টেবিলের নাম লিখুন। গন্তব্য টেবিলটি অবশ্যই টেবিলের নামকরণের নিয়ম অনুসরণ করবে। এই কোডল্যাবের জন্য, আমরা আগে তৈরি করা টেবিলটি ব্যবহার করব: codelab-bqtransfer-table
    2. ক্লাউড স্টোরেজ ইউআরআই-এর জন্য, ক্লাউড স্টোরেজ ইউআরআই লিখুন। এই কোডল্যাবের জন্য, আমরা তৈরি করা বালতি এবং ফাইল ব্যবহার করি: codelab-bqtransfer-bucket/codelab-test-file.csv
    3. লেখার পছন্দের জন্য, APPEND রাখুন (বা MIRROR বেছে নিন)।
    4. স্থানান্তরের পরে ফাইলগুলি মুছে ফেলার জন্য নির্বাচন করবেন না (কারণ আমরা একই ফাইল একাধিকবার পুনরায় ব্যবহার করব। তবে, আপনি একাধিক ফাইল ব্যবহার করতে পারেন এবং স্থানান্তরের পরে উত্স ফাইলগুলি মুছতে পারেন)
    5. ফাইল ফরম্যাটের জন্য, CSV নির্বাচন করুন
    6. স্থানান্তর বিকল্পের মধ্যে, CSV-এর অধীনে, ক্ষেত্র বিভাজক হিসাবে কমা(",") লিখুন।
  7. পরিষেবা অ্যাকাউন্ট মেনুতে, আপনার Google ক্লাউড প্রকল্পের সাথে যুক্ত পরিষেবা অ্যাকাউন্টগুলি থেকে একটি পরিষেবা অ্যাকাউন্ট নির্বাচন করুন৷
    1. নির্বাচিত পরিষেবা অ্যাকাউন্টে স্টোরেজ বালতি হোস্টিং প্রকল্পে উভয় ক্লাউড স্টোরেজের জন্য প্রয়োজনীয় অনুমতি থাকতে হবে; project-1 এই কোডল্যাবে।
    2. এই কোডল্যাবের জন্য, আমরা project-2 এ তৈরি করা একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করব codelab-sa@project-2.iam.gserviceaccount.com হিসেবে।
  8. Save এ ক্লিক করুন।

যেহেতু আমরা সময়সূচী বিকল্প হিসাবে Start Now নির্বাচন করেছি, সেভ নির্বাচন করার সাথে সাথেই প্রথম স্থানান্তর শুরু হবে।

ডেটা স্থানান্তর পরিষেবার অবস্থা যাচাই করুন

কনফিগার করা ডেটা স্থানান্তরের স্থিতি যাচাই করতে:

ডেটা ট্রান্সফার সার্ভিসের চাকরি।

Codelab Transfer ক্লিক করুন (ডিসপ্লে নামের অধীনে) এবং এটি এখন পর্যন্ত সম্পাদিত সমস্ত রানের একটি তালিকা প্রদর্শন করবে।

ডাটা ট্রান্সফার সার্ভিসের বিবরণ চলে।

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

4. ম্যানুয়ালি ট্রিগার করা ডেটা ট্রান্সফারের জন্য আইপি অ্যাড্রেস সীমাবদ্ধতা

বর্তমান কনফিগার করা প্রবেশের নিয়মগুলি কনফিগার করা পরিচয়কে যেকোনো আইপি ঠিকানা থেকে ম্যানুয়ালি ডেটা স্থানান্তর ট্রিগার করার অনুমতি দেয়।

অ্যাক্সেস লেভেলের ব্যবহারের সাথে, ভিপিসি সার্ভিস কন্ট্রোল নির্দিষ্ট API অনুরোধ বৈশিষ্ট্য দ্বারা অনুমোদিত অ্যাক্সেস সীমিত করার ক্ষমতা প্রদান করে, বিশেষ করে:

  • আইপি সাবনেটওয়ার্ক: অনুরোধটি একটি নির্দিষ্ট আইপি ঠিকানা থেকে আসছে কিনা তা পরীক্ষা করে।
  • অঞ্চল: অনুরোধটি একটি নির্দিষ্ট অঞ্চল থেকে আসছে কিনা তা পরীক্ষা করে, যা IP ঠিকানার ভূ-অবস্থান দ্বারা নির্ধারিত হয়।
  • অধ্যক্ষ: একটি নির্দিষ্ট অ্যাকাউন্ট থেকে অনুরোধ আসছে কিনা তা পরীক্ষা করে।
  • ডিভাইস নীতি: অনুরোধটি নির্দিষ্ট প্রয়োজনীয়তা পূরণ করে এমন একটি ডিভাইস থেকে আসছে কিনা তা পরীক্ষা করে।

ইতিমধ্যে কনফিগার করা প্রবেশ নিয়মের সাথে এই বৈশিষ্ট্যগুলির যাচাইকরণ কার্যকর করার জন্য, আমাদের একটি অ্যাক্সেস স্তর তৈরি করতে হবে, যা পছন্দসই বৈশিষ্ট্যগুলিকে অনুমতি দেয় এবং তারপরে প্রবেশের নিয়মে উত্স হিসাবে তৈরি অ্যাক্সেস স্তরটিকে যুক্ত করতে হবে।

ব্যবহারকারীর আইপি ঠিকানা দ্বারা ভিপিসি এসসি দ্বারা সুরক্ষিত অ্যাক্সেস এই চিত্রটি তিনটি পরিস্থিতিতে দুটি অধ্যক্ষ ( user@example.com এবং user2@example.com ) দ্বারা সূচিত অ্যাক্সেসকে চিত্রিত করে, এটি প্রদর্শন করে যে কীভাবে VPC পরিষেবা নিয়ন্ত্রণগুলি উত্স (অনুপ্রবেশের অ্যাক্সেস স্তর) এবং পরিচয় বৈশিষ্ট্যগুলিকে একটি AND শর্ত হিসাবে মূল্যায়ন করে যেখানে উভয়েরই মিল থাকতে হবে .

  1. ব্যবহারকারী user@example.com অ্যাক্সেস স্তর দ্বারা অনুমোদিত একটি আইপি ঠিকানা থেকে অ্যাক্সেসের চেষ্টা করার সময় অ্যাক্সেসের অনুমতি দেওয়া হয়, কারণ তাদের আইপি ঠিকানা এবং ব্যবহারকারীর অ্যাকাউন্ট প্রবেশের নিয়মের কনফিগারেশনের সাথে মেলে।
  2. ব্যবহারকারী user@example.com অ্যাক্সেস ব্লক করা হয় যখন তাদের আইপি ঠিকানা অনুমোদিত আইপি ঠিকানার সাথে মেলে না, যদিও তাদের অ্যাকাউন্টটি প্রবেশের নিয়মে কনফিগার করা হয়েছে।
  3. ব্যবহারকারী user2@example.com একটি অনুমোদিত IP ঠিকানা থেকে অ্যাক্সেস করার চেষ্টা করা সত্ত্বেও অ্যাক্সেস ব্লক করা হয়েছে , কারণ তাদের অ্যাকাউন্ট প্রবেশের নিয়ম দ্বারা অনুমোদিত নয়৷

অ্যাক্সেস লেভেল তৈরি করুন

অ্যাক্সেস স্তর তৈরি করতে যা আইপি ঠিকানা দ্বারা অ্যাক্সেস সীমিত করে :

  1. Google ক্লাউড কনসোলে অ্যাক্সেস কনটেক্সট ম্যানেজার পৃষ্ঠাটি খুলুন।
    • যদি আপনাকে অনুরোধ করা হয়, codelab-folder ফোল্ডারটি নির্বাচন করুন।
  2. অ্যাক্সেস কনটেক্সট ম্যানেজার পৃষ্ঠার শীর্ষে, অ্যাক্সেস লেভেল তৈরি করুন ক্লিক করুন।
  3. নতুন অ্যাক্সেস লেভেল প্যানে, নতুন অ্যাক্সেস লেভেলকে একটি শিরোনাম দিন। এই কোডল্যাবের জন্য, আমরা একে বলব project_2_al
  4. শর্ত বিভাগে, আইপি সাবনেটওয়ার্কের সামনে + ক্লিক করুন।
  5. আইপি সাবনেটওয়ার্ক বাক্সে, পাবলিক আইপি নির্বাচন করুন

প্রবেশের নিয়মে অ্যাক্সেস লেভেল যোগ করুন

ইনগ্রেস নিয়মের মধ্যে, অ্যাক্সেস লেভেল 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 ঠিকানাটি অনুমোদিত নয়৷

অ-অনুমোদিত IP ঠিকানা থেকে VPC SC লঙ্ঘন।

পর্যবেক্ষণ লঙ্ঘন 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 যোগ করুন।

VPC SC কনফিগারেশন ক্লাউড স্টোরেজ রক্ষা করে।

ক্লাউড স্টোরেজ API সুরক্ষিত করার পরে, পরবর্তী নির্ধারিত ডেটা স্থানান্তরের জন্য অপেক্ষা করুন, বা নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে ম্যানুয়ালি একটি স্থানান্তর ট্রিগার করুন :

  1. Google ক্লাউড কনসোলে BigQuery পৃষ্ঠায় যান।
  2. ডেটা স্থানান্তর ক্লিক করুন।
  3. তালিকা থেকে আপনার স্থানান্তর নির্বাচন করুন: এই কোডল্যাবের জন্য, আমরা কোডল্যাব স্থানান্তর স্থানান্তর ব্যবহার করছি
  4. রান স্থানান্তর এখন ক্লিক করুন
  5. ওকে ক্লিক করুন।

আরেকটি স্থানান্তর শুরু করা হবে। এটি দেখতে আপনাকে পৃষ্ঠাটি রিফ্রেশ করতে হতে পারে৷ এই সময় স্থানান্তর একটি VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘনের সাথে ব্যর্থ হবে৷

BigQuery ডেটাসেট কপি করার জন্য VPC SC লঙ্ঘন।

ক্লাউড স্টোরেজ 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 যোগ করুন।

ক্লাউড স্টোরেজ API সুরক্ষিত করতে VPC SC কনফিগার করা হয়েছে।

ডেটাসেট কপি শুরু করুন

ডেটাসেট কপি করতে, নিম্নলিখিত 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 কমান্ড চালাচ্ছেন।

সমস্ত BigQuery পদ্ধতিতে অ্যাক্সেসের অনুমতি দেওয়ার নিয়ম।

একবার এগ্রেস নিয়ম চালু হয়ে গেলে, ঘের perimeter-2 এ, ডেটাসেটটি অনুলিপি করতে একই কমান্ড চালান। এই সময়, এটি কোন VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন ছাড়াই সফলভাবে ডেটাসেটটি অনুলিপি করবে৷

7. পরিষ্কার করা

পরিষেবাটি ব্যবহার না করার সময় VPC পরিষেবা নিয়ন্ত্রণগুলি ব্যবহার করার জন্য কোনও আলাদা চার্জ নেই, এই পরীক্ষাগারে ব্যবহৃত সেটআপ পরিষ্কার করার জন্য এটি একটি সর্বোত্তম অনুশীলন৷ চার্জ এড়াতে আপনি VM ইনস্ট্যান্স এবং/অথবা ক্লাউড প্রকল্পগুলিও মুছে ফেলতে পারেন। ক্লাউড প্রকল্প মুছে ফেলা সেই প্রকল্পের মধ্যে ব্যবহৃত সমস্ত সংস্থানগুলির জন্য বিলিং বন্ধ করে দেয়।

  • ক্লাউড স্টোরেজ বালতি মুছতে , নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
    • Google ক্লাউড কনসোলে, ক্লাউড স্টোরেজ বাকেট পৃষ্ঠাতে যান।
    • মুছে ফেলার জন্য বালতির চেকবক্স নির্বাচন করুন, এবং তারপর মুছুন ক্লিক করুন।
    • প্রদর্শিত ওভারলে উইন্ডোতে, আপনি বালতি এবং এর বিষয়বস্তু মুছতে চান তা নিশ্চিত করুন। ক্লাউড স্টোরেজ বালতি মুছে ফেলা।
  • BigQuery ডেটাসেট মুছতে , নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:
    • Google ক্লাউড কনসোলে, BigQuery পৃষ্ঠাতে যান।
    • এক্সপ্লোরার ফলকে, আপনার প্রকল্প প্রসারিত করুন এবং একটি ডেটাসেট নির্বাচন করুন।
    • তিন-বিন্দু মেনু প্রসারিত করুন এবং মুছুন ক্লিক করুন।
    • ডেটাসেট মুছুন ডায়ালগে, ক্ষেত্রের মধ্যে delete টাইপ করুন এবং তারপরে মুছুন ক্লিক করুন। BigQuery ডেটাসেট মুছে ফেলা।
  • পরিষেবা পরিধি মুছে ফেলতে , নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
    • Google ক্লাউড কনসোলে, নিরাপত্তা নির্বাচন করুন এবং তারপরে VPC পরিষেবা নিয়ন্ত্রণগুলি যেখানে অ্যাক্সেস নীতির সুযোগ রয়েছে, এই ক্ষেত্রে ফোল্ডার স্তরে।
    • VPC পরিষেবা নিয়ন্ত্রণ পৃষ্ঠায়, আপনি যে ঘেরটি মুছতে চান তার সাথে সম্পর্কিত টেবিলের সারিতে, Delete Icon নির্বাচন করুন।
  • অ্যাক্সেস লেভেল মুছে ফেলতে , নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
    • Google ক্লাউড কনসোলে, ফোল্ডার স্কোপে অ্যাক্সেস কনটেক্সট ম্যানেজার পৃষ্ঠাটি খুলুন।
    • গ্রিডে, আপনি যে অ্যাক্সেস স্তরটি মুছতে চান তার জন্য সারিটি চিহ্নিত করুন, তিন-বিন্দু মেনু নির্বাচন করুন এবং তারপরে মুছুন নির্বাচন করুন।
  • প্রকল্পগুলি বন্ধ করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
    • Google ক্লাউড কনসোলে, আপনি যে প্রকল্পটি মুছতে চান তার IAM এবং অ্যাডমিন সেটিংস পৃষ্ঠায় যান।
    • IAM এবং অ্যাডমিন সেটিংস পৃষ্ঠায়, শাটডাউন নির্বাচন করুন।
    • প্রজেক্ট আইডি লিখুন এবং যেভাবেই হোক শাটডাউন নির্বাচন করুন।

8. অভিনন্দন!

এই কোডল্যাবে, আপনি একটি VPC পরিষেবা নিয়ন্ত্রণ পরিধি তৈরি করেছেন, এটি প্রয়োগ করেছেন এবং এটির সমস্যা সমাধান করেছেন৷

আরও জানুন

আপনি নিম্নলিখিত পরিস্থিতিতেও অন্বেষণ করতে পারেন:

  • একটি ভিন্ন পরিধিতে project-1 যোগ করুন যা BigQuery, BigQuery ডেটা ট্রান্সফার পরিষেবা এবং ক্লাউড স্টোরেজকেও রক্ষা করে।
  • অন্যান্য সমর্থিত উত্স থেকে BigQuery ডেটা স্থানান্তর সম্পাদন করুন৷
  • লোকেশন বা ডিভাইস নীতির মতো অন্যান্য বৈশিষ্ট্য দ্বারা ব্যবহারকারীর অ্যাক্সেস সীমাবদ্ধ করুন।

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।