חלק 1 מתוך 3
בשנת 2011, הודיעה אמזון על זמינותו של AWS Identity & Access Management (IAM) תמיכה עבור CloudFront. IAM הושק בשנת 2010 וכלל תמיכה S3. AWS Identity & Access Management (IAM) מאפשר לך לנהל מספר משתמשים בחשבון AWS. אם השתמשת בשירותי האינטרנט של Amazon (AWS), אתה מודע לכך שהדרך היחידה לנהל תוכן ב- AWS כוללת מתן שם משתמש וסיסמה או גישה למפתחות.
זוהי דאגה ביטחונית אמיתית עבור רובנו. IAM מבטלת את הצורך לשתף סיסמאות וגישה למפתחות.
כל הזמן שינוי סיסמת AWS הראשי שלנו או יצירת מפתחות חדשים הוא רק פתרון מבולגן כאשר חבר הצוות יעזוב את הצוות שלנו. AWS Identity & Access Management (IAM) הייתה התחלה טובה המאפשרת לחשבונות משתמשים בודדים עם מפתחות בודדים. עם זאת, אנחנו משתמש S3 / CloudFront אז אנחנו כבר צופה CloudFront להתווסף IAM אשר בסופו של דבר קרה.
מצאתי את התיעוד על שירות זה להיות קצת מפוזרים. ישנם כמה מוצרים של צד שלישי המציעים מגוון רחב של תמיכה בניהול זהויות וגישה (IAM). אבל מפתחים הם בדרך כלל חסכן ולכן חיפשתי פתרון חופשי לניהול IAM עם שירות אמזון S3 שלנו.
מאמר זה עובר תהליך של הגדרת ממשק שורת הפקודה התומך IAM והגדרת קבוצה / משתמש עם גישה S3. יש צורך בהגדרת חשבון AWS S3 של אמזון לפני שתתחיל בהגדרת ניהול זהויות וגישה (IAM).
המאמר שלי, באמצעות שירות אחסון אמזון פשוט (S3), ילווה אותך בתהליך של הגדרת חשבון AWS S3.
להלן השלבים הכרוכים בהגדרה וביישום של משתמש ב- IAM. זה נכתב עבור Windows אבל אתה יכול לצבוט לשימוש לינוקס, UNIX ו / או Mac OSX.
- התקנה והגדרה של ממשק שורת הפקודה (CLI)
- ליצור קבוצה
- תן לקבוצה גישה לדלי S3 ו- CloudFront
- צור משתמש והוסף לקבוצה
- יצירת פרופיל התחברות יצירת מפתחות
- גישה למבחן
התקנה והגדרה של ממשק שורת הפקודה (CLI)
IAM שורת הפקודה Toolkit היא תוכנית Java זמין AWS של אמזון מפתחים כלים. הכלי מאפשר לך לבצע פקודות IAM API מתוך כלי עזר פגז (DOS עבור Windows).
- אתה צריך להיות פועל Java 1.6 או גבוה יותר. ניתן להוריד את הגרסה העדכנית ביותר מ- Java.com. כדי לראות איזו גירסה מותקנת במערכת Windows, פתח את שורת הפקודה והקלד ב- Java -version. זה מניח כי java.exe נמצא שלך Path.
- הורד את ערכת הכלים II CLI ו unzip איפשהו על הכונן המקומי.
- ישנם 2 קבצים בשורש ערכת הכלים של CLI שעליך לעדכן.
- aws-credential.template: קובץ זה מכיל את אישורי ה- AWS שלך. הוסף את AWSAccessKeyId ואת ה- AWSSecretKey, שמור וסגור את הקובץ.
- client-config.template : עליך לעדכן קובץ זה רק אם דרוש לך שרת proxy. הסר את # הסימנים ועדכן את ClientProxyHost, ClientProxyPort, ClientProxyUsername ו- ClientProxyPassword. שמור וסגור את הקובץ.
- השלב הבא כולל הוספת משתני סביבה. עבור אל לוח הבקרה מאפייני מערכת | הגדרות מערכת מתקדמות משתני סביבה. הוסף את המשתנים הבאים:
- AWS_IAM_HOME : הגדר משתנה זה לספריה שבה פתחת את ערכת הכלים של CLI. אם אתה מפעיל את Windows ו unzip אותו בשורש של כונן 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 ו unzip אותו בשורש של כונן C שלך, המשתנה יהיה C: \ IAMCli-1.2.0 \ aws-credential.template.
- CLIENT_CONFIG_FILE : עליך להוסיף משתנה סביבה זה רק אם דרוש לך שרת proxy. אם אתה מפעיל את Windows ו unzip אותו בשורש של כונן 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 מדהים ב הפקודה הפקודה.
- באפשרותך לבדוק שהקבוצה נוצרה בצורה נכונה על-ידי הזנת iam-grouplistbypath בהודעת הפקודה. אם רק יצרת קבוצה זו, הפלט יהיה משהו כמו "arn: aws: iam :: 123456789012: group / awesomeusers", כאשר המספר הוא מספר חשבון AWS שלך.
תן לקבוצה גישה לדלי S3 ו- CloudFront
מדיניות לשלוט מה הקבוצה שלך מסוגלת לעשות S3 או CloudFront. כברירת מחדל, לקבוצה שלך לא תהיה גישה לשום דבר ב- AWS. מצאתי את התיעוד על מדיניות להיות בסדר אבל ביצירת קומץ של מדיניות, עשיתי קצת ניסוי וטעייה כדי לקבל דברים עובד כמו שאני רוצה שהם יעבדו.
יש לך כמה אפשרויות ליצירת מדיניות.
אפשרות אחת היא שתוכל להזין אותם ישירות לתוך שורת הפקודה. מכיוון שאתה עשוי להיות יצירת מדיניות tweaking אותו, בשבילי זה נראה קל להוסיף את המדיניות לתוך קובץ טקסט ולאחר מכן להעלות את קובץ הטקסט כפרמטר עם הפקודה iam-groupuploadpolicy. הנה התהליך באמצעות קובץ טקסט והעלאה ל- IAM.
- השתמש במשהו כמו 'פנקס רשימות' והזן את הטקסט הבא ושמור את הקובץ:
{
"הַצהָרָה":[{
"אפקט": "אפשר",
"פעולה": "s3: *", "
"מַשׁאָב":[
"arn: aws: s3 ::: BUCKETNAME", "
"arn: aws: s3 ::: BUCKETNAME / *"]
},
{
"אפקט": "אפשר",
"פעולה": "s3: ListAllMyBuckets",
"Resource": "arn: aws: s3 ::: *"
},
{
"אפקט": "אפשר",
"פעולה": ["cloudfront: *"],
"מַשׁאָב":"*"
}
]
} - קיימים שלושה קטעים למדיניות זו. האפקט משמש כדי לאפשר או לדחות סוג כלשהו של גישה. הפעולה היא הדברים הספציפיים שהקבוצה יכולה לעשות. המשאב ישמש למתן גישה לדליים בודדים.
- תוכל להגביל את הפעולות בנפרד. בדוגמה זו, "Action": ["s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion"], הקבוצה תוכל לרשום את התוכן של דלי ולהוריד אובייקטים.
- החלק הראשון "מאפשר" את הקבוצה לבצע את כל פעולות S3 עבור דלי "BUCKETNAME".
- החלק השני "מאפשר" לקבוצה לרשום את כל הדליים ב S3. אתה צריך את זה אז אתה באמת יכול לראות את רשימת דליים אם אתה משתמש משהו כמו מסוף AWS.
- החלק השלישי מעניק לקבוצה גישה מלאה ל- CloudFront.
ישנן אפשרויות רבות כאשר מגיע מדיניות IAM. אמזון יש כלי ממש מגניב זמין שנקרא AWS מדיניות גנרטור. כלי זה מספק GUI שבו אתה יכול ליצור את המדיניות שלך וליצור את הקוד בפועל אתה צריך ליישם את המדיניות. ניתן גם לבדוק את הקטע 'מדיניות מדיניות גישה' בתיעוד המקוון 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-gesome מדהים ב שורת הפקודה.
- באפשרותך לבדוק שהמשתמש נוצר באופן תקין על-ידי הזנת iam-grouplistusers -g awesomeusers ב- Command Command. אם רק יצרת משתמש זה, הפלט יהיה משהו כמו "arn: aws: iam :: 123456789012: user / bob", כאשר המספר הוא מספר חשבון AWS שלך.
יצירת פרופיל כניסה יצירת מפתחות
בשלב זה, יצרת משתמש אבל אתה צריך לספק להם דרך למעשה להוסיף ולהסיר אובייקטים מ S3.
קיימות שתי אפשרויות זמינות כדי לספק למשתמשים שלך גישה ל- S3 באמצעות IAM. באפשרותך ליצור פרופיל כניסה ולספק למשתמשים שלך סיסמה. הם יכולים להשתמש אישורים שלהם להיכנס לתוך קונסולת AWS אמזון. האפשרות השנייה היא לתת למשתמשים שלך מפתח גישה ומפתח סודי. הם יכולים להשתמש במפתחות אלה בכלי צד שלישי כמו S3 פוקס, CloudBerry S3 Explorer או דפדפן S3.
צור פרופיל התחברות
יצירת פרופיל התחברות עבור משתמשי S3 שלך מספק להם שם משתמש וסיסמה שהם יכולים להשתמש בהם כדי להתחבר אל קונסולת ה- AWS של אמזון.
- התחביר ליצירת פרופיל התחברות הוא iam-useraddloginprofile-US USNAME-p PWWORD. תיעוד מלא בממשק שורת הפקודה זמין ב- AWS Docs.
- אם אתה רוצה ליצור פרופיל התחברות עבור המשתמש "bob", אתה יכנס, iam-useraddloginprofile -u bob-p PWWORD ב שורת הפקודה.
- באפשרותך לבדוק שפרופיל ההתחברות נוצר בצורה נכונה על-ידי הזנת iam-usergetloginprofile -u bob בכתובת שורת הפקודה. אם יצרת פרופיל כניסה עבור bob, הפלט יהיה משהו כמו "התחבר פרופיל קיים עבור המשתמש בוב".
צור מפתחות
יצירת מפתח גישה חשאי של AWS ומקש AWS Access Key המתאים יאפשר למשתמשים להשתמש בתוכנות צד שלישי כמו אלה שהוזכרו קודם לכן. זכור כי כאמצעי אבטחה, תוכל לקבל רק את המקשים האלה במהלך תהליך ההוספה של פרופיל המשתמש. הקפד להעתיק ולהדביק את הפלט מתוך שורת הפקודה ולשמור בקובץ טקסט. תוכל לשלוח את הקובץ למשתמש שלך.
- התחביר להוספת מפתחות עבור משתמש הוא iam-useraddkey [-U USERNAME]. תיעוד מלא בממשק שורת הפקודה זמין ב- AWS Docs.
- אם אתה רוצה ליצור מפתחות עבור המשתמש "bob", אתה יכנס iam-useraddkey-bob ב שורת הפקודה.
- הפקודה תפיק את המקשים שייראו כך:
AKIACOOB5BQVEXAMPLE
BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
השורה הראשונה היא מזהה מפתח הגישה והשורה השנייה היא מפתח הגישה הסודית. אתה צריך גם עבור תוכנת צד 3.
גישה למבחן
כעת, לאחר שיצרת קבוצות / משתמשים של IAM ונתנה גישה לקבוצות באמצעות מדיניות, עליך לבדוק את הגישה.
גישה למסוף
המשתמשים שלך יכולים להשתמש בשם המשתמש והסיסמה שלהם כדי להיכנס למסוף AWS. עם זאת, אין זה דף הכניסה הרגיל של קונסולה המשמש לחשבון הראשי של AWS.
יש כתובת אתר מיוחדת שבה ניתן להשתמש, אשר תספק טופס התחברות לחשבון Amazon AWS בלבד. הנה כתובת האתר כדי להיכנס S3 עבור משתמשי IAM שלך.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
AWS-ACCOUNT-NUMBER הוא מספר החשבון הרגיל של AWS. אתה יכול לקבל את זה על ידי כניסה לתוך האינטרנט אמזון שירות טופס כניסה. התחבר ולחץ על חשבון | פעילות חשבון. מספר החשבון שלך נמצא בפינה השמאלית העליונה. הקפד להסיר את מקפים. כתובת האתר תיראה כמו https://123456789012.signin.aws.amazon.com/console/s3.
באמצעות מקשי גישה
אתה יכול להוריד ולהתקין את כל כלי צד 3 כבר מוזכר במאמר זה. הזן את מזהה מפתח הגישה ואת מפתח הגישה הסודית לפי תיעוד הכלי של צד שלישי.
אני מאוד ממליץ לך ליצור משתמש ראשוני יש למשתמש לבדוק כי הם יכולים לעשות את כל מה שהם צריכים לעשות ב S3. לאחר שתאמת אחד מהמשתמשים שלך, תוכל להמשיך בהגדרת כל המשתמשים שלך ב- S3.
אֶמְצָעִי
הנה כמה משאבים כדי לתת לך הבנה טובה יותר של זהות & גישה ניהול (IAM).
- תחילת העבודה עם IAM
- שורת הפקודה IAM
- אמזון AWS קונסולת
- מחולל מדיניות AWS
- שימוש בזיהוי זהות וגישה של AWS
- IAM הערות
- IAM דיון פורומים
- IAM שאלות נפוצות