VPC পরিষেবা নিয়ন্ত্রণ - BigQuery সুরক্ষা কোডল্যাব I

1. ভূমিকা

এই কোডল্যাবে, আপনি শিখবেন কিভাবে ভিপিসি সার্ভিস কন্ট্রোল ব্যবহার করে BigQuery API রক্ষা করতে হয়। কোডল্যাবটি পরিষেবা পরিধি দ্বারা সুরক্ষিত কোনও API পরিষেবা ছাড়াই শুরু হয়, যা সার্বজনিক ডেটাসেটে কোয়েরি চালানোর অনুমতি দেয় এবং ফলাফলগুলি একটি প্রকল্প টেবিলে সংরক্ষণ করা হয়। ক্যোয়ারীটি একটি প্রকল্পে চলে এবং টেবিলটি (যেখানে ফলাফল সংরক্ষণ করা হয়) অন্য একটি প্রকল্পে তৈরি করা হয়, একটি সেটআপের অনুকরণ করে যেখানে একটি প্রকল্পে ডেটা সংরক্ষণ করা যেতে পারে তবে একটি ভিন্ন প্রকল্প ব্যবহার করে অ্যাক্সেস করা প্রয়োজন।

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

  • অনুপ্রবেশ এবং প্রস্থান নিয়মগুলি ব্যবহার করে যথাক্রমে প্রবেশ এবং প্রস্থান লঙ্ঘনগুলি কীভাবে ঠিক করা যায় তা বুঝুন।
  • কেন একটি নির্দিষ্ট লঙ্ঘন ঘটেছে তা বুঝুন।
  • প্রয়োগকৃত লঙ্ঘন সংশোধনের সুযোগ বিশ্লেষণ করুন।
  • অ্যাক্সেস লেভেল ব্যবহার করে ভিপিসি নেটওয়ার্কে অভ্যন্তরীণ আইপি অ্যাড্রেস থেকে ট্র্যাফিকের অনুমতি দেওয়ার বিকল্পটি ব্যবহার করে এর সুযোগ পরিবর্তন করতে ফিক্স (ইনগ্রেস / এগ্রেস নিয়ম) পরিবর্তন করুন।

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

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

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

সেটআপ

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

পরিষেবা পরিধি সহ প্রাথমিক নকশা কোন API রক্ষা করে না।

একটি নিয়মিত পরিষেবা পরিধি তৈরি করুন

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

কম্পিউট ইঞ্জিন ভিএম তৈরি করুন

এই কোডল্যাবে, আমরা project-2 এ 1টি কম্পিউট ইঞ্জিন ইন্সট্যান্স ব্যবহার করব, যা us-central1 এ অবস্থিত এবং default নামে ডিফল্ট VPC নেটওয়ার্ক ব্যবহার করব।

খরচ

ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে Google ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। আমরা এই কোডল্যাবের বাইরে বিলিং এড়াতে ব্যবহৃত সংস্থানগুলি বন্ধ করার পরামর্শ দিই। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

যে সম্পদগুলির জন্য খরচ হয় তা হল BigQuery এবং Compute Engine উদাহরণ। আপনি BigQuery প্রাইসিং ক্যালকুলেটর এবং Compute Engine প্রাইসিং ক্যালকুলেটর ব্যবহার করে খরচ অনুমান করতে পারেন।

3. VPC পরিষেবা নিয়ন্ত্রণ সীমাবদ্ধতা ছাড়া BigQuery-এ অ্যাক্সেস

সার্বজনীন ডেটাসেট অনুসন্ধান করুন এবং project-1 এ ফলাফল সংরক্ষণ করুন

  1. আপনি BigQuery স্টুডিও পৃষ্ঠায় গিয়ে BigQuery API অ্যাক্সেস করতে পারবেন কিনা তা যাচাই করতে project-2 এবং project-1 অ্যাক্সেস করুন। আপনার এটি করতে সক্ষম হওয়া উচিত কারণ project-1 পরিষেবার পরিধিতে থাকলেও, পরিধিটি এখনও কোনও পরিষেবাকে রক্ষা করছে না।
  2. project-2 থেকে, একটি পাবলিক ডেটাসেট অনুসন্ধান করতে নিম্নলিখিত ক্যোয়ারীটি চালান।
SELECT  name, SUM(number) AS total
FROM  `bigquery-public-data.usa_names.usa_1910_2013`
GROUP BY   name
ORDER BY total DESC
LIMIT 10;

সর্বজনীন ডেটাসেটে ক্যোয়ারী চালানোর পর ( project-2 এ থাকা অবস্থায়):

  1. Save Results- এ ক্লিক করুন এবং BigQuery টেবিলটি নির্বাচন করুন। (নীচের স্ক্রিনশট পড়ুন)। BigQuery ফলাফল সংরক্ষণ করুন।
  2. গন্তব্য প্রকল্প হিসাবে project-1 নির্বাচন করুন।
  3. codelab_dataset হিসাবে ডেটাসেটের নাম দিন। (একটি বিদ্যমান ডেটাসেট ব্যবহার না করলে নতুন ডেটাসেট তৈরি করুন নির্বাচন করুন)। BigQuery ফলাফল সংরক্ষণ করার সময় গন্তব্য প্রকল্প বেছে নেওয়া।
  4. টেবিলের নাম দিন: codelab-table
  5. Save এ ক্লিক করুন।

project-2 থেকে ক্যোয়ারী চালানোর ফলে পাবলিক ডেটাসেট ডেটা project-1 এ সফলভাবে সংরক্ষণ করা হয়েছে।

project-2 থেকে project-1 এ কোয়েরি ডেটাসেট সংরক্ষিত

project-2 BigQuery স্টুডিওতে থাকাকালীন, এখান থেকে ডেটা নির্বাচন করতে নিম্নলিখিত ক্যোয়ারী চালান:

  • প্রকল্পঃ project-1
  • ডেটাসেট: codelab_dataset
  • টেবিল: codelab-table
SELECT name, total
FROM `project-1.codelab_dataset.codelab-table`
ORDER BY total DESC
LIMIT 10;

কোয়েরিটি সফলভাবে চালানো উচিত, কারণ project-2 বা project-1 কোনোটাই BigQuery ব্যবহার করার জন্য সীমাবদ্ধ নয়। যতক্ষণ ব্যবহারকারীর উপযুক্ত IAM অনুমতি থাকে ততক্ষণ পর্যন্ত যেকোনও জায়গা থেকে BigQuery-এ অ্যাক্সেস অনুমোদিত।

VPC পরিষেবা নিয়ন্ত্রণ পরিষেবা পরিধি ছাড়া কোডল্যাব সেটআপ৷ এই চিত্রটি প্রক্রিয়াটি ব্যাখ্যা করে যখন একজন প্রধান ব্যক্তি একটি BigQuery ডেটাসেটকে জিজ্ঞাসা করেন। প্রতিটি BigQuery ক্যোয়ারী একটি BigQuery কাজ শুরু করে, যা তারপরে এই পরিস্থিতিতে ডেটা পুনরুদ্ধার করে প্রকৃত অপারেশন করে। একটি পাবলিক ডেটাসেট এবং একটি পৃথক Google ক্লাউড প্রকল্প থেকে জিজ্ঞাসা করার সময় একটি Compute Engine উদাহরণ এবং ইন্টারনেট থেকে প্রধান অ্যাক্সেস প্রদর্শিত হয়৷ ডেটা ( GetData ) জিজ্ঞাসা করার প্রক্রিয়াটি VPC পরিষেবা নিয়ন্ত্রণ দ্বারা অবরুদ্ধ না করেই সফল৷

4. সোর্স ডেটাসেট প্রোজেক্টে BigQuery API রক্ষা করুন

পরিধি perimeter-1 এর কনফিগারেশন পরিবর্তন করুন এবং BigQuery API পরিষেবাকে সীমাবদ্ধ করুন এবং project-1 হচ্ছে সুরক্ষিত সংস্থান।

পরিষেবা পরিধি কনফিগার করা হচ্ছে

পরিষেবা পরিধি প্রয়োগ যাচাই করুন

project-2 থেকে, পূর্ববর্তী ধাপের মতো BigQuery স্টুডিওতে নিম্নলিখিত ক্যোয়ারী চালান:

SELECT name, total
FROM `project-1.codelab_dataset.codelab-table`
ORDER BY total DESC
LIMIT 10;

একটি VPC পরিষেবা নিয়ন্ত্রণ RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER লঙ্ঘন ঘটবে

Egress VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন

লঙ্ঘন অডিট লগটি project-1 এ অবস্থিত হবে, কারণ সেখানেই ঘের অতিক্রম করার লঙ্ঘন ঘটেছে। লগগুলিকে পর্যবেক্ষণ করা vpcServiceControlsUniqueId দিয়ে ফিল্টার করা যেতে পারে ( VPC_SC_DENIAL_UNIQUE_ID পর্যবেক্ষণ করা অনন্য আইডি দিয়ে প্রতিস্থাপন করুন)।

severity=ERROR
resource.type="audited_resource"
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.metadata.vpcServiceControlsUniqueId="[*VPC_SC_DENIAL_UNIQUE_ID*]"

লঙ্ঘন হল একটি egressViolations যার সাথে:

  • principalEmail : [ব্যবহারকারীর অ্যাকাউন্ট অনুসন্ধান চালাচ্ছে]
  • callerIp : [কোয়েরি চালাচ্ছেন ব্যবহারকারী এজেন্টের আইপি ঠিকানা]
     "egressViolations": [
       {
         "targetResource": "projects/project-2",
         "sourceType": "Resource",
         "source": "projects/project-1",
         "servicePerimeter": "accessPolicies/REDACTED/servicePerimeters/perimeter-1",
         "targetResourcePermissions": [ "bigquery.jobs.create"]
       }      ],

5. BigQuery কাজ তৈরি করতে লঙ্ঘনের সমাধান করা

BigQuery চাকরি তৈরির জন্য এগ্রেস ট্রাফিক ব্যর্থ হয়েছে। এই চিত্রটি চিত্রিত করে যখন একজন প্রিন্সিপল project-1 এ একটি ডেটাসেটের জন্য project-2 থেকে একটি প্রশ্ন চালান। একটি BigQuery কাজ তৈরি করার অপারেশন, ডেটাসেট প্রোজেক্ট ( project-1 ) থেকে যে প্রোজেক্টে ( project-2 ) থেকে কোয়েরি চালানো হয় সেখানে একটি ভিপিসি সার্ভিস কন্ট্রোল এগ্রেস লঙ্ঘন ব্যর্থ হয় যার কারণে সার্ভিস পেরিমিটার perimeter-1 BigQuery এপিআইকে সুরক্ষা দেয়। ঘেরের জায়গায়, কোন BigQuery API অনুরোধ project-1 থেকে পরিধির বাইরের দিকে শুরু করা যাবে না বা সুরক্ষিত প্রকল্পের দিকে ঘেরের বাইরে শুরু করা যাবে না; পরিষেবা পরিধি কনফিগারেশন দ্বারা অনুমোদিত না হলে।

একটি প্রস্থান লঙ্ঘন একটি প্রস্থান নিয়ম তৈরি করে সংশোধন করা যেতে পারে যা এর উপর ভিত্তি করে:

  • উত্স (ফ্রম): যথা ব্যবহারকারীর ইমেল ঠিকানা এবং প্রসঙ্গ (যেমন: কলার আইপি ঠিকানা, ডিভাইসের অবস্থা, অবস্থান, ইত্যাদি)
  • গন্তব্য (TO): যথা লক্ষ্য সম্পদ, পরিষেবা, এবং পদ্ধতি বা অনুমতি।

পর্যবেক্ষিত বহির্গমন লঙ্ঘন ঠিক করতে, একটি বহির্গমন নিয়ম তৈরি করুন যা BigQuery পরিষেবাতে কোয়েরি ( user@example.com ) চালানো ব্যবহারকারী অ্যাকাউন্টের দ্বারা targetResource ( project-2 ) এর দিকে ট্রাফিকের অনুমতি দেয় এবং bigquery.jobs.create পদ্ধতি/ অনুমতি দেয় .

এগ্রেস লঙ্ঘন কনফিগারেশন ঠিক করুন।

কনফিগার করা প্রস্থান নিয়ম থেকে প্রত্যাশিত আচরণ:

  • থেকে | পরিচয়: শুধুমাত্র নির্দিষ্ট পরিচয় user@example.com পরিধির সীমানা অতিক্রম করার অনুমতি দিতে হবে।
  • TO | প্রকল্পগুলি: নির্দিষ্ট পরিচয় শুধুমাত্র যদি গন্তব্য নির্দিষ্ট প্রকল্প project-2 হয় তবেই পরিধির সীমানা অতিক্রম করতে পারে।
  • TO | পরিষেবাগুলি: নির্দিষ্ট পরিচয় শুধুমাত্র নির্দিষ্ট পরিষেবা এবং পদ্ধতির জন্য API কল হলেই নির্দিষ্ট প্রকল্পের দিকে, পরিধির বাইরে ট্র্যাফিক শুরু করতে পারে৷ অন্যথায়, উদাহরণস্বরূপ, যদি তারা পরিষেবা পরিধি দ্বারা সুরক্ষিত একটি ভিন্ন পরিষেবা চেষ্টা করে, তবে অপারেশনটি ব্লক করা হবে কারণ অন্যান্য পরিষেবাগুলি অনুমোদিত নয়৷

ফিক্স পরীক্ষা করুন: প্রস্থান নিয়ম

একবার প্রস্থানের নিয়ম চালু হলে, একই ক্যোয়ারী চালান।

SELECT name, total
FROM `project-1.codelab_dataset.codelab-table`
ORDER BY total DESC
LIMIT 10;

আরেকটি লঙ্ঘন ঘটবে, এবার একটি NO_MATCHING_ACCESS_LEVEL প্রবেশ লঙ্ঘন৷ নতুন লঙ্ঘন প্রথমটির থেকে আলাদা, লক্ষ্য প্রকল্প এবং পদ্ধতির ক্ষেত্রে।

প্রবেশ VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন

নতুন লঙ্ঘন একটি প্রবেশ লঙ্ঘন সঙ্গে

  • principalEmail : [ব্যবহারকারীর অ্যাকাউন্ট অনুসন্ধান চালাচ্ছে]
  • callerIp : [কোয়েরি চালাচ্ছেন ব্যবহারকারী এজেন্টের আইপি ঠিকানা]
ingressViolations: [
0: {
 servicePerimeter: "accessPolicies/REDACTED/servicePerimeters/perimeter-1"
 targetResource: "projects/project-1"
 targetResourcePermissions: [0: "bigquery.tables.getData"]}
 ]

bigquery.tables.getData পদ্ধতির লঙ্ঘনটি BigQuery জব দ্বারা শুরু করা একটি API কলের কারণে হয়েছে যা BigQuery টেবিল থেকে ডেটা পাওয়ার চেষ্টা করছে।

6. BigQuery টেবিল ডেটা পেতে লঙ্ঘন সংশোধন করা

একটি প্রবেশ বিধি একটি প্রবেশ লঙ্ঘনকে সংশোধন করে, যখন অনুমতিপ্রাপ্ত অ্যাক্সেসের প্রেক্ষাপট সহ কাকে পরিষেবা পরিধির সীমানা অতিক্রম করার অনুমতি দেওয়া হবে তার উপর একটি দানাদার নিয়ন্ত্রণ প্রদান করে, যেমন উৎস/লক্ষ্য প্রকল্প এবং তারা যে API পদ্ধতি অ্যাক্সেস করতে পারে।

একটি প্রবেশ লঙ্ঘন একটি প্রবেশ বিধি দ্বারা সংশোধন করা হয় যা এর সাথে কনফিগার করা হয়েছে:

  • উত্স (ফ্রম): যথা ব্যবহারকারীর ইমেল ঠিকানা এবং প্রসঙ্গ (যেমন: কলার আইপি ঠিকানা, ডিভাইসের অবস্থা, অবস্থান, ইত্যাদি)
  • গন্তব্য (TO): যথা লক্ষ্য সম্পদ, পরিষেবা, এবং পদ্ধতি বা অনুমতি।

প্রবেশের নিয়মটি নির্দিষ্ট পরিষেবা এবং পদ্ধতিতে নির্দিষ্ট ব্যবহারকারীর দ্বারা project-1 দিকে ট্র্যাফিকের অনুমতি দেবে।

প্রবেশ লঙ্ঘন ফিক্স

কনফিগার করা প্রবেশ নিয়ম থেকে প্রত্যাশিত আচরণ:

  • থেকে | পরিচয়: শুধুমাত্র নির্দিষ্ট পরিচয় user@example.com পরিধির সীমানা অতিক্রম করার অনুমতি দিতে হবে।
  • TO | প্রকল্পগুলি: নির্দিষ্ট পরিচয় শুধুমাত্র যদি গন্তব্যটি নির্দিষ্ট প্রকল্প project-1 হলেই পরিধির সীমানা অতিক্রম করতে পারে।
  • TO | পরিষেবাগুলি: নির্দিষ্ট পরিচয় শুধুমাত্র যদি API কল BigQuery API এবং নির্দিষ্ট পদ্ধতি bigquery.tables.getData এর জন্য হয় তবেই পরিধির ভিতরে ট্রাফিক শুরু করতে পারে।

অভিন্ন ক্যোয়ারীটি এখন থেকে VPC পরিষেবা নিয়ন্ত্রণ লঙ্ঘন ছাড়াই যথাযথভাবে কাজ করা উচিত।

আমরা project-1 এ BigQuery API সফলভাবে সীমাবদ্ধ করেছি যাতে এটি শুধুমাত্র user@example.com ব্যবহার করতে পারে, user2@example.com দ্বারা নয়।

ভিপিসি সার্ভিস কন্ট্রোল পরিধিকে রক্ষা করে BigQuery API এই চিত্রটি ব্যাখ্যা করে কিভাবে দুটি ভিন্ন প্রিন্সিপাল একই ডেটাসেট অনুসন্ধান করার চেষ্টা করে। user2@example.com (বিন্দুযুক্ত নীল রেখা) দ্বারা অ্যাক্সেস VPC পরিষেবা নিয়ন্ত্রণ দ্বারা অস্বীকার করা হয়েছে, কারণ পরিষেবা পরিধি কনফিগারেশন দ্বারা project-1 থেকে বা তার দিকে BigQuery অপারেশন চালানোর অনুমতি নেই৷ user@example.com (সবুজ কঠিন লাইন) দ্বারা অ্যাক্সেস সফল, কারণ তারা VPC পরিষেবা নিয়ন্ত্রণ কনফিগারেশন দ্বারা অনুমোদিত, project-1 থেকে এবং এর দিকে ক্রিয়াকলাপ সম্পাদন করতে।

7. অভ্যন্তরীণ IP ঠিকানার উপর ভিত্তি করে পরিষেবা পরিধি দ্বারা অনুমোদিত ট্র্যাফিক সীমাবদ্ধ করুন৷

বর্তমান কনফিগারেশন যে কোনো অবস্থান থেকে project-1 এ BigQuery-এ প্রশ্ন চালাতে মনোনীত ব্যবহারকারীকে সক্ষম করে; ইন্টারনেটের যে কোনো জায়গায়, যদি তাদের ডেটা অনুসন্ধান করার জন্য IAM অনুমতি দেওয়া হয় এবং যতক্ষণ না তারা তাদের অ্যাকাউন্ট ব্যবহার করে। নিরাপত্তার দৃষ্টিকোণ থেকে, এটি বোঝায় যে অ্যাকাউন্টটি আপস করা হলে, যে কোনো ব্যক্তি যিনি অ্যাকাউন্টে অ্যাক্সেস লাভ করেন তিনি কোনো অতিরিক্ত বিধিনিষেধ ছাড়াই BigQuery ডেটা অ্যাক্সেস করতে সক্ষম।

ব্যবহারকারীর প্রসঙ্গ নির্দিষ্ট করতে প্রবেশ এবং প্রস্থান নিয়মে অ্যাক্সেস লেভেল ব্যবহার করে আরও বিধিনিষেধ প্রয়োগ করা যেতে পারে। উদাহরণস্বরূপ, আপনি পূর্বে কনফিগার করা ইনগ্রেস নিয়মের সাথে একত্রে সোর্স আইপির উপর ভিত্তি করে অ্যাক্সেসের অনুমতি দিতে পারেন যা কলার পরিচয় দ্বারা অ্যাক্সেস অনুমোদন করে। উৎস আইপি দ্বারা অ্যাক্সেস উভয় পাবলিক আইপি CIDR রেঞ্জের জন্যই সম্ভব, যদি ব্যবহারকারী ক্লায়েন্টের কাছে একটি পাবলিক আইপি বরাদ্দ থাকে, অথবা যদি ব্যবহারকারী ক্লায়েন্ট একটি Google ক্লাউড প্রকল্প থেকে কাজ করে তাহলে একটি অভ্যন্তরীণ IP ঠিকানা নিয়োগ করে৷

একটি অভ্যন্তরীণ আইপি ঠিকানা অ্যাক্সেস শর্ত সহ অ্যাক্সেস লেভেল তৈরি করুন

একই স্কোপড অ্যাক্সেস নীতি ফোল্ডারের অধীনে, অ্যাক্সেস লেভেল তৈরি করতে অ্যাক্সেস কনটেক্সট ম্যানেজার পৃষ্ঠা খুলুন।

  1. অ্যাক্সেস কনটেক্সট ম্যানেজার পৃষ্ঠায়, অ্যাক্সেস লেভেল তৈরি করুন নির্বাচন করুন।
  2. নতুন অ্যাক্সেস লেভেল প্যানে:
    1. একটি শিরোনাম প্রদান করুন: আপনি codelab-al ব্যবহার করতে পারেন।
    2. শর্ত বিভাগে, আইপি সাবনেটওয়ার্ক-এ ক্লিক করুন।
    3. প্রাইভেট আইপি ট্যাব নির্বাচন করুন এবং ভিপিসি নেটওয়ার্ক নির্বাচন করুন ক্লিক করুন।
    4. VPC নেটওয়ার্ক যোগ করুন ফলক থেকে, আপনি হয় default নেটওয়ার্ক ব্রাউজ করতে এবং খুঁজে পেতে পারেন অথবা ম্যানুয়ালি //compute.googleapis.com/projects/project-2/global/networks/default ফর্ম্যাটে সম্পূর্ণ নেটওয়ার্ক নাম লিখতে পারেন।
    5. ভিপিসি নেটওয়ার্ক যোগ করুন ক্লিক করুন।
    6. আইপি সাবনেট নির্বাচন করুন ক্লিক করুন।
    7. VM দৃষ্টান্ত অবস্থিত যেখানে অঞ্চল নির্বাচন করুন। এই কোডল্যাবের জন্য, এটি হল us-central1
    8. সেভ এ ক্লিক করুন।

আমরা একটি অ্যাক্সেস লেভেল তৈরি করেছি, যা এখনও কোনো পরিধি বা প্রবেশ/প্রস্থান নীতিতে প্রয়োগ করা হয়নি।

আইপি সাবনেটওয়ার্কের সাথে অ্যাক্সেস লেভেল কনফিগার করা হয়েছে

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

প্রবেশের নিয়ম দ্বারা অনুমোদিত ব্যবহারকারীকে অ্যাক্সেস স্তরের বিরুদ্ধেও যাচাই করা হয়েছে তা প্রয়োগ করার জন্য, প্রবেশের নিয়মে অ্যাক্সেস স্তরটি কনফিগার করা প্রয়োজন। প্রবেশের নিয়ম যা ক্যোয়ারী ডেটাতে অ্যাক্সেস অনুমোদন করে perimeter-1 এ। অ্যাক্সেস লেভেল codelab-al হিসাবে উত্সকে সংজ্ঞায়িত করতে প্রবেশের নিয়মটি পরিবর্তন করুন।

ভিপিসি নেটওয়ার্কের সাথে অ্যাক্সেস লেভেল

নতুন কনফিগারেশন পরীক্ষা করা হচ্ছে

প্রবেশের নিয়মে অ্যাক্সেস লেভেল যোগ করার পর, একই BigQuery ক্যোয়ারী ব্যর্থ হবে যদি না ভিপিসি নেটওয়ার্ক default ক্লায়েন্ট থেকে প্রজেক্ট project-2 এর জন্য এক্সিকিউট করা হয়। এই আচরণটি যাচাই করতে, এন্ডপয়েন্ট ডিভাইসটি ইন্টারনেটের সাথে সংযুক্ত থাকাকালীন Google ক্লাউড কনসোল থেকে ক্যোয়ারীটি চালান। প্রবেশ লঙ্ঘনের একটি ইঙ্গিত সহ অনুসন্ধানটি অসফলভাবে সমাপ্ত হবে।

একই ক্যোয়ারী ভিপিসি নেটওয়ার্ক default থেকে চালানো যেতে পারে, project-2 এ অবস্থিত। একইভাবে, VPC নেটওয়ার্ক default ব্যবহার করে project-2 এ অবস্থিত একটি Compute Engine ইন্সট্যান্স থেকে একই BigQuery কোয়েরি চালানোও ব্যর্থ হবে। এটি হল কারণ প্রবেশের নিয়মটি এখনও শুধুমাত্র প্রধান user@example.com কে অনুমতি দেওয়ার জন্য কনফিগার করা হয়েছে। যাইহোক, VM Compute Engine ডিফল্ট পরিষেবা অ্যাকাউন্ট ব্যবহার করছে।

project-2 তে Compute Engine ইন্সট্যান্স থেকে সফলভাবে একই কমান্ড চালানোর জন্য, নিশ্চিত করুন যে:

  • BigQuery API ব্যবহার করার জন্য VM-এর অ্যাক্সেসের সুযোগ রয়েছে। VM অ্যাক্সেস স্কোপ হিসাবে সমস্ত ক্লাউড API-এ সম্পূর্ণ অ্যাক্সেসের অনুমতি দিন নির্বাচন করে এটি করা যেতে পারে।
  • VM-এর সাথে সংযুক্ত পরিষেবা অ্যাকাউন্টের জন্য IAM অনুমতির প্রয়োজন:
    • project-2 এ BigQuery জবস তৈরি করুন
    • project-1 এ অবস্থিত BigQuery টেবিল থেকে BigQuery ডেটা পান
  • ডিফল্ট কম্পিউট ইঞ্জিন পরিষেবা অ্যাকাউন্ট প্রবেশ এবং প্রস্থান নিয়ম দ্বারা অনুমোদিত করা প্রয়োজন।

এখন আমাদের কম্পিউট ইঞ্জিন ডিফল্ট পরিষেবা অ্যাকাউন্ট যোগ করতে হবে প্রবেশের নিয়মে (BigQuery টেবিল থেকে ডেটা পাওয়ার অনুমতি দিতে) এবং এগ্রেস নিয়মে (BigQuery কাজ তৈরির অনুমতি দিতে)।

VPC পরিষেবা অ্যাক্সেস স্তরের সাথে পরিষেবা পরিধি কনফিগারেশন নিয়ন্ত্রণ করে

default ভিপিসি নেটওয়ার্কে project-2 একটি কম্পিউট ইঞ্জিন উদাহরণ থেকে, নিম্নলিখিত bq ক্যোয়ারী কমান্ডটি চালান:

bq query --nouse_legacy_sql \
'SELECT name, total
FROM `project-1.codelab_dataset.codelab-table`
ORDER BY total DESC
LIMIT 10;'

বর্তমান কনফিগারেশনের সাথে, BigQuery কমান্ড শুধুমাত্র তখনই সফল হবে যদি:

  • project-2 এ ডিফল্ট ভিপিসি নেটওয়ার্ক ব্যবহার করে একটি ভিএম চালান, এবং
  • নির্দিষ্ট us-central1 অঞ্চলে অবস্থিত (Ip subnetwork), এবং
  • পরিষেবা পরিধিতে কনফিগার করা ডিফল্ট কম্পিউট ইঞ্জিন পরিষেবা অ্যাকাউন্ট ব্যবহার করে চালান।

BigQuery কমান্ড ক্যোয়ারী ব্যর্থ হবে যদি অন্য কোথাও থেকে চালানো হয়, যার মধ্যে রয়েছে:

  • যদি project-2 এ ডিফল্ট ভিপিসি নেটওয়ার্ক ব্যবহার করে একটি VM-তে চালানো হয় তবে অ্যাক্সেস লেভেলে যোগ করা সাবনেটের চেয়ে ভিন্ন অঞ্চলে অবস্থিত, অথবা
  • যদি ব্যবহারকারী user@example.com দ্বারা ইন্টারনেটে ব্যবহারকারী ক্লায়েন্টের সাথে চালানো হয়।

পরিষেবা পরিধি GCE ডিফল্ট পরিষেবা অ্যাকাউন্টের জন্য অ্যাক্সেসের অনুমতি দেয়। এই চিত্রটি দুটি ভিন্ন অবস্থান থেকে একই প্রিন্সিপাল, user@example.com দ্বারা সূচিত অ্যাক্সেসকে চিত্রিত করে: ইন্টারনেট এবং একটি কম্পিউট ইঞ্জিন উদাহরণ। সরাসরি ইন্টারনেট থেকে BigQuery-এ অ্যাক্সেস (নীল ডটেড লাইন) VPC সার্ভিস কন্ট্রোল দ্বারা ব্লক করা হয়, যখন VM (সবুজ কঠিন লাইন) থেকে অ্যাক্সেস করা যায়—যখন Compute Engine ডিফল্ট পরিষেবা অ্যাকাউন্টের ছদ্মবেশ ধারণ করে— অনুমোদিত। একটি অভ্যন্তরীণ IP ঠিকানা থেকে সুরক্ষিত সংস্থানগুলিতে অ্যাক্সেসের অনুমতি দেওয়ার জন্য পরিষেবার পরিধি কনফিগার করার কারণে অনুমোদিত অ্যাক্সেস।

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

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

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

9. অভিনন্দন!

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

আরও জানুন

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

  • প্রকল্পটি VPC পরিষেবা নিয়ন্ত্রণ দ্বারা সুরক্ষিত হওয়ার পরে, পাবলিক ডেটাসেটে একই প্রশ্ন চালান৷
  • project-1 এর মতো একই পরিধিতে project-2 যোগ করুন।
  • project-2 এর নিজস্ব পরিধিতে যুক্ত করুন এবং বর্তমান পরিধিতে project-1 রাখুন।
  • শুধুমাত্র ডেটা পুনরুদ্ধার করার জন্য নয়, টেবিলে ডেটা আপডেট করতে কোয়েরি চালান।

লাইসেন্স

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