Policy

একটি আইডেন্টিটি অ্যান্ড অ্যাক্সেস ম্যানেজমেন্ট (IAM) নীতি, যা Google ক্লাউড সংস্থানগুলির জন্য অ্যাক্সেস নিয়ন্ত্রণগুলি নির্দিষ্ট করে৷

একটি Policy হল bindings একটি সংগ্রহ। একটি binding এক বা একাধিক members বা অধ্যক্ষকে একক role আবদ্ধ করে। প্রধান হতে পারে ব্যবহারকারীর অ্যাকাউন্ট, পরিষেবা অ্যাকাউন্ট, Google গ্রুপ এবং ডোমেন (যেমন G Suite)। একটি role হল অনুমতিগুলির একটি নাম তালিকা; প্রতিটি role একটি IAM পূর্বনির্ধারিত ভূমিকা বা ব্যবহারকারী দ্বারা তৈরি কাস্টম ভূমিকা হতে পারে।

কিছু ধরণের Google ক্লাউড সংস্থানগুলির জন্য, একটি binding একটি condition নির্দিষ্ট করতে পারে, যা একটি যৌক্তিক অভিব্যক্তি যা শুধুমাত্র অভিব্যক্তিটিকে true হিসাবে মূল্যায়ন করলেই একটি সংস্থানে অ্যাক্সেসের অনুমতি দেয়৷ একটি শর্ত অনুরোধের বৈশিষ্ট্য, সংস্থান বা উভয়ের উপর ভিত্তি করে সীমাবদ্ধতা যোগ করতে পারে। কোন সম্পদ তাদের IAM নীতিতে শর্ত সমর্থন করে তা জানতে, IAM ডকুমেন্টেশন দেখুন।

JSON উদাহরণ:

    {
      "bindings": [
        {
          "role": "roles/resourcemanager.organizationAdmin",
          "members": [
            "user:mike@example.com",
            "group:admins@example.com",
            "domain:google.com",
            "serviceAccount:my-project-id@appspot.gserviceaccount.com"
          ]
        },
        {
          "role": "roles/resourcemanager.organizationViewer",
          "members": [
            "user:eve@example.com"
          ],
          "condition": {
            "title": "expirable access",
            "description": "Does not grant access after Sep 2020",
            "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
          }
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }

YAML উদাহরণ:

    bindings:
    - members:
      - user:mike@example.com
      - group:admins@example.com
      - domain:google.com
      - serviceAccount:my-project-id@appspot.gserviceaccount.com
      role: roles/resourcemanager.organizationAdmin
    - members:
      - user:eve@example.com
      role: roles/resourcemanager.organizationViewer
      condition:
        title: expirable access
        description: Does not grant access after Sep 2020
        expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
    etag: BwWWja0YfJA=
    version: 3

IAM এবং এর বৈশিষ্ট্যগুলির বর্ণনার জন্য, IAM ডকুমেন্টেশন দেখুন।

JSON প্রতিনিধিত্ব
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "etag": string
}
ক্ষেত্র
version

integer

নীতির বিন্যাস নির্দিষ্ট করে।

বৈধ মান হল 0 , 1 , এবং 3 । একটি অবৈধ মান নির্দিষ্ট করে এমন অনুরোধগুলি প্রত্যাখ্যান করা হয়৷

শর্তসাপেক্ষ ভূমিকা বাইন্ডিংকে প্রভাবিত করে এমন যেকোনো ক্রিয়াকলাপকে অবশ্যই সংস্করণ 3 নির্দিষ্ট করতে হবে। এই প্রয়োজনীয়তা নিম্নলিখিত অপারেশন প্রযোজ্য:

  • শর্তসাপেক্ষ ভূমিকার বাধ্যবাধকতা অন্তর্ভুক্ত করে এমন একটি নীতি পাওয়া
  • একটি নীতিতে বাধ্যতামূলক একটি শর্তসাপেক্ষ ভূমিকা যুক্ত করা৷
  • একটি নীতিতে বাধ্যতামূলক একটি শর্তাধীন ভূমিকা পরিবর্তন করা
  • শর্ত অন্তর্ভুক্ত করে এমন একটি নীতি থেকে শর্ত সহ বা ছাড়াই যেকোন ভূমিকা বাধ্যতামূলক অপসারণ করা

গুরুত্বপূর্ণ: আপনি যদি IAM শর্তাবলী ব্যবহার করেন, আপনি setIamPolicy কল করার সময় আপনাকে অবশ্যই etag ক্ষেত্র অন্তর্ভুক্ত করতে হবে। আপনি যদি এই ক্ষেত্রটি বাদ দেন, তাহলে IAM আপনাকে একটি সংস্করণ 1 নীতি সহ একটি সংস্করণ 3 নীতি ওভাররাইট করার অনুমতি দেয় এবং সংস্করণ 3 নীতির সমস্ত শর্ত হারিয়ে যায়৷

যদি একটি নীতি কোনো শর্ত অন্তর্ভুক্ত না করে, সেই নীতির অপারেশন কোনো বৈধ সংস্করণ নির্দিষ্ট করতে পারে বা ক্ষেত্রটি সেট না করে রেখে দিতে পারে।

কোন সম্পদ তাদের IAM নীতিতে শর্ত সমর্থন করে তা জানতে, IAM ডকুমেন্টেশন দেখুন।

bindings[]

object ( Binding )

members তালিকা, বা অধ্যক্ষদের একটি role সাথে সংযুক্ত করে। ঐচ্ছিকভাবে, একটি condition নির্দিষ্ট করতে পারে যা নির্ধারণ করে কিভাবে এবং কখন bindings প্রয়োগ করা হবে। প্রতিটি bindings কমপক্ষে একটি প্রিন্সিপাল থাকতে হবে।

একটি Policy bindings 1,500টি প্রিন্সিপাল পর্যন্ত উল্লেখ করতে পারে; এই প্রধানদের মধ্যে 250টি পর্যন্ত Google গ্রুপ হতে পারে। একজন প্রিন্সিপালের প্রতিটি ঘটনা এই সীমার প্রতি গণনা করে। উদাহরণস্বরূপ, যদি bindings user:alice@example.com কে 50টি ভিন্ন ভূমিকা দেয়, এবং অন্য কোনও প্রধানকে না দেয়, তাহলে আপনি Policy bindings আরও 1,450টি প্রিন্সিপাল যোগ করতে পারেন৷

etag

string ( bytes format)

etag একটি নীতির যুগপত আপডেট একে অপরকে ওভাররাইট করা থেকে আটকাতে সাহায্য করার উপায় হিসাবে আশাবাদী একত্রিত নিয়ন্ত্রণের জন্য ব্যবহার করা হয়। এটা দৃঢ়ভাবে সুপারিশ করা হয় যে সিস্টেমগুলি রেসের অবস্থা এড়াতে পলিসি আপডেটগুলি সম্পাদন করার জন্য পঠন-সংশোধন-লেখা চক্রে etag ব্যবহার করে: getIamPolicy এর প্রতিক্রিয়াতে একটি etag ফেরত দেওয়া হয়, এবং সিস্টেমগুলি আশা করা হয় যে তাদের পরিবর্তন নীতির একই সংস্করণে প্রয়োগ করা হবে তা নিশ্চিত করার জন্য setIamPolicy এর অনুরোধে সেই etagটি রাখবে৷

গুরুত্বপূর্ণ: আপনি যদি IAM শর্তাবলী ব্যবহার করেন, আপনি setIamPolicy কল করার সময় আপনাকে অবশ্যই etag ক্ষেত্র অন্তর্ভুক্ত করতে হবে। আপনি যদি এই ক্ষেত্রটি বাদ দেন, তাহলে IAM আপনাকে একটি সংস্করণ 1 নীতি সহ একটি সংস্করণ 3 নীতি ওভাররাইট করার অনুমতি দেয় এবং সংস্করণ 3 নীতির সমস্ত শর্ত হারিয়ে যায়৷

একটি base64-এনকোডেড স্ট্রিং।