في عام 2011 ، أعلنت أمازون عن توافر دعم AWS Identity & Access Management (IAM) لـ CloudFront. تم إطلاق IAM في عام 2010 وشمل دعم S3. تمكنك AWS Identity & Access Management (IAM) من امتلاك مستخدمين متعددين في حساب AWS. إذا كنت قد استخدمت Amazon Web Services (AWS) ، فأنت على علم بأن الطريقة الوحيدة لإدارة المحتوى في AWS تتضمن إعطاء اسم المستخدم وكلمة المرور أو مفاتيح الوصول. هذا هو مصدر قلق حقيقي بالنسبة لمعظمنا. يلغي IAM الحاجة إلى مشاركة كلمات المرور ومفاتيح الوصول.
إن تغيير كلمة مرور AWS الرئيسية الخاصة بنا باستمرار أو إنشاء مفاتيح جديدة هو مجرد حل فوضوي عندما يغادر أحد الموظفين فريقنا. كانت AWS Identity & Access Management (IAM) بداية جيدة تسمح لحسابات المستخدمين الفردية باستخدام مفاتيح فردية. ومع ذلك ، فنحن مستخدم S3 / CloudFront لذا فإننا نراقب إضافة CloudFront إلى IAM الذي حدث أخيراً.
لقد وجدت الوثائق على هذه الخدمة لتكون مبعثرة بعض الشيء. هناك عدد قليل من منتجات الجهات الخارجية التي تقدم مجموعة من الدعم لإدارة الهوية والوصول (IAM). لكن المطورين عادة ما يكونون مقتصدين لذلك سعت للحصول على حل مجاني لإدارة IAM من خلال خدمة Amazon S3.
هذه المادة يمشي من خلال عملية إعداد واجهة سطر الأوامر التي تدعم IAM وإعداد مجموعة / مستخدم مع وصول S3. يجب أن يكون لديك إعداد حساب Amazon AWS S3 قبل البدء في تكوين Identity & Access Management (IAM). مقالي ، باستخدام خدمة التخزين البسيط لـ Amazon (S3) ، ستوجهك خلال عملية إعداد حساب AWS S3.
فيما يلي الخطوات المتبعة لإعداد وإعداد مستخدم في IAM. هذا مكتوب لـ Windows ولكن يمكنك تعديله للاستخدام في Linux و UNIX و / أو Mac OSX.
- تثبيت وتكوين واجهة سطر الأوامر (CLI)
- إنشاء مجموعة
- منح Group Access إلى S3 Bucket و CloudFront
- إنشاء مستخدم وإضافة إلى المجموعة
- إنشاء ملف تعريف تسجيل الدخول وإنشاء مفاتيح
- اختبار الوصول
تثبيت وتكوين واجهة سطر الأوامر (CLI)
مجموعة أدوات سطر الأوامر IAM هي عبارة عن برنامج Java متوفر في أدوات مطوّري برامج AWS في Amazon. تتيح لك الأداة تنفيذ أوامر واجهة برمجة تطبيقات IAM من أداة مساعدة shell (DOS لـ Windows).
- تحتاج إلى تشغيل Java 1.6 أو أعلى. يمكنك تنزيل أحدث إصدار من Java.com. لمعرفة أي إصدار مثبت على نظام Windows الخاص بك ، افتح موجه الأوامر واكتب في java -version. هذا يفترض أن java.exe في المسار الخاص بك.
- قم بتنزيل مجموعة أدوات IAM CLI وفك ضغطها في مكان ما على محرك الأقراص المحلي لديك.
- هناك ملفان في جذر مجموعة أدوات CLI التي تحتاج إلى تحديثها.
- أوس-credential.template: يحمل هذا الملف بيانات اعتماد AWS الخاصة بك. أضف AWSAccessKeyId و AWSSecretKey ، احفظ وأغلق الملف.
- العميل config.template: ما عليك سوى تحديث هذا الملف إذا كنت تحتاج إلى خادم وكيل. أزل علامة # وتحديث ClientProxyHost و ClientProxyPort و ClientProxyUsername و ClientProxyPassword. أحفظ وأغلق الملف.
- تتضمن الخطوة التالية إضافة متغيرات البيئة. اذهب الى لوحة التحكم خصائص النظام | إعدادات النظام المتقدمة | متغيرات البيئة. أضف المتغيرات التالية:
- AWS_IAM_HOME: قم بتعيين هذا المتغير إلى الدليل الذي قمت فيه بفك ضغط مجموعة أدوات CLI. إذا كنت تقوم بتشغيل Windows وقمت بفك ضغطه في جذر محرك الأقراص C ، فسيكون المتغير C: IAMCli-1.2.0.
- JAVA_HOME: تعيين هذا المتغير إلى الدليل حيث تم تثبيت Java. هذا سيكون موقع ملف java.exe. في تثبيت Windows 7 Java العادي ، قد يكون هذا شيئًا مثل C: Program Files (x86) Java jre6.
- AWS_CREDENTIAL_FILE: عيّن هذا المتغير على المسار واسم الملف الخاص بـ aws-credential.template الذي قمت بتحديثه أعلاه. إذا كنت تقوم بتشغيل Windows وقمت بفك ضغطه في جذر محرك الأقراص C ، فسيكون المتغير C: IAMCli-1.2.0 aws-credential.template.
- CLIENT_CONFIG_FILE: تحتاج فقط إلى إضافة متغير البيئة هذا إذا كنت تحتاج إلى خادم وكيل. إذا كنت تقوم بتشغيل Windows وقمت بفك ضغطه في جذر محرك الأقراص C ، فسيكون المتغير C: IAMCli-1.2.0 client-config.template. لا تضيف هذا المتغير إلا إذا كنت بحاجة إليه.
- اختبار التثبيت بالانتقال إلى موجه الأوامر وإدخال iam-userlistbypath. طالما أنك لا تتلقى خطأ ، يجب أن تكون جيدًا.
يمكن تشغيل كافة أوامر IAM من موجه الأوامر. كل الأوامر تبدأ بـ "iam-".
إنشاء مجموعة
هناك بحد أقصى 100 مجموعة يمكن إنشاؤها لكل حساب AWS. بينما يمكنك تعيين أذونات في IAM على مستوى المستخدم ، فإن استخدام المجموعات سيكون أفضل الممارسات. هذه هي عملية إنشاء مجموعة في IAM.
- إن بناء الجملة لإنشاء مجموعة هو مجموعة iam-groupcreate -g GROUPNAME -p PATH -v حيث إن -p و -v هي خيارات. الوثائق الكاملة على واجهة سطر الأوامر متاحة على AWS Docs.
- إذا كنت ترغب في إنشاء مجموعة تسمى "awesomeusers" ، فستدخل ، iam-groupcreate -g awesomeusers في موجه الأوامر.
- يمكنك التحقق من أن المجموعة تم إنشاؤها بشكل صحيح عن طريق إدخال iam-grouplistbypath في موجه الأوامر. إذا كنت قد أنشأت هذه المجموعة فقط ، فستكون النتيجة بمثابة "arn: aws: iam :: 123456789012: group / awesomeusers" ، حيث يكون الرقم هو رقم حساب AWS الخاص بك.
منح Group Access إلى S3 Bucket و CloudFront
تتحكم السياسات في ما تستطيع مجموعتك القيام به في S3 أو CloudFront. بشكل افتراضي ، لن تتمكن مجموعتك من الوصول إلى أي شيء في AWS.لقد وجدت أن الوثائق المتعلقة بالسياسات لا بأس بها ولكن في إنشاء عدد قليل من السياسات ، قمت ببعض التجارب والخطأ لجعل الأمور تعمل بالطريقة التي أريدها من العمل.
لديك خياران لإنشاء سياسات. خيار واحد هو أنه يمكنك إدخالها مباشرة في موجه الأوامر. نظرًا لأنك قد تقوم بإنشاء سياسة وتعديلها ، فقد بدا لي أنه من السهل إضافة السياسة إلى ملف نصي ثم تحميل الملف النصي كمعلمة باستخدام الأمر iam-groupuploadpolicy. هذه هي العملية باستخدام ملف نصي وتحميلها إلى IAM.
- استخدم شيئًا مثل Notepad وأدخل النص التالي واحفظ الملف:
- {
- "بيان":{
- "تأثير": "السماح"
- "العمل": "S3: *"،
- "الموارد":
- "شبكة الإذاعة العربية: أوس: S3 ::: BUCKETNAME"
- "شبكة الإذاعة العربية: أوس: S3 ::: BUCKETNAME / *"
- },
- {
- "تأثير": "السماح"
- "العمل": "S3: ListAllMyBuckets"
- "الموارد": "شبكة الإذاعة العربية: أوس: S3 ::: *"
- },
- {
- "تأثير": "السماح"
- "العمل": "cloudfront: *"،
- "الموارد": "*"
- }
- }
- هناك 3 أقسام لهذه السياسة. يستخدم التأثير في السماح أو رفض بعض أنواع الوصول. الإجراء هو الأشياء المحددة التي يمكن للمجموعة القيام بها. سيتم استخدام المورد لمنح إمكانية الوصول إلى مجموعات البيانات الفردية.
- يمكنك تحديد الإجراءات بشكل فردي. في هذا المثال ، "الإجراء": "s3: GetObject" ، "s3: ListBucket" ، "s3: GetObjectVersion" ، ستكون المجموعة قادرة على سرد محتويات دلو وتنزيل الكائنات.
- القسم الأول "يسمح" للمجموعة بتنفيذ جميع إجراءات S3 للمجموعة "BUCKETNAME".
- القسم الثاني "يسمح" للمجموعة بإدراج كافة المجموعات في S3. أنت بحاجة إلى هذا حتى يمكنك رؤية قائمة المجموعات إذا كنت تستخدم شيئًا مثل AWS Console.
- القسم الثالث يعطي المجموعة حق الوصول الكامل إلى CloudFront.
هناك الكثير من الخيارات عندما يتعلق الأمر بسياسات IAM. لدى Amazon أداة رائعة حقًا تسمى "مُولِّد سياسة AWS". توفر هذه الأداة واجهة مستخدم رسومية حيث يمكنك إنشاء سياسات وإنشاء الشفرة الفعلية التي تحتاج إليها لتنفيذ هذه السياسة. يمكنك أيضًا الاطلاع على قسم لغة سياسة الوصول في الوثائق الفورية باستخدام AWS Identity and 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 في موجه الأوامر.
- يمكنك التحقق من أن المستخدم قد تم إنشاؤه بشكل صحيح عن طريق إدخال iam-grouplistusers -g awesomeusers في موجه الأوامر. إذا كنت قد أنشأت هذا المستخدم فقط ، فستكون النتيجة بمثابة "arn: aws: iam :: 123456789012: user / bob" ، حيث يكون الرقم هو رقم حساب AWS الخاص بك.
إنشاء ملف تعريف تسجيل الدخول وإنشاء مفاتيح
عند هذه النقطة ، تكون قد قمت بإنشاء مستخدم ولكنك تحتاج إلى تزويدهم بطريقة لإضافة وإضافة كائنات بالفعل من S3. هناك خياران متاحان لتزويد مستخدميك بإمكانية الوصول إلى S3 باستخدام IAM. يمكنك إنشاء ملف تعريف تسجيل الدخول وتزويد المستخدمين بكلمة مرور. يمكنهم استخدام أوراق اعتمادهم لتسجيل الدخول إلى Amazon AWS Console. الخيار الآخر هو منح المستخدمين مفتاح وصول ومفتاح سر. يمكنهم استخدام هذه المفاتيح في أدوات تابعة لجهة خارجية مثل S3 Fox أو CloudBerry S3 Explorer أو S3 Browser.
إنشاء ملف تعريف تسجيل الدخول
يوفر إنشاء ملف تعريف تسجيل الدخول لمستخدمي S3 لهم اسم مستخدم وكلمة مرور يمكنهم استخدامها لتسجيل الدخول إلى Amazon AWS Console.
- إن بناء جملة إنشاء ملف تعريف تسجيل دخول هو iam-useraddloginprofile -u USERNAME -p PASSWORD. الوثائق الكاملة على واجهة سطر الأوامر متاحة على AWS Docs.
- إذا أردت إنشاء ملف تعريف تسجيل دخول للمستخدم "bob" ، فستدخل ، iam-useraddloginprofile -u bob -p PASSWORD في موجه الأوامر.
- يمكنك التحقق من أن ملف تعريف تسجيل الدخول تم إنشاؤه بشكل صحيح عن طريق إدخال iam-usergetloginprofile -u bob في موجه الأوامر. إذا كنت قد أنشأت ملفًا شخصيًا لتسجيل الدخول لـ bob ، فسيكون الإخراج "شيئًا مثل" "ملف تعريف تسجيل الدخول" لـ "bob المستخدم".
خلق مفاتيح
سيسمح إنشاء مفتاح الوصول السري لـ AWS ومعرف مفتاح الوصول AWS المقابل للمستخدمين لديك باستخدام برامج تابعة لجهة خارجية مثل البرامج التي سبق ذكرها. ضع في اعتبارك أنه كإجراء أمني ، يمكنك فقط الحصول على هذه المفاتيح أثناء عملية إضافة ملف تعريف المستخدم. تأكد من نسخ ولصق الإخراج من موجه الأوامر وحفظه في ملف نصي. يمكنك إرسال الملف إلى المستخدم الخاص بك.
- إن بناء الجملة لإضافة مفاتيح للمستخدم هو iam-useraddkey -u USERNAME. الوثائق الكاملة على واجهة سطر الأوامر متاحة على AWS Docs.
- إذا كنت تريد إنشاء مفاتيح للمستخدم "bob" ، فأنت ستدخل iam-useraddkey -u bob في موجه الأوامر.
- سيخرج الأمر المفاتيح التي ستبدو شيئًا كالتالي:
- AKIACOOB5BQVEXAMPLE
- BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
- السطر الأول هو معرف مفتاح الوصول والخط الثاني هو مفتاح الوصول السري. أنت في حاجة إلى كل من برامج الطرف الثالث.
اختبار الوصول
الآن بعد أن قمت بإنشاء مجموعات / مستخدمات IAM وإعطاء الوصول إلى المجموعات باستخدام السياسات ، تحتاج إلى اختبار الوصول.
وصول وحدة التحكم
يمكن للمستخدمين لديك استخدام اسم المستخدم وكلمة المرور الخاصة بهم لتسجيل الدخول إلى AWS Console. ومع ذلك ، هذه ليست صفحة تسجيل الدخول إلى وحدة التحكم العادية التي يتم استخدامها لحساب AWS الرئيسي. هناك عنوان URL خاص يمكنك استخدامه والذي سيوفر نموذج تسجيل دخول لحساب Amazon AWS الخاص بك فقط. هنا هو عنوان URL لتسجيل الدخول إلى S3 لمستخدمي IAM.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
AWS-ACCOUNT-NUMBER هو رقم حساب AWS العادي. يمكنك الحصول على هذا عن طريق تسجيل الدخول إلى نموذج تسجيل الدخول إلى خدمة Amazon Web Service. تسجيل الدخول والنقر على حساب | نشاط الحساب. رقم حسابك موجود في الزاوية العلوية اليمنى. تأكد من إزالة الشرطات. سيبدو عنوان URL مثل https://123456789012.signin.aws.amazon.com/console/s3.
باستخدام مفاتيح الوصول
يمكنك تنزيل وتثبيت أي من أدوات الطرف الثالث المذكورة في هذه المقالة. أدخل معرف مفتاح الوصول الخاص بك ومفتاح الوصول السري لكل وثائق أداة الطرف الثالث.
أوصي بشدة بإنشاء مستخدم مبدئي واختبار ذلك المستخدم بشكل كامل حتى يتمكنوا من القيام بكل ما يحتاجون إليه في S3. بعد التحقق من أحد المستخدمين ، يمكنك المتابعة في إعداد جميع مستخدمي S3 لديك.