- مستندات
- مدیریت هویت و دسترسی (IAM)
- قانونها
قانونها
هر کاربر یا کاربر-سرویس در هر فضای کاری مجوز انجام برخی از عملیات را دارد و انجام برخی از عملیات برای او ممکن نیست. داشتن این مجوز و امکان یا عدم امکان انجام عملیات توسط مفهومی در سرویس IAM تعیین میشود که نقش نام دارد. نقش بر اساس مفهومی به اسم قانون ایجاد شده است. در واقع این قوانین هستند که در نهایت منجر به ایجاد مجوزها و اختصاص آنها به کاربران یا کاربر-سرویسها میشوند. در واقع زمانی که یک نقش درخواست انجام عملیاتی را داشته باشد، سرویس IAM قوانین را مورد بررسی قرار میدهد. و با استفاده از قوانین تعیین میکند که درخواست این نقش مجاز یا غیرمجاز است.
در سرویس IAM تعدادی قانون به صورت پیشفرض تعریف شدهاند. این قانونها در دستهی قانونهای استاندارد ستون قابل مشاهده هستند. اما برای کاربران هم امکان تعریف قانون وجود دارد. قانونهایی که توسط کاربران ایجاد شدهاند در دستهی قانونهای فضای کاری قرار دارند.
کاربرانی که دارای نقش workspace-admin هستند، میتوانند لیست قوانین موجود را ببینند و یا اینکه قوانین جدیدی را اضافه کنند.
هر قانون میتواند در یکی از دو دستهی ایجابی یا سلبی قرار بگیرد. قوانین ایجابی باعث ایجاد دسترسی به اکشنها میشوند. در صورتی که قوانین سلبی دسترسی به اکشنها را سلب میکنند.
درصورتی که در نقش workspace-admin باشید میتوانید با انتخاب هر قانون از لیست قانونها وارد پنل مربوط به همان قانون شوید. در این قسمت میتوانید ببینید که این قانون مربوط به کدام سرویس بوده، در چه مسیری تعریف شده و بر روی چه عملیاتی تاثیر سلبی یا ایجابی خواهد داشت. همچنین در قسمت پایین پنل مربوط به هر قانون، نقشهایی که از این قانون استفاده کردهاند نیز مشخص شده است. کاربرانی که نقش workspace-admin دارند میتوانند در قسمت قانونهای فضای کاری با کلیک روی دکمهی اضافه کردن نقش به قانون، نقشهای جدیدی را از بین نقشها انتخاب کرده و به این قانون اضافه کنند.
همانطور که گفته شد قوانین تعریفکنندهی مجوزهای عملیات مختلف هستند و برای سهولت کار، مجموعهای از قوانین دسترسی (Rule) به شکل یک نقش (Role) دستهبندی شدهاند که قابل اعطا به کاربران هستند.
در سرویسهای IAM دسترسی کاربران به سرویسهای مختلف کنترل میشود. در هر سرویس تعدادی منبع یا Resource وجود دارد که ممکن است نیاز داشته باشیم برای دسترسی هر کاربر و Resource به صورت جداگانه تصمیم بگیریم. برای این کار از یک روش Structural Naming استفاده میشود که در آن امکان نامگذاری ساختاریافته برای مجموعهای از اشیا قابل انجام است.
یکی از فاکتورهای مهم در هنگام ایجاد قانون، مسیر است. مسیر در واقع به یک شی یا object درون یک سرویس اشاره میکند و این اشیا در هر سرویس به شکل خاصی تعریف میشوند. همانطور که گفته شد، قانون میتواند سطح دسترسی را تعریف کند. زمانی که برای قانون مسیری را تعریف میکنید در واقع نوع دسترسی به آن object را مشخص کردهاید.
در ادامه با یک مثال به شرح بیشتر این مفهوم میپردازیم.
مثلا میتوان وسایل اتاقهای مختلف خانههای مختلف در کوچهی اول از خیابان اول شهر را چنین نامگذاری کرد:
در سرویس IAM ستون، برای ایجاد پویایی در تعیین مسیر دسترسی روشهای مختلفی وجود دارد:
در مثال بالا، فرض کنید میخواهید برای همهی لامپهای همهی خانههای کوچهی اول دسترسی تعریف کنید. در این صورت میتوانید این مسیر را تعریف کنید:
فرض کنید میخواهید برای دسترسی به همهی وسایل خانهی اول یک قانون تعریف کنید، در این صورت میتوانید چنین عمل کنید:
توجه کنید که تعریف * در وسط یک مسیر مجاز نیست چرا که حساسیت به عمق را از بین میبرد و یک آسیبپذیری امنیتی محسوب میشود.
با این امکان میتوانید یک قانون تعیین کنید که یک مقدار خاص در آن متغیر باشد مثلا قانونی برای دسترسی به همهی وسایل یک خانه و میخواهید وقتی این قانون bind میشود تعیین کنید که کدام خانه از کدام کوچه و خیابان مورد نظر شماست. در این صورت میتوانید از این امکان استفاده نمایید:
نکته: توجه داشته باشید که برخی از پارامترها یا itemها به صورت رزرو شده هستند و امکان انتخاب آنها وجود ندارد. به عنوان مثال سه کلمهی workspace, user, service از مفاهیم بپا هستند که به عنوان پارامتر رزرو شده در نظر گرفته میشوند.