Skip to main content

AWS Identity และการจัดการการเข้าถึง

Introduction to Amazon Web Services by Leo Zhadanovsky (อาจ 2025)

Introduction to Amazon Web Services by Leo Zhadanovsky (อาจ 2025)
Anonim

ในปีพ. ศ. 2554 Amazon ประกาศความพร้อมของ 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 ซึ่งเกิดขึ้นในที่สุด

ฉันพบว่าเอกสารในบริการนี้เป็นบิตกระจัดกระจาย มีผลิตภัณฑ์ของบุคคลที่สามจำนวนหนึ่งที่ให้การสนับสนุน Identity & Access Management (IAM) เป็นจำนวนมาก แต่นักพัฒนามักจะไม่ค่อยกระตือรือร้นดังนั้นฉันจึงหาทางออกฟรีในการจัดการ IAM กับบริการ Amazon S3 ของเรา

บทความนี้ดำเนินการขั้นตอนการตั้งค่าส่วนติดต่อบรรทัดคำสั่งที่สนับสนุน IAM และการตั้งค่ากลุ่ม / ผู้ใช้ที่มีสิทธิ์เข้าถึง S3 คุณจำเป็นต้องมีการตั้งค่าบัญชี Amazon AWS S3 ก่อนที่คุณจะเริ่มกำหนดค่า Identity & Access Management (IAM) บทความของฉันโดยใช้ Amazon Simple Storage Service (S3) จะนำคุณสู่ขั้นตอนการตั้งค่าบัญชี AWS S3

ต่อไปนี้เป็นขั้นตอนในการตั้งค่าและการใช้ผู้ใช้ IAM นี้เขียนขึ้นสำหรับ Windows แต่คุณสามารถปรับแต่งเพื่อใช้ใน Linux, UNIX และ / หรือ Mac OSX

  1. ติดตั้งและกำหนดค่า Command Line Interface (CLI)
  2. สร้างกลุ่ม
  3. ให้กลุ่มเข้าถึง S3 Bucket และ CloudFront
  4. สร้างผู้ใช้และเพิ่มในกลุ่ม
  5. สร้างโปรไฟล์การเข้าสู่ระบบและสร้างคีย์
  6. เข้าใช้งานทดสอบ

ติดตั้งและกำหนดค่า Command Line Interface (CLI)

IAM Command Line Toolkit เป็นโปรแกรม Java ที่มีอยู่ใน Amazon's AWS Developers Tools เครื่องมือนี้ช่วยให้คุณสามารถรันคำสั่ง IAM API จากโปรแกรมอรรถประโยชน์เชลล์ (DOS for Windows)

  • คุณต้องใช้ Java 1.6 หรือสูงกว่า คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดจาก Java.com หากต้องการดูว่ามีการติดตั้งเวอร์ชันใดในระบบ Windows ของคุณให้เปิด Command Prompt และพิมพ์ java -version สมมติว่า java.exe อยู่ในเส้นทางของคุณ
  • ดาวน์โหลดชุดเครื่องมือ IAM CLI และเปิดเครื่องรูดที่ใดที่หนึ่งในไดรฟ์ภายในของคุณ
  • มีไฟล์ 2 ไฟล์อยู่ในรากของชุดเครื่องมือ CLI ที่คุณต้องอัพเดต
    • AWS-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 อย่าเพิ่มตัวแปรนี้จนกว่าคุณจะต้องการ
  • ทดสอบการติดตั้งโดยไปที่ Command Prompt และป้อน iam-userlistbypath ตราบเท่าที่คุณไม่ได้รับข้อผิดพลาดคุณควรจะดีไป

คำสั่ง IAM ทั้งหมดสามารถรันได้จาก Command Prompt คำสั่งทั้งหมดเริ่มต้นด้วย "iam-"

สร้างกลุ่ม

มีกลุ่มที่สามารถสร้างได้สูงสุด 100 กลุ่มสำหรับแต่ละบัญชี AWS แม้ว่าคุณจะสามารถตั้งค่าสิทธิ์ใน IAM ได้ในระดับผู้ใช้ แต่การใช้กลุ่มจะเป็นการปฏิบัติที่ดีที่สุด นี่คือกระบวนการในการสร้างกลุ่มใน IAM

  • ไวยากรณ์สำหรับสร้างกลุ่มคือ iam-groupcreate -g GROUPNAME -p PATH -v โดยที่ -p และ -v เป็นตัวเลือก เอกสารทั้งหมดเกี่ยวกับส่วนติดต่อบรรทัดคำสั่งมีอยู่ในเอกสาร AWS
  • ถ้าคุณต้องการสร้างกลุ่มที่เรียกว่า "awesomeusers" คุณจะต้องป้อน iam-groupcreate -g awesomeusers ที่ Command Prompt
  • คุณสามารถตรวจสอบว่ากลุ่มถูกสร้างขึ้นอย่างถูกต้องโดยการป้อน iam-grouplistbypath ที่ Command Prompt หากคุณสร้างกลุ่มนี้แล้วผลลัพธ์จะเป็น "arn: aws: iam :: 123456789012: group / awesomeusers" โดยที่หมายเลขนี้เป็นหมายเลขบัญชี AWS ของคุณ

ให้กลุ่มเข้าถึง S3 Bucket และ 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 ส่วน เอฟเฟคใช้เพื่ออนุญาตหรือปฏิเสธการเข้าถึงบางประเภท การกระทำคือสิ่งที่กลุ่มสามารถทำได้ ทรัพยากรนี้จะใช้เพื่อให้สามารถเข้าถึงแต่ละถังได้
  • คุณสามารถ จำกัด การดำเนินการแยกกันได้ ในตัวอย่างนี้ "Action": "s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion" กลุ่มจะสามารถแสดงเนื้อหาของถังและดาวน์โหลดวัตถุได้
  • ส่วนแรก "อนุญาต" กลุ่มเพื่อดำเนินการ S3 ทั้งหมดสำหรับสต็อค "BUCKETNAME"
  • ส่วนที่สอง "อนุญาตให้" กลุ่มแสดงรายการข้อมูลทั้งหมดใน S3 คุณต้องการข้อมูลนี้เพื่อให้สามารถเห็นรายการที่เก็บข้อมูลได้ถ้าคุณใช้สิ่งต่างๆเช่นคอนโซล AWS
  • ส่วนที่สามจะช่วยให้กลุ่มสามารถเข้าถึง CloudFront ได้อย่างเต็มที่

มีนโยบายมากมายสำหรับนโยบาย IAM Amazon มีเครื่องมือที่ยอดเยี่ยมจริงๆที่เรียกว่า AWS Policy Generator เครื่องมือนี้มี GUI ที่คุณสามารถสร้างนโยบายของคุณและสร้างรหัสจริงที่คุณต้องใช้เพื่อดำเนินนโยบายนี้ นอกจากนี้คุณยังสามารถดูส่วนภาษาของนโยบายการเข้าถึงได้จากเอกสารออนไลน์ที่ใช้ AWS Identity and Access Management

สร้างผู้ใช้และเพิ่มในกลุ่ม

ขั้นตอนการสร้างผู้ใช้รายใหม่และการเพิ่มลงในกลุ่มเพื่อให้เข้าถึงได้โดยมีขั้นตอนสองขั้นตอน

  • ไวยากรณ์สำหรับการสร้างผู้ใช้คือ iam-usercreate -u USERNAME -p PATH -g GROUPS … -k -v โดยที่ p, -g, -k และ -v เป็นตัวเลือก เอกสารทั้งหมดเกี่ยวกับส่วนติดต่อบรรทัดคำสั่งมีอยู่ในเอกสาร AWS
  • ถ้าคุณต้องการสร้างผู้ใช้ "bob" คุณจะต้องใส่ iam-usercreate -u bob -g awesomeusers ที่ Command Prompt
  • คุณสามารถตรวจสอบว่าผู้ใช้ถูกสร้างขึ้นอย่างถูกต้องโดยการป้อน iam-grouplistusers -g awesomeusers ที่ Command Prompt หากคุณสร้างผู้ใช้รายนี้เอาท์พุทจะเป็น "arn: aws: iam :: 123456789012: user / bob" ซึ่งหมายเลขนี้เป็นหมายเลขบัญชี AWS ของคุณ

สร้างโปรไฟล์การเข้าสู่ระบบและสร้างคีย์

ณ จุดนี้คุณได้สร้างผู้ใช้ แต่คุณจำเป็นต้องให้พวกเขามีวิธีการเพิ่มและลบวัตถุจาก S3 จริง มี 2 ​​ตัวเลือกเพื่อให้ผู้ใช้ของคุณเข้าถึง S3 โดยใช้ IAM คุณสามารถสร้างโปรไฟล์เข้าสู่ระบบและให้รหัสผ่านกับผู้ใช้ของคุณ พวกเขาสามารถใช้ข้อมูลรับรองเพื่อเข้าสู่ Amazon AWS Console ได้ ตัวเลือกอื่น ๆ คือให้สิทธิ์การเข้าถึงและคีย์ลับแก่ผู้ใช้ของคุณ พวกเขาสามารถใช้คีย์เหล่านี้ในเครื่องมือของบุคคลที่ 3 เช่น S3 Fox, CloudBerry S3 Explorer หรือ S3 Browser

สร้างโปรไฟล์เข้าสู่ระบบ

การสร้างโปรไฟล์ล็อกอินสำหรับผู้ใช้ S3 ของคุณจะมีชื่อผู้ใช้และรหัสผ่านที่สามารถใช้เพื่อเข้าสู่ระบบ Amazon AWS Console ได้

  • ไวยากรณ์สำหรับการสร้างโปรไฟล์การเข้าสู่ระบบคือ iam-useraddloginprofile -u USERNAME -p PASSWORD เอกสารทั้งหมดเกี่ยวกับส่วนติดต่อบรรทัดคำสั่งมีอยู่ในเอกสาร AWS
  • หากคุณต้องการสร้างโปรไฟล์การเข้าสู่ระบบสำหรับผู้ใช้ "bob" คุณจะต้องใส่ iam-useraddloginprofile -u bob -p PASSWORD ที่ Command Prompt
  • คุณสามารถตรวจสอบว่าโปรไฟล์การเข้าสู่ระบบถูกสร้างขึ้นอย่างถูกต้องโดยป้อน iam-usergetloginprofile -u bob ที่ Command Prompt ถ้าคุณได้สร้างโปรไฟล์การเข้าสู่ระบบสำหรับ bob เอาท์พุทจะเป็นเช่น "มีข้อมูลเข้าสู่ระบบสำหรับผู้ใช้ bob"

สร้างคีย์

การสร้างคีย์การเข้าถึง AWS Secret Access และรหัสคีย์การเข้าถึง AWS ที่สอดคล้องกันจะทำให้ผู้ใช้สามารถใช้ซอฟต์แวร์ของบุคคลที่ 3 เช่นเดียวกับที่ได้กล่าวมาก่อนหน้านี้ โปรดจำไว้ว่าเป็นมาตรการรักษาความปลอดภัยคุณสามารถรับคีย์เหล่านี้ได้ในระหว่างขั้นตอนการเพิ่มโปรไฟล์ผู้ใช้เท่านั้น ตรวจสอบให้แน่ใจว่าคุณได้คัดลอกและวางเอาต์พุตจาก Command Prompt แล้วบันทึกในไฟล์ข้อความ คุณสามารถส่งไฟล์ไปยังผู้ใช้ของคุณได้

  • ไวยากรณ์สำหรับการเพิ่มคีย์สำหรับผู้ใช้คือ iam-useraddkey -u USERNAME เอกสารทั้งหมดเกี่ยวกับส่วนติดต่อบรรทัดคำสั่งมีอยู่ในเอกสาร AWS
  • ถ้าคุณต้องการสร้างคีย์สำหรับผู้ใช้ "bob" คุณจะต้องป้อน iam-useraddkey -u bob ที่ Command Prompt
  • คำสั่งจะแสดงคีย์ที่จะมีลักษณะดังนี้:
    • AKIACOOB5BQVEXAMPLE
    • BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
    • บรรทัดแรกคือรหัส Access Key และบรรทัดที่สองคือรหัสลับการเข้าถึง คุณต้องการทั้งซอฟต์แวร์ของ บริษัท อื่น

เข้าใช้งานทดสอบ

ตอนนี้คุณได้สร้างกลุ่ม / ผู้ใช้ 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

การใช้ Access Keys

คุณสามารถดาวน์โหลดและติดตั้งเครื่องมือใด ๆ ของ บริษัท อื่นที่กล่าวถึงในบทความนี้ได้ ป้อนคีย์รหัสการเข้าถึงและคีย์การเข้าถึงข้อมูลลับต่อเอกสารของเครื่องมือของบุคคลที่สาม

ผมขอแนะนำให้คุณสร้างผู้ใช้เริ่มต้นและมีผู้ใช้ที่ทดสอบอย่างเต็มที่ว่าพวกเขาสามารถทำทุกอย่างที่จำเป็นต้องทำใน S3 ได้ หลังจากที่คุณยืนยันผู้ใช้ของคุณคุณสามารถดำเนินการตั้งค่าผู้ใช้ S3 ทั้งหมดของคุณได้