গুগল ম্যাপ প্ল্যাটফর্ম নিরাপত্তা নির্দেশিকা

যেসব অ্যাপ ও প্রজেক্ট গুগল ম্যাপস প্ল্যাটফর্ম এপিআই এবং এসডিকে ব্যবহার করে, তাদের নিজেদের প্রমাণীকরণের জন্য অবশ্যই এপিআই কী অথবা, সমর্থিত হলে, OAuth 2.0 ব্যবহার করতে হবে।

এই সেরা অনুশীলনগুলো আপনাকে দেখাবে কীভাবে আপনার ম্যাপস প্ল্যাটফর্মের অ্যাক্সেস সুরক্ষিত করতে হয়।

আপনি যদি সার্ভার-টু-সার্ভার ট্র্যাফিক অনুমোদনের জন্য OAuth 2.0 ব্যবহার করতে চান, তাহলে আপনার API ডকুমেন্টেশনে OAuth টপিকটি খুঁজুন। আরও বিস্তারিত জানতে “সার্ভার-সাইড অ্যাপের জন্য OAuth ব্যবহার” দেখুন।

অ্যাপ্লিকেশন এবং এপিআই কী সীমাবদ্ধতা প্রয়োগ করার পাশাপাশি, গুগল ম্যাপস প্ল্যাটফর্মের নির্দিষ্ট পণ্যগুলির জন্য প্রযোজ্য নিরাপত্তা অনুশীলনগুলিও অনুসরণ করুন। উদাহরণস্বরূপ, নিচে 'প্রস্তাবিত অ্যাপ্লিকেশন এবং এপিআই সীমাবদ্ধতা ' অংশে ম্যাপস জাভাস্ক্রিপ্ট এপিআই দেখুন।

আপনার API কীগুলো যদি ইতিমধ্যেই ব্যবহৃত হয়ে থাকে, তাহলে ‘আপনি যদি ব্যবহৃত কোনো API কী সীমাবদ্ধ করতে চান’ অংশে দেওয়া নিচের সুপারিশগুলো পর্যালোচনা করুন।

Maps Static API এবং Street View Static API দ্বারা সমর্থিত ডিজিটাল স্বাক্ষর সম্পর্কে আরও বিস্তারিত জানতে, ডিজিটাল স্বাক্ষর নির্দেশিকা দেখুন।

Recommended best practices

নিরাপত্তা বাড়াতে এবং অননুমোদিত ব্যবহারের জন্য বিল হওয়া এড়াতে, গুগল ম্যাপস প্ল্যাটফর্মের সকল এপিআই, এসডিকে বা পরিষেবার ক্ষেত্রে এই এপিআই নিরাপত্তা সংক্রান্ত সর্বোত্তম অনুশীলনগুলো অনুসরণ করুন:

Restrict your API keys

Use separate API keys for each app

Delete unused API keys

Check your API key usage

Be careful when rotating API keys

ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড ব্যবহারকে আলাদা প্রজেক্টে ভাগ করুন

Disable unused services

Additional recommendations for client-side apps

Use client-side SDKs

Secure client-side web service calls

স্ট্যাটিক ওয়েব এপিআই ব্যবহারকারী ওয়েবসাইট বা ক্লায়েন্ট-সাইড অ্যাপের জন্য অতিরিক্ত সুপারিশসমূহ

Protect Static Web API usage

ওয়েব সার্ভিস ব্যবহারকারী সার্ভার-সাইড অ্যাপগুলির জন্য অতিরিক্ত সুপারিশ

Protect web service API keys

Use OAuth for server-side apps

যদি আপনি ব্যবহৃত কোনো এপিআই কী সীমাবদ্ধ বা পরিবর্তন করেন

  • এপিআই কী পরিবর্তন করার আগে, আপনার এপিআই কী-এর ব্যবহার যাচাই করুন। এই ধাপটি বিশেষভাবে গুরুত্বপূর্ণ, বিশেষ করে যদি আপনি এমন কোনো কী-এর জন্য বিধিনিষেধ যোগ করতে চান যা ইতিমধ্যেই কোনো প্রোডাকশন অ্যাপ্লিকেশনে ব্যবহৃত হচ্ছে।

  • কী পরিবর্তন করার পর, প্রয়োজন অনুযায়ী আপনার সমস্ত অ্যাপ নতুন API কী দিয়ে আপডেট করুন।

  • যদি আপনার এপিআই কী (API key) অরক্ষিত না থাকে এবং সক্রিয়ভাবে এর অপব্যবহার না করা হয়, তবে আপনি আপনার অ্যাপগুলোকে নিজের গতিতে একাধিক নতুন এপিআই কী-তে স্থানান্তর করতে পারেন। এক্ষেত্রে মূল এপিআই কী-টি অপরিবর্তিত রাখতে হবে যতক্ষণ না আপনি কেবল এক ধরনের ট্র্যাফিক লক্ষ্য করেন এবং অনাকাঙ্ক্ষিত পরিষেবা বিঘ্ন না ঘটিয়ে এপিআই কী-টিকে নিরাপদে এক ধরনের অ্যাপ্লিকেশনের উপর বিধিনিষেধ আরোপ করা যায়।

    আরও নির্দেশাবলীর জন্য, একাধিক API কী-তে মাইগ্রেট করুন দেখুন।

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

  • যদি আপনার এপিআই কী (API key) ফাঁস হয়ে যায়, তবে সেটিকে সুরক্ষিত করতে এবং এর অপব্যবহার বন্ধ করতে আপনার দ্রুত পদক্ষেপ নেওয়া উচিত। অ্যান্ড্রয়েড এবং আইওএস অ্যাপে, গ্রাহকরা তাদের অ্যাপ আপডেট না করা পর্যন্ত কী প্রতিস্থাপন করা হয় না। ওয়েবপেজ বা সার্ভার-সাইড অ্যাপে কী আপডেট বা প্রতিস্থাপন করা অনেক বেশি সহজ, কিন্তু এর জন্যও সতর্ক পরিকল্পনা এবং দ্রুত কাজের প্রয়োজন হতে পারে।

    আরও তথ্যের জন্য, এপিআই কী-এর অননুমোদিত ব্যবহার মোকাবিলা দেখুন।

আরও তথ্য

Recommended application and API restrictions

Restrict your API keys

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

  • অ্যাপ্লিকেশন সীমাবদ্ধতা: আপনি একটি API কী-এর ব্যবহার নির্দিষ্ট প্ল্যাটফর্মে সীমাবদ্ধ করতে পারেন: অ্যান্ড্রয়েড বা iOS অ্যাপ্লিকেশন, অথবা ক্লায়েন্ট-সাইড অ্যাপ্লিকেশনের জন্য নির্দিষ্ট ওয়েবসাইট, অথবা ওয়েব সার্ভিস REST API কল প্রদানকারী সার্ভার-সাইড অ্যাপের জন্য নির্দিষ্ট IP অ্যাড্রেস বা CIDR সাবনেট।

    আপনি যে ধরনের অ্যাপ্লিকেশন বিধিনিষেধ অনুমোদন করতে চান, সেগুলোর এক বা একাধিক বিধিনিষেধ যোগ করে একটি কী-কে সীমাবদ্ধ করেন, যার পরে শুধুমাত্র এই উৎসগুলো থেকে আসা অনুরোধগুলোই অনুমোদিত হয়।

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

Set an application restriction for an API key

  1. Google Cloud কনসোলের Google Maps Platform Credentials পৃষ্ঠাটি খুলুন।

  2. Select the API key that you want to restrict.

  3. API কী সম্পাদনা পৃষ্ঠায় , কী সীমাবদ্ধতা (Key restrictions) -এর অধীনে, একটি অ্যাপ্লিকেশন সীমাবদ্ধতা সেট করুন (Set an application restriction) নির্বাচন করুন।

    Edit API key page

  4. বিধিনিষেধের ধরণগুলোর মধ্যে একটি নির্বাচন করুন এবং বিধিনিষেধ তালিকা অনুযায়ী অনুরোধকৃত তথ্য সরবরাহ করুন।

    Restriction type বর্ণনা
    ওয়েবসাইট Specify one or more referrer websites.
    • সর্বজনীনভাবে সমর্থিত রেফারার ইউআরআই স্কিমগুলো হলো https এবং http । অন্যান্য স্কিমগুলো সঠিকভাবে কাজ করবে এমন কোনো নিশ্চয়তা নেই, কারণ আধুনিক ওয়েব ব্রাউজারগুলো গোপনীয়তার কারণে বহির্গামী অনুরোধে `Referer` হেডার পাঠায় না।
    • সর্বদা প্রোটোকল স্কিম, হোস্টনেম এবং ঐচ্ছিক পোর্ট সহ সম্পূর্ণ রেফারার স্ট্রিংটি প্রদান করুন (যেমন, https://google.com )।
    • আপনি সমস্ত সাবডোমেইন অনুমোদন করতে ওয়াইল্ডকার্ড অক্ষর ব্যবহার করতে পারেন। উদাহরণস্বরূপ, https://*.google.com সেইসব সাইট গ্রহণ করে যেগুলোর শেষে .google.com রয়েছে।
    • Be careful when authorizing full-path referrers, for example, https://google.com/some/path , since most web browsers will for privacy reasons strip the path from cross-origin requests.
    আইপি ঠিকানা CIDR নোটেশন ব্যবহার করে এক বা একাধিক IPv4 বা IPv6 অ্যাড্রেস, অথবা সাবনেট উল্লেখ করুন। আইপি অ্যাড্রেসগুলো অবশ্যই গুগল ম্যাপস প্ল্যাটফর্ম সার্ভারগুলোর পর্যবেক্ষণ করা সোর্স অ্যাড্রেসের সাথে মিলতে হবে। আপনি যদি নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশন (NAT) ব্যবহার করেন, তবে এই অ্যাড্রেসটি সাধারণত আপনার মেশিনের পাবলিক আইপি অ্যাড্রেসের সাথে মিলে যায়।
    অ্যান্ড্রয়েড অ্যাপস

    আপনি যে প্রতিটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনকে অনুমোদন করতে চান, সেগুলোর অ্যান্ড্রয়েড প্যাকেজ নেম ( AndroidManifest.xml ফাইল থেকে) এবং SHA-1 সাইনিং সার্টিফিকেট ফিঙ্গারপ্রিন্ট যোগ করুন।

    1. Select Android apps .
    2. Click + Add .
    3. আপনার প্যাকেজের নাম এবং SHA-1 সার্টিফিকেট ফিঙ্গারপ্রিন্ট লিখুন। উদাহরণস্বরূপ:
      com.example.android.mapexample
      BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    4. সংরক্ষণ করুন- এ ক্লিক করুন।

    There are two certificate types:

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

    অ্যান্ড্রয়েড অ্যাপ্লিকেশন সাইনিং এবং সার্টিফিকেট সম্পর্কে আরও তথ্যের জন্য, "আপনার অ্যাপে স্বাক্ষর করুন" নির্দেশিকাটি দেখুন।

    আপনি যদি প্লে অ্যাপ সাইনিং (Play App Signing) ব্যবহার করেন, তাহলে সাইনিং সার্টিফিকেট ফিঙ্গারপ্রিন্ট (signing certificate fingerprint) পাওয়ার জন্য ‘এপিআই প্রোভাইডারদের সাথে কাজ করা’ (Working with API Providers ) দেখুন। আপনি যদি নিজের সাইনিং কী (signing key) পরিচালনা করেন, তাহলে ‘আপনার অ্যাপ্লিকেশন স্ব-স্বাক্ষর করা’ (Self-signing your application) দেখুন অথবা আপনার বিল্ড এনভায়রনমেন্টের (build environment) নির্দেশাবলী দেখুন।

    iOS অ্যাপস

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

    1. Select iOS apps .
    2. Click + Add .
    3. ঐ আইডিযুক্ত iOS অ্যাপ থেকে অনুরোধ গ্রহণ করতে বান্ডেল আইডিটি যোগ করুন।
    4. সংরক্ষণ করুন- এ ক্লিক করুন।

    অ্যাপ্লিকেশন সীমাবদ্ধতার সুপারিশের জন্য, প্রস্তাবিত অ্যাপ্লিকেশন সীমাবদ্ধতা দেখুন।

  5. সংরক্ষণ নির্বাচন করুন।

Set API restrictions for an API key

  1. Google Cloud কনসোলের Google Maps Platform Credentials পৃষ্ঠাটি খুলুন।

  2. Select the API key that you want to restrict.

  3. এপিআই কী সম্পাদনা পৃষ্ঠায় , এপিআই বিধিনিষেধের অধীনে:

    • Select Restrict key .

    • 'Select APIs' খুলুন এবং এপিআই কী ব্যবহার করে আপনার অ্যাপ্লিকেশন যে এপিআই বা এসডিকেগুলো অ্যাক্সেস করতে চায়, সেগুলো নির্বাচন করুন।

    যদি কোনো API বা SDK তালিকাভুক্ত না থাকে, তাহলে আপনাকে সেটি সক্রিয় করতে হবে। বিস্তারিত জানতে, “এক বা একাধিক API বা SDK সক্রিয় করা” দেখুন।

    Restrict an API on the Edit API key
    page

  4. সংরক্ষণ নির্বাচন করুন।

    এই ধাপের পর বিধিনিষেধটি এপিআই কী সংজ্ঞার অংশ হয়ে যায়। নিশ্চিত করুন যে আপনি যথাযথ বিবরণ প্রদান করেছেন এবং আপনার এপিআই কী বিধিনিষেধ সংরক্ষণ করতে 'Save' নির্বাচন করুন। আরও তথ্যের জন্য, আপনার আগ্রহের নির্দিষ্ট এপিআই বা এসডিকে-এর ডকুমেন্টেশনে থাকা 'Get an API Key' গাইডটি দেখুন।

প্রস্তাবিত API সীমাবদ্ধতাগুলির জন্য, প্রস্তাবিত API সীমাবদ্ধতাগুলি দেখুন।

Check your API key usage

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

Determine the APIs that use your API key

নিম্নলিখিত মেট্রিক্স রিপোর্টগুলো আপনাকে নির্ধারণ করতে সাহায্য করবে যে কোন এপিআইগুলো আপনার এপিআই কী ব্যবহার করছে। নিম্নলিখিত কাজগুলো করার জন্য এই রিপোর্টগুলো ব্যবহার করুন:

  • See how your API keys are used
  • Spot unexpected usage
  • একটি অব্যবহৃত কী নিরাপদে মুছে ফেলা যাবে কিনা তা যাচাই করতে সাহায্য নিন। একটি API কী মুছে ফেলার বিষয়ে তথ্যের জন্য, ‘অব্যবহৃত API কী মুছুন’ দেখুন।

এপিআই বিধিনিষেধ প্রয়োগ করার সময়, অনুমোদনের জন্য এপিআই-এর একটি তালিকা তৈরি করতে, অথবা স্বয়ংক্রিয়ভাবে তৈরি এপিআই কী বিধিনিষেধের সুপারিশগুলো যাচাই করতে এই রিপোর্টগুলো ব্যবহার করুন। প্রস্তাবিত বিধিনিষেধ সম্পর্কে আরও তথ্যের জন্য, ‘প্রস্তাবিত বিধিনিষেধ প্রয়োগ করুন ’ দেখুন। মেট্রিক্স এক্সপ্লোরার ব্যবহার সম্পর্কে আরও তথ্যের জন্য, ‘মেট্রিক্স এক্সপ্লোরার দিয়ে চার্ট তৈরি করুন ’ দেখুন।

  1. গুগল ক্লাউড কনসোলের মেট্রিক্স এক্সপ্লোরারে যান

  2. সাইন ইন করুন এবং যে এপিআই কীগুলো আপনি যাচাই করতে চান, সেটির জন্য প্রজেক্টটি নির্বাচন করুন।

  3. আপনার এপিআই-এর ধরন অনুযায়ী মেট্রিক্স এক্সপ্লোরার পেজে যান:

    • Maps Embed API ছাড়া অন্য যেকোনো API ব্যবহার করে API কী পেতে হলে : Metrics explorer পেজে যান।

    • Maps Embed API ব্যবহার করে API কী-গুলির জন্য : Metrics Explorer- এ যান।

  4. Inspect each API key:

    1. Select ADD FILTER .

    2. Select the label credential_id .

    3. আপনি যে কী-টি পরীক্ষা করতে চান, তার সাথে সঙ্গতিপূর্ণ মানটি নির্বাচন করুন।

    4. এই এপিআই কী-টি কোন কোন এপিআই-এর জন্য ব্যবহার করা হচ্ছে তা লক্ষ্য করুন, এবং এর ব্যবহার প্রত্যাশিত কিনা তা নিশ্চিত করুন।

    5. কাজটি সম্পন্ন হলে, অতিরিক্ত ফি