قسمت 1 از 3
در سال 2011، آمازون اعلام کرد که پشتیبانی از Identity AWS و مدیریت دسترسی (IAM) برای CloudFront را ارائه می دهد. IAM در سال 2010 راه اندازی شد و شامل پشتیبانی S3 شد. AWS هویت و مدیریت دسترسی (IAM) شما را قادر می سازد تا چندین کاربر را در یک حساب AWS داشته باشید. اگر از Web Services Amazon (AWS) استفاده کرده باشید، می دانید که تنها راه مدیریت محتوا در AWS شامل دادن نام کاربری و رمز عبور یا کلید های دسترسی است.
این یک نگرانی امنیتی واقعی برای اکثر ما است. IAM نیاز به اشتراک گذرواژه ها و کلید های دسترسی را حذف می کند.
به طور مداوم تغییر رمز عبور اصلی AWS ما و یا ایجاد کلید های جدید فقط یک راه حل کثیف است که یک عضو کارکن تیم ما را ترک کند. AWS Identity & Access Management (IAM) شروع خوبی بود، اجازه دادن به حسابهای کاربری شخصی با کلیدهای منحصر به فرد. با این حال، ما یک کاربر S3 / CloudFront هستیم، بنابراین ما برای CloudFront برای اضافه شدن به IAM که در نهایت اتفاق افتاد، تماشا می کنیم.
من اسناد و مدارکی را در این سرویس یافتم که کمی پراکنده شده است. چند محصول شخص ثالث وجود دارد که تعدادی از پشتیبانی برای هویت و مدیریت دسترسی (IAM) را پشتیبانی می کنند. اما توسعه دهندگان معمولا صرفه جویی می کنند، بنابراین من به دنبال یک راه حل رایگان برای مدیریت IAM با سرویس Amazon S3 ما بودیم.
این مقاله از طریق راه اندازی رابط خط فرمان پشتیبانی می کند که IAM را پشتیبانی می کند و گروه / کاربر را با دسترسی S3 تنظیم می کند. قبل از اینکه شما شروع به پیکربندی Identity & Access Management (IAM) کنید، باید یک حساب Amazon AWS S3 داشته باشید.
مقاله من، با استفاده از سرویس ذخیره سازی ساده آمازون (S3)، شما را در جریان راه اندازی حساب AWS S3 قرار می دهد.
در اینجا مراحل مربوط به تنظیم و اجرای یک کاربر در IAM است. این برای ویندوز نوشته شده است، اما شما می توانید برای استفاده در لینوکس، یونیکس و / یا Mac OSX استفاده کنید.
- نصب و پیکربندی رابط خط فرمان (CLI)
- ایجاد یک گروه
- به گروه دسترسی به سطل S3 و CloudFront دسترسی داشته باشید
- ایجاد کاربر و اضافه کردن به گروه
- ایجاد پروفایل ورود و ایجاد کلید
- دسترسی به آزمون
نصب و پیکربندی رابط خط فرمان (CLI)
جعبه ابزار خط فرمان IAM یک برنامه جاوا در ابزارهای توسعهدهندگان AWS آمازون است. این ابزار به شما اجازه می دهد دستورات API IAM را از یک ابزار پوسته (DOS برای ویندوز) اجرا کنید.
- شما باید جاوا 1.6 یا بالاتر را اجرا کنید. شما می توانید آخرین نسخه از Java.com را دانلود کنید. برای دیدن اینکه کدام نسخه در سیستم ویندوز شما نصب شده، دستور Command Prompt را باز کرده و نسخه جاوا را تایپ کنید. این فرض می کند که java.exe در مسیر PATH شما است.
- ابزار IAM CLI را دانلود کنید و در جایی از درایو محلی خود را برش دهید.
- در ریشه ی ابزار CLI 2 فایل وجود دارد که شما باید آن را به روز کنید.
- aws-credential.template: این فایل دارای اعتبار AWS شماست. AWSAccessKeyId و AWSSecretKey خود را اضافه کنید، فایل را ذخیره و بسته کنید.
- client-config.template : اگر شما نیاز به یک سرور پروکسی دارید، فقط باید این فایل را آپدیت کنید. علائم # را حذف کنید و ClientProxyHost، ClientProxyPort، ClientProxyUsername و ClientProxyPassword را به روزرسانی کنید. ذخیره کنید و فایل را ببندید.
- گام بعدی شامل اضافه کردن متغیرهای محیطی است. به کنترل پنل بروید خواص سیستم | تنظیمات سیستم پیشرفته | متغیرهای محیطی. متغیرهای زیر را اضافه کنید:
- AWS_IAM_HOME : این متغیر را به دایرکتوری که در آن شما مجموعه ابزار CLI را باز کردید تنظیم کنید. اگر شما ویندوز را اجرا می کنید و آن را در ریشه ی درایو C خود قرار داده اید، متغیر C: \ IAMCli-1.2.0 خواهد بود.
- JAVA_HOME : این متغیر را به دایرکتوری که جاوا نصب شده است تنظیم کنید. این می تواند محل فایل java.exe باشد. در یک نرم افزار جاوا ویندوز 7، این چیزی شبیه C: \ Program Files (x86) \ Java \ jre6 است.
- AWS_CREDENTIAL_FILE : این متغیر را به مسیر و نام پرونده aws-credential.template اضافه کنید که در بالا به آن اضافه شدید. اگر شما ویندوز را اجرا می کنید و آن را در ریشه ی درایو C خود قرار داده اید، متغیر C: \ IAMCli-1.2.0 \ aws-credential.template است.
- CLIENT_CONFIG_FILE : اگر نیاز به یک سرور پروکسی دارید، فقط باید این متغیر محیطی را اضافه کنید. اگر شما ویندوز را اجرا می کنید و آن را در ریشه ی درایو C خود قرار داده اید، متغیر C: \ IAMCli-1.2.0 \ client-config.template خواهد بود. این متغیر را اضافه نکنید مگر آنکه به آن نیاز دارید.
- نصب را با رفتن به Command Prompt و وارد iam-userlistbypath تست کنید. تا زمانی که خطایی دریافت نکنید، باید به خوبی باشید.
تمام دستورات IAM را می توان از Command Prompt اجرا کرد. تمام دستورات با "iam-" آغاز می شود.
ایجاد یک گروه
حداکثر 100 گروه وجود دارد که می توانند برای هر حساب AWS ایجاد شوند. در حالی که می توانید مجوز ها را در IAM در سطح کاربر تنظیم کنید، استفاده از گروه ها بهترین روش است. در اینجا فرآیند ایجاد یک گروه در IAM است.
- نحو ایجاد یک گروه iam-groupcreate -g GROUPNAME [-p PATH] [-v] جایی که -p و -v گزینه هستند. مستندات کامل در رابط خط فرمان در AWS Docs موجود است.
- اگر می خواستید گروهی با نام awesomeusers ایجاد کنید، می توانید iam-groupcreate-g awesomeusers را در command prompt وارد کنید.
- شما می توانید با وارد کردن iam-grouplistbypath در Command Prompt درستی ایجاد کنید که گروه درست شده است. اگر شما فقط این گروه را ایجاد کرده اید، خروجی چیزی شبیه به "arn: aws: iam :: 123456789012: group / awesomeusers" است، که شماره آن شماره حساب AWS شماست.
به گروه دسترسی به سطل S3 و CloudFront دسترسی داشته باشید
سیاست ها کنترل آنچه گروه شما قادر به انجام در S3 یا CloudFront می باشد. به طور پیش فرض، گروه شما به هیچ چیزی در AWS دسترسی نخواهد داشت. من اسناد و مدارک را در مورد خط مشی ها پیدا کردم که خوب بود اما در ایجاد چندین سؤال، من کمی محاکمه و خطا کردم تا چیزها را به نحوی که می خواستم کار کنند، کار کنم.
شما دو گزینه برای ایجاد سیاست ها دارید.
یکی از گزینه های این است که می توانید آنها را به طور مستقیم در Command Prompt وارد کنید. از آنجا که ممکن است یک سیاست را ایجاد کرده و آن را بهینه سازی کنید، برای من آسانتر به اضافه کردن خط مشی به یک فایل متنی بود و سپس فایل متنی را به عنوان پارامتر با دستور iam-groupuploadpolicy بارگذاری کنید. در اینجا روند با استفاده از یک فایل متنی و آپلود به IAM است.
- از چیزی مانند Notepad استفاده کنید و متن زیر را وارد کنید و فایل را ذخیره کنید:
{
"بیانیه":[{
"اثر": "مجاز"
"اقدام": "s3: *"
"منبع": [
"arn: aws: s3 ::: BUCKETNAME"،
"arn: aws: s3 ::: BUCKETNAME / *"]
}،
{
"اثر": "مجاز"
"اقدام": "s3: ListAllMyBuckets"،
"منبع": "arn: aws: s3 ::: *"
}،
{
"اثر": "مجاز"
"اقدام": ["cloudfront: *"]
"منبع": "*"
}
]
} - 3 بخش برای این سیاست وجود دارد. اثر برای تأیید یا رد برخی از نوع دسترسی استفاده می شود. این اقدام چیزهایی است که گروه می تواند انجام دهد. این منبع برای دسترسی به سطل های فردی استفاده می شود.
- شما می توانید اقدامات را به صورت جداگانه محدود کنید. در این مثال، "اقدام": ["s3: GetObject"، "s3: ListBucket"، "s3: GetObjectVersion"]، گروه قادر به فهرست محتویات یک سطل و دانلود اشیاء است.
- بخش اول "اجازه می دهد" گروه برای انجام تمام اقدامات S3 برای سطل "BUCKETNAME".
- بخش دوم "اجازه می دهد" گروه را به لیست تمام سطل در S3. شما به این نیاز دارید، بنابراین اگر بخواهید چیزی از کنسول AWS استفاده کنید، می توانید لیست سطل ها را مشاهده کنید.
- بخش سوم به گروه دسترسی کامل به CloudFront می دهد.
گزینه های زیادی برای سیاست های IAM وجود دارد. آمازون دارای یک ابزار واقعا عالی است که به نام AWS Generator Policy شناخته می شود. این ابزار GUI را فراهم می کند که در آن شما می توانید سیاست های خود را ایجاد کنید و کد واقعی لازم برای پیاده سازی این سیاست را تولید کنید. شما همچنین می توانید از بخش خط مشی دسترسی دسترسی به مستندات آنلاین استفاده از AWS Identity و Access Management را بررسی کنید.
ایجاد کاربر و اضافه کردن به گروه
فرایند ایجاد یک کاربر جدید و اضافه کردن به گروه برای دسترسی به آنها شامل چند مرحله می شود.
- نحو ایجاد یک کاربر iam-usercreate -u USERNAME [-p PATH] [-g GROUPS ...] [-k] [-v] جایی که -p، -g، -k و -v گزینه هستند. مستندات کامل در رابط خط فرمان در AWS Docs موجود است.
- اگر می خواهید یک کاربر "bob" ایجاد کنید، شما می توانید iam-usercreate -u bob-g awesomeusers را در Command Prompt وارد کنید.
- شما می توانید بررسی کنید که کاربر به درستی با وارد کردن لیست های گروه iam-g awesomeusers در Command Prompt درست ساخته شده است. اگر شما فقط این کاربر را ایجاد کرده اید، خروجی چیزی شبیه "arn: aws: iam :: 123456789012: user / bob" است که شماره آن شماره حساب AWS شماست.
ایجاد پروفایل ورود و ایجاد کلید
در این مرحله، شما یک کاربر را ایجاد کرده اید، اما شما باید آنها را به یک شیوه ای برای اضافه کردن و حذف اشیاء از S3 اضافه کنید.
2 گزینه برای دسترسی کاربران به S3 با استفاده از IAM وجود دارد. شما می توانید یک نمایه ورود ایجاد کنید و کاربران خود را با رمز عبور ارائه دهید. آنها می توانند از اعتبار خود برای ورود به کنسول آمازون AWS استفاده کنند. گزینه دیگر این است که کاربران خود را یک کلید دسترسی و یک کلید مخفی بگذارند. آنها می توانند از این کلید ها در ابزارهای شخص ثالث مانند S3 Fox، CloudBerry S3 Explorer یا S3 Browser استفاده کنند.
ایجاد پروفایل ورود
ایجاد پروفایل ورود برای کاربران S3 شما آنها را با یک نام کاربری و رمز عبور که می توانند برای ورود به کنسول آمازون AWS استفاده کنند.
- نحو ایجاد یک پروفایل ورود، iam-useraddloginprofile -u USERNAME -p PASSWORD است. مستندات کامل در رابط خط فرمان در AWS Docs موجود است.
- اگر می خواستید یک پروفایل کاربری برای کاربر "bob" ایجاد کنید، شما باید وارد iam-useraddloginprofile -u bob -p PASSWORD در Command Prompt شوید.
- میتوانید با وارد کردن iam-usergetloginprofile -u bob در Command Prompt درست کنید که مشخصات ورود به درستی ایجاد شده است. اگر شما مشخصات ورود به سایت را برای bob ایجاد کرده اید، خروجی چیزی شبیه «ورود به پروفایل برای کاربر» است.
ایجاد کلید
ایجاد کلید دسترسی AWS Secret و مربوط به AWS Access Key ID به کاربران اجازه می دهد از نرم افزار 3rd party مانند موارد قبلا ذکر شده استفاده کنند. به خاطر داشته باشید که به عنوان یک اقدام امنیتی، شما فقط می توانید این کلید ها را در طول فرایند اضافه کردن نمایه کاربر دریافت کنید. اطمینان حاصل کنید که خروجی را از Command Prompt کپی و جای گذاری کنید و در یک فایل متنی ذخیره کنید. شما می توانید این فایل را به کاربر خود ارسال کنید.
- نحو اضافه کردن کلید برای یک کاربر iam-useraddkey [-u USERNAME] است. مستندات کامل در رابط خط فرمان در AWS Docs موجود است.
- اگر میخواهید کلید برای کاربر "bob" ایجاد کنید، می توانید iam-useraddkey -u bob را در command prompt وارد کنید.
- دستور کلید هایی را می دهد که چیزی شبیه به این هستند:
AKIACOOB5BQVEXAMPLE
BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
خط اول کلید شناسه دسترسی است و خط دوم کلید دسترسی راز است. شما نیاز به نرم افزار 3rd party دارید.
دسترسی به آزمون
اکنون که شما گروه ها / کاربران IAM را ایجاد کرده اید و با استفاده از خط مشی ها به گروه ها دسترسی دارید، باید دسترسی را آزمایش کنید.
دسترسی کنسول
کاربران شما می توانند از نام کاربری و رمز عبور خود برای ورود به کنسول AWS استفاده کنند. با این حال، این صفحه ورود کنسول به طور منظم نیست که برای حساب اصلی AWS استفاده می شود.
یک URL مخصوص وجود دارد که می توانید از آن استفاده کنید که فرم ورود را فقط برای حساب Amazon AWS شما ارائه می دهد. در اینجا URL برای ورود به S3 برای کاربران IAM شما است.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
AWS-ACCOUNT-NUMBER شماره حساب معمولی AWS شماست. شما می توانید این را با وارد شدن به فرم ثبت نام وب سرویس آمازون دریافت کنید. وارد شوید و روی حساب کاربری کلیک کنید فعالیت حساب شماره حساب شما در گوشه سمت راست بالا قرار دارد. مطمئن شوید که خطوط را حذف کرده اید. URL به نظر می رسد مانند https://123456789012.signin.aws.amazon.com/console/s3.
با استفاده از کلید های دسترسی
شما می توانید هر یک از ابزارهای شخص ثالث که در این مقاله ذکر شده را دانلود و نصب کنید. شناسه Access Key Key و کلید دسترسی مخفی را برای مستندات ابزار 3 حزب وارد کنید.
من به شدت توصیه می کنم که یک کاربر اولیه ایجاد کنید و این کاربر را به طور کامل آزمایش کنید که بتواند همه چیزهایی را که باید در S3 انجام دهد انجام دهد. پس از تأیید یکی از کاربران خود، می توانید تمام کاربران S3 خود را تنظیم کنید.
منابع
در اینجا چند منبع برای درک بهتر از هویت و مدیریت دسترسی (IAM) وجود دارد.
- شروع با IAM
- جعبه ابزار خط فرمان IAM
- آمازون AWS کنسول
- AWS ژنراتور خط مشی
- با استفاده از AWS هویت و مدیریت دسترسی
- یادداشت انتشار IAM
- انجمن گفتگوهای IAM
- سوالات متداول IAM