จะรับบทบาท IAM โดยใช้ AWS CLI ได้อย่างไร

Ca Rab Bthbath Iam Doy Chi Aws Cli Di Xyangri



เนื่องจาก AWS ให้บริการหลายประการและสิทธิประโยชน์มากมาย จึงเป็นเรื่องธรรมดาที่ผู้เชี่ยวชาญด้านไอทีจะหยิบยกข้อกังวลด้านความปลอดภัยขึ้นมา เพื่อจัดการกับข้อกังวลด้านความปลอดภัยเหล่านี้ AWS จึงเปิดตัวบริการ IAM AWS IAM เป็นหนึ่งในบริการเว็บหลักที่ช่วยให้ผู้ใช้สามารถรักษาความปลอดภัยทรัพยากร AWS ได้ IAM มอบฟังก์ชันการจัดการการเข้าถึงส่วนกลางของบริการ AWS โดยการกำหนดสิทธิ์สำหรับผู้ใช้ที่แตกต่างกัน

โครงร่างด่วน

ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับ:







บทบาท AWS IAM คืออะไร
บทบาทสมมติใน AWS คืออะไร
จะรับบทบาท IAM โดยใช้ AWS CLI ได้อย่างไร



ความคิดสุดท้าย



ด้วยบทบาทและสิทธิ์ของ IAM เราสามารถกำหนดการเข้าถึงบริการของ AWS ที่ได้รับการตรวจสอบสิทธิ์และได้รับอนุญาตได้ บทบาทและสิทธิ์เหล่านี้สามารถกำหนดได้โดยผู้ใช้รูท (เจ้าของ) ของบัญชี AWS เท่านั้น





บทบาท AWS IAM คืออะไร

บทบาท IAM คือข้อมูลระบุตัวตนที่สร้างขึ้นโดยผู้ใช้รูทภายในบัญชี AWS ข้อมูลระบุตัวตนนี้ได้รับการกำหนดสิทธิ์เฉพาะซึ่งกำหนดขอบเขตการเข้าถึงบทบาท IAM ไปยังทรัพยากร AWS สิทธิ์เหล่านี้สามารถจัดการโดย AWS หรือกำหนดแบบกำหนดเองโดยผู้ใช้รูท

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



บทบาทสมมติใน AWS คืออะไร

Assume Role เป็นหนึ่งในฟังก์ชันของบริการ AWS IAM ที่อนุญาตให้ผู้ใช้ดำเนินการกับบริการของ AWS แม้ว่าผู้ใช้จะไม่ได้กำหนดสิทธิ์ในการเข้าถึงหรือจัดการทรัพยากรภายในบริการก็ตาม สิทธิ์เหล่านี้ถูกกำหนดให้กับผู้ใช้ทางอ้อมเมื่อมีการรับบทบาท ชุดข้อมูลประจำตัวชั่วคราวพร้อมกับการเข้าสู่ระบบตามเซสชันจะใช้สำหรับการเข้าถึงทรัพยากร AWS

ข้อมูลประจำตัวชั่วคราวเหล่านี้ประกอบด้วยคีย์การเข้าถึงข้อมูลลับ รหัสคีย์การเข้าถึง และโทเค็นความปลอดภัย บทบาท IAM ที่สร้างโดยผู้ใช้รูท AWS สามารถรับได้โดยผู้ใช้รายอื่นภายในบัญชี AWS หรือผู้ใช้ที่มีการกล่าวถึง ARN ในนโยบายของบทบาท นโยบายที่มี ARN ของผู้ใช้หรือทรัพยากรเรียกว่า นโยบายความน่าเชื่อถือ .

ความแตกต่างระหว่างนโยบายการอนุญาตและนโยบายความน่าเชื่อถือคืออะไร?

ก่อนที่จะใช้ฟังก์ชันสมมติบทบาทผ่านวิธีการต่างๆ มีแนวคิดหลักสองประการที่ผู้ใช้ต้องเข้าใจ มีนโยบายสองประเภทในบริการ IAM:

    • นโยบายความน่าเชื่อถือ: นโยบายความน่าเชื่อถือจะกำหนดว่าใครสามารถรับบทบาท IAM ที่เฉพาะเจาะจงได้ สำหรับบทบาทที่จะรับโดยผู้ใช้ ARN ของผู้ใช้จะถูกกล่าวถึงในนโยบายความน่าเชื่อถือของบทบาท IAM นโยบายความน่าเชื่อถือนี้กำหนดว่าผู้ใช้หรือทรัพยากรเป็นเอนทิตีที่เชื่อถือได้สำหรับการสมมติบทบาทนี้
    • นโยบายการอนุญาต: นโยบายนี้กำหนดสิ่งที่ผู้ใช้สามารถดำเนินการได้หรือการดำเนินการใดที่สามารถทำได้กับบทบาทนี้

จะรับบทบาท IAM โดยใช้ AWS CLI ได้อย่างไร

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

มาทำความเข้าใจการทำงานของฟังก์ชัน Assume-role โดยพิจารณาจากตัวอย่างต่อไปนี้

ตัวอย่างเช่น, มีผู้ใช้อยู่ในบัญชี AWS ที่ไม่ได้รับการกำหนดสิทธิ์ใดๆ สำหรับบัคเก็ต S3 ที่ “การเข้าถึงแบบอ่านอย่างเดียว” เรียกว่านโยบายการอนุญาตที่แนบมากับบทบาท IAM เพื่อให้ผู้ใช้รับบทบาทนี้ ARN ของผู้ใช้จะถูกกล่าวถึงในนโยบายของบทบาท IAM นโยบายนี้เรียกว่าเป็น “นโยบายความน่าเชื่อถือ” และแตกต่างจากนโยบายการอนุญาต นโยบายความน่าเชื่อถือถือเป็นสิ่งสำคัญเนื่องจากช่วยให้ AWS สามารถระบุได้ว่าผู้ใช้เป็นนิติบุคคลที่ได้รับอนุญาตหรือไม่

โปรดทราบว่า ARN ได้รับการกล่าวถึงในนโยบายความน่าเชื่อถือ ไม่ใช่ในนโยบายสิทธิ์ของบทบาท IAM โดยการสมมติบทบาท ผู้ใช้สามารถดำเนินการด้านการดูแลระบบบางอย่างที่กำหนดโดยนโยบายสิทธิ์ของบทบาทได้ การดำเนินการเหล่านี้รวมถึงการเพิ่ม ลบ การแก้ไข หรือการกู้คืนทรัพยากร ฯลฯ

ต่อไปนี้เป็นสามวิธีในการรับบทบาทกับ AWS CLI:

วิธีที่ 1: การใช้ STS (บริการโทเค็นความปลอดภัย)

ผู้ใช้สามารถรับบทบาทได้โดยดำเนินการคำสั่งในส่วน STS (Secure Token Service) ซึ่งจะส่งคืนชุดข้อมูลรับรองชั่วคราว ข้อมูลรับรองชั่วคราวจะใช้เพื่อสร้างการเข้าสู่ระบบตามเซสชันเพื่อทำการเรียก API ไปยังทรัพยากร อย่างไรก็ตามก็มี ข้อยกเว้นสองประการ ในขณะที่ใช้ STS เช่น รับFederationToken และ รับSessionToken

ผู้ใช้ถูกจำกัดไม่ให้เข้าถึงโทเค็นเหล่านี้เพื่อรักษาความปลอดภัยข้อมูลที่เป็นความลับของโทเค็นเซสชันและสหพันธรัฐ เพื่อไม่ให้เกิดความเสียหายต่อความปลอดภัยไม่ว่ากรณีใดๆ เมื่อรับบทบาท ผู้ใช้สามารถยกระดับสิทธิ์ที่ได้รับมอบหมายได้

ในบทความนี้ในส่วนนี้ เราจะขอชุดข้อมูลรับรองชั่วคราวโดยใช้คำสั่ง STS ด้านล่างนี้เป็นขั้นตอน:

ขั้นตอนที่ 1: สร้างนโยบายผู้ใช้และผู้ใช้

ก่อนอื่นเราจะ สร้างผู้ใช้ IAM โดยไม่มีสิทธิ์ เพื่อจุดประสงค์นี้ ให้เปิดไฟล์ ซีเอ็มดี จากเมนู Start ของ Windows:


เพียง ผู้ใช้รูท สามารถ สร้าง หนึ่ง ผู้ใช้ไอแอม ภายในบัญชี AWS ดังนั้น ให้ลงชื่อเข้าใช้บัญชีรูท AWS โดยใช้คำสั่งต่อไปนี้:

aws กำหนดค่า


ข้อมูลรับรองได้รับการกำหนดค่าไว้แล้วภายใน CLI สำหรับการสาธิตนี้ ดังที่แสดงในเอาต์พุตของคำสั่ง:


เรียนรู้เพิ่มเติม:

ถึง สร้างผู้ใช้ IAM ให้ระบุคำสั่งต่อไปนี้แก่ CLI:

aws iam เป็นผู้ใช้ที่สร้าง --ชื่อผู้ใช้ ผู้ใช้สาธิต


แทนที่ ผู้ใช้สาธิต กับคุณ ชื่อผู้ใช้ IAM

บันทึก “อาร์น” กำหนดไว้ในเอาต์พุตของคำสั่งตามที่มันจะเป็น ที่จำเป็น เมื่อไร การสร้าง ที่ นโยบายความน่าเชื่อถือ : :


อ่านเพิ่มเติม:

ขั้นตอนต่อไปคือการ อนุญาต ผู้ใช้ (ผู้ใช้สาธิต ) ถึง สวมบทบาท . เพื่อจุดประสงค์นี้ ให้สร้าง ไฟล์ JSON ใช้อะไรก็ได้ โปรแกรมแก้ไขข้อความ คุณชอบ สำหรับการสาธิตนี้เราได้ใช้ แผ่นจดบันทึก ตามที่ระบุไว้ในคำสั่งด้านล่างนี้:

สำหรับวินโดวส์

ผู้ใช้ notepad-policy.json


แทนที่ นโยบายผู้ใช้ ด้วยชื่อนโยบาย IAM ของคุณ

สำหรับระบบปฏิบัติการลินุกซ์

เพราะ ผู้ใช้นโยบาย json


ในขณะนี้ เรากำลังใช้ระบบปฏิบัติการ Windows สำหรับการสาธิตนี้:


นี่จะเป็นการเปิดแผ่นจดบันทึก วางนโยบายต่อไปนี้ลงในแผ่นจดบันทึกแล้วกด “CTRL + เอส” จากแป้นพิมพ์เพื่อบันทึกการเปลี่ยนแปลง:

{
'เวอร์ชั่น' : : '2012-10-17' ,
'คำแถลง' : : [
{
'ผล' : : 'อนุญาต' ,
'การกระทำ' : : [
'ec2: อธิบาย*' ,
'เอี่ยม: ListRoles' ,
'sts:สมมติบทบาท'
] ,
'ทรัพยากร' : : '*'
}
]
}


ด้านล่างนี้เป็นคำอธิบายโดยย่อของนโยบายที่ระบุ:

    • ec2:อธิบาย: สิทธิ์นี้ระบุว่าผู้ใช้สามารถดูหรือแสดงรายการ AMI, สแนปช็อต หรืออินสแตนซ์ EC2 ทั้งหมดได้
    • ฉัน: ListRoles: สิทธิ์นี้ระบุว่าผู้ใช้สามารถแสดงรายการบทบาททั้งหมดภายในบริการ IAM ได้
    • sts:สมมติบทบาท: การอนุญาตนี้แสดงว่าผู้ใช้สามารถรับบทบาทที่กำหนดไว้ภายในบริการ IAM ได้

ที่นี่ นโยบายได้รับการแก้ไขภายในแผ่นจดบันทึกและบันทึกไว้:


AWS แต่ละรายการ ทรัพยากร ได้รับมอบหมายให้ ชื่อทรัพยากรการเข้าถึง (ARN) ที่ ระบุโดยไม่ซ้ำกัน ทรัพยากร หากต้องการกำหนด ARN ของนโยบาย ให้ใช้คำสั่งด้านล่างนี้

ฉันเพิ่งสร้างนโยบาย --ชื่อนโยบาย นโยบายผู้ใช้ --นโยบาย-เอกสาร ไฟล์: // ผู้ใช้นโยบาย json


ในคำสั่งดังกล่าวข้างต้น:

    • –ชื่อนโยบาย: แทนที่ค่า “นโยบายผู้ใช้” ด้วยชื่อกรมธรรม์ตามที่คุณต้องการ
    • –เอกสารนโยบาย: ในฟิลด์นี้ ให้แทนที่ ' ผู้ใช้นโยบาย json” ด้วยชื่อไฟล์ json ที่มีนโยบายสำหรับผู้ใช้

ผลลัพธ์ของคำสั่งดังกล่าวมีดังนี้ บันทึก “อาร์น” กล่าวถึงในผลลัพธ์ของนโยบายตามที่จำเป็นเมื่อแนบนโยบายนี้กับผู้ใช้:

ขั้นตอนที่ 2: แนบนโยบายกับผู้ใช้

นโยบายนี้จะอนุญาตให้ผู้ใช้สามารถแสดงรายการได้ อินสแตนซ์ EC2 , เพื่อน ฯลฯ เมื่อผู้ใช้รับบทบาทที่มีสิทธิ์อื่น ผู้ใช้จะสามารถดำเนินการเฉพาะนั้นตามที่อนุญาตโดยนโยบายการอนุญาตเท่านั้น

หากต้องการแนบนโยบายกับผู้ใช้ที่สร้างไว้ก่อนหน้าในส่วนนี้ ให้ใช้คำสั่งต่อไปนี้:

aws iam แนบนโยบายผู้ใช้ --ชื่อผู้ใช้ ผู้ใช้สาธิต --นโยบาย-arn 'arn:aws:iam::123456789:นโยบาย/นโยบายผู้ใช้'


ในคำสั่งดังกล่าวข้างต้น:

    • -ชื่อผู้ใช้: แทนที่ “ผู้ใช้สาธิต” ใน -ชื่อผู้ใช้ ฟิลด์ด้วยชื่อผู้ใช้ IAM ของคุณ
    • –นโยบาย-arn: ในทำนองเดียวกันใน –นโยบาย-arn, ระบุ “อาร์น” จากเอาต์พุตของคำสั่งก่อนหน้า เช่น –create-policy

การดำเนินการคำสั่งหลังจากทำการเปลี่ยนแปลงที่จำเป็น จะทำให้แนบนโยบายกับผู้ใช้ได้สำเร็จ:


เพื่อตรวจสอบว่ามีการแนบนโยบายกับผู้ใช้หรือไม่ ให้ระบุคำสั่งต่อไปนี้ให้กับ CLI:

aws iam list-attached-user-policies --ชื่อผู้ใช้ ผู้ใช้สาธิต


แทนที่ ผู้ใช้สาธิต ด้วย IAM ของคุณ ชื่อผู้ใช้ ระบุในขณะที่สร้างผู้ใช้

ผลลัพธ์ของคำสั่งต่อไปนี้จะตรวจสอบว่ามีการแนบนโยบายกับผู้ใช้เรียบร้อยแล้ว:

ขั้นตอนที่ 3: สร้างนโยบายความน่าเชื่อถือและบทบาท IAM

ความสัมพันธ์ที่น่าเชื่อถือถูกสร้างขึ้นเมื่อมีการระบุทรัพยากรหรือ ARN ของผู้ใช้ในนโยบาย ฟังก์ชันนี้ทำให้ผู้ใช้หรือเอนทิตีสามารถดำเนินการบางอย่างได้ เนื่องจากถือว่าเชื่อถือได้โดยนโยบาย

ในขั้นตอนนี้ เราจะสร้างนโยบายที่สร้างความสัมพันธ์ที่เชื่อถือได้ระหว่างบทบาท IAM และผู้ใช้ นโยบายความน่าเชื่อถือนี้จะแนบไปกับบทบาท IAM จากนั้นผู้ใช้จะรับบทบาท IAM ซึ่งจะอนุญาตให้ผู้ใช้ดำเนินการตามที่ระบุไว้ในนโยบายทางอ้อมได้

ในการสร้างนโยบายความน่าเชื่อถือ คำสั่งจะได้รับดังต่อไปนี้:

สำหรับวินโดวส์

แผ่นจดบันทึก trust-role-policy.json


แทนที่ ความไว้วางใจบทบาทนโยบาย json พร้อมชื่อที่คุณต้องการสำหรับกรมธรรม์

สำหรับระบบปฏิบัติการลินุกซ์

เพราะ ความไว้วางใจบทบาทนโยบาย json


แทนที่ ความไว้วางใจบทบาทนโยบาย json พร้อมชื่อที่คุณต้องการสำหรับกรมธรรม์

นโยบายความไว้วางใจเป็นไปตาม รูปแบบ JSON ตามที่ ก.ล.ต. กำหนด .json ส่วนขยายในคำสั่งต่อไปนี้:


นี่จะเป็นการเปิดแผ่นจดบันทึก แปะ ต่อไปนี้ นโยบาย ภายในแผ่นจดบันทึกแล้วกดที่ “CTRL + เอส” จากแป้นพิมพ์เพื่อบันทึกการเปลี่ยนแปลง ARN ของผู้ใช้ยังสามารถคัดลอกได้จากแดชบอร์ดของผู้ใช้ของคอนโซล IAM เพื่อจุดประสงค์นี้ โปรดไปที่แดชบอร์ด IAM และคลิกชื่อของผู้ใช้ จากการกำหนดค่าที่แสดง ให้คัดลอก ARN ของผู้ใช้ที่แสดงภายในส่วนสรุป:

{
'เวอร์ชั่น' : : '2012-10-17' ,
'คำแถลง' : : {
'ผล' : : 'อนุญาต' ,
'วิชาเอก' : : {
'เอดับบลิว' : : 'arn:aws:iam::123456789012:ผู้ใช้/ตัวอย่างผู้ใช้'
} ,
'การกระทำ' : : 'sts:สมมติบทบาท'
}
}


ในนโยบายดังกล่าวข้างต้น:

    • AWS: แทนที่ ค่าฟิลด์ AWS “arn:aws:iam::123456789012:user/example-user” ด้วย ARN ของผู้ใช้ ซึ่งแสดงในเอาต์พุตของคำสั่ง –create-user

ผู้ใช้สามารถจำกัดผู้ใช้รายอื่นไม่ให้รับบทบาท IAM ได้โดยการระบุ ARN ของผู้ใช้ใน “เอดับบลิว” สนาม:


อ่านเพิ่มเติม:

ตอนนี้ ให้สร้างบทบาท IAM และแนบนโยบายความน่าเชื่อถือไปด้วย หากต้องการสร้างบทบาท IAM ให้ใช้คำสั่งที่กล่าวถึงด้านล่าง:

ฉันคือผู้สร้างบทบาท --บทบาทชื่อ บทบาทของผู้ใช้ --สมมติ-บทบาท-นโยบาย-เอกสาร ไฟล์: // ความไว้วางใจบทบาทนโยบาย json


ต่อไปนี้เป็นคำอธิบายของฟิลด์ที่กล่าวถึงข้างต้น:

    • –ชื่อบทบาท: ฟิลด์นี้ใช้เพื่อป้อนชื่อที่จะกำหนดให้กับบทบาท IAM นี้ แทนที่ค่า “บทบาทผู้ใช้” ด้วยชื่อบทบาท IAM ที่คุณเลือก
    • –สมมติ-บทบาท-นโยบาย-เอกสาร: ในฟิลด์นี้ให้ระบุเส้นทางตามที่กำหนดในคำสั่ง แทนที่ trust-role-policy.json ด้วยชื่อนโยบายตามที่คุณระบุในส่วนก่อนหน้า

เมื่อใช้คำสั่งนี้ ระบบจะส่งคืนข้อมูลหลายส่วนในเอาต์พุต เช่น ARN, Path, ID ฯลฯ:


อ่านเพิ่มเติม:

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

aws ฉันแนบนโยบายบทบาท --บทบาทชื่อ บทบาทของผู้ใช้ --นโยบาย-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


ในคำสั่งข้างต้น:

    • –ชื่อบทบาท: แทนที่ ' บทบาทของผู้ใช้” ในฟิลด์ –role-name ด้วย ชื่อบทบาท IAM ที่คุณระบุไว้ก่อนหน้าในบทช่วยสอนนี้
    • –นโยบาย-arn: arn ที่ระบุใน –policy-arn อ้างถึงสิทธิ์ ReadOnlyAccess สำหรับบัคเก็ต S3

ในภาพนี้ บทบาทได้รับการกำหนดสิทธิ์ ReadOnlyAccess สำหรับบัคเก็ต S3:


เพื่อตรวจสอบว่ามีการมอบหมายสิทธิ์ให้กับบทบาทหรือไม่ให้ใช้คำสั่งต่อไปนี้:

aws iam list-attached-role-policies --บทบาทชื่อ บทบาทของผู้ใช้


แทนที่ “บทบาทของผู้ใช้” ด้วยชื่อบทบาท IAM ของคุณ

ที่ “AmazonS3ReadOnlyAccess” แนบการอนุญาตกับบทบาท IAM แล้ว ผลลัพธ์ของคำสั่งจะได้รับดังนี้:

ขั้นตอนที่ 4: สร้างคีย์การเข้าถึง

ในส่วนนี้ เราจะสร้างคีย์การเข้าถึงสำหรับผู้ใช้ คีย์การเข้าถึงจะถูกใช้เพื่อเข้าสู่ระบบบัญชี AWS:

aws iam สร้างคีย์การเข้าถึง --ชื่อผู้ใช้ ผู้ใช้สาธิต


แทนที่ ผู้ใช้สาธิต ด้วยชื่อผู้ใช้ IAM ของคุณที่ได้รับในขณะที่สร้างผู้ใช้

คำสั่งนี้ได้ส่งคืนชุดคู่คีย์การเข้าถึง (AccessKeyId และคีย์การเข้าถึงข้อมูลลับ) พร้อมรายละเอียดเพิ่มเติม เช่น วันที่สร้าง สถานะ ฯลฯ บันทึก AccessKeyId และ SecretAccessKey ตามที่จำเป็นในภายหลังในบทช่วยสอน:


อ่านเพิ่มเติม:

ขั้นตอนที่ 5: กำหนดค่าคีย์การเข้าถึงและตรวจสอบผู้ใช้ IAM

ในการกำหนดค่าคีย์การเข้าถึง ให้ส่งคำสั่งต่อไปนี้ให้กับ CMD จากนั้นป้อนรหัสคีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับ:

aws กำหนดค่า


ระบุรหัสคีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับให้กับ CLI ที่สร้างขึ้นในขั้นตอนที่ 4 ของส่วนนี้ สำหรับภูมิภาค เราได้คงการตั้งค่าเริ่มต้นไว้ ผู้ใช้สามารถกำหนดค่ารูปแบบเอาต์พุตใดๆ สำหรับรูปแบบเอาต์พุตเริ่มต้นได้ สำหรับการสาธิตนี้ เราได้ระบุ เจสัน รูปแบบ:


เพื่อตรวจสอบว่าผู้ใช้ IAM ได้รับการกำหนดค่าหรือไม่ ให้ส่งคำสั่งต่อไปนี้ให้กับ CLI:

aws sts get-caller-identity


ผลลัพธ์ของคำสั่งบ่งชี้ว่า “ผู้ใช้สาธิต” ได้รับการกำหนดค่าเรียบร้อยแล้ว และกำลังเข้าสู่ระบบบัญชี AWS:


หากต้องการตรวจสอบว่าผู้ใช้ IAM สามารถแสดงรายการอินสแตนซ์ EC2 และไม่สามารถเข้าถึงบัคเก็ต S3 ได้ในขณะนี้ ให้ใช้คำสั่งต่อไปนี้:

aws ec2 อธิบายอินสแตนซ์ --สอบถาม 'การจอง[*].อินสแตนซ์[*].[VpcId, InstanceId, ImageId, InstanceType]'


ผลลัพธ์ของคำสั่งจะได้รับดังนี้:


ตอนนี้ ให้คำสั่งต่อไปนี้เพื่อตรวจสอบว่าผู้ใช้สามารถเข้าถึงบัคเก็ต S3 หรือไม่:

aws s3 LS


นี้จะแสดง 'ปฏิเสธการเข้าใช้' ข้อผิดพลาดซึ่งบ่งชี้ว่าผู้ใช้ไม่ได้รับอนุญาตให้เข้าถึงบัคเก็ต S3:

ขั้นตอนที่ 6: สมมติบทบาท IAM

ผู้ใช้มีสิทธิ์แสดงรายการบทบาท IAM ภายในบัญชี AWS ดังนั้นเพื่อรับบทบาท อันดับแรกเราจะได้รับข้อมูลที่จำเป็น เช่น ARN โดยดำเนินการคำสั่งต่อไปนี้:

aws iam list-บทบาท --สอบถาม 'บทบาท[?RoleName == 'บทบาทผู้ใช้'].[ชื่อบทบาท, Arn]'


แทนที่ 'บทบาทของผู้ใช้' ด้วยชื่อบทบาท IAM ในช่อง 'RoleName'

ARN ได้รับในผลลัพธ์ของคำสั่งดังกล่าวข้างต้น:


ตอนนี้เรามี ARN ของบทบาท IAM แล้ว เราสามารถรับบทบาทดังกล่าวได้โดยใช้คำสั่งต่อไปนี้:

aws sts สมมติบทบาท --role-arn 'arn:aws:iam::123456789012:role/example-role' --บทบาทเซสชันชื่อ AWSCLI-เซสชัน


ในคำสั่งข้างต้น:

    • –บทบาท-arn: แทนที่ค่าที่กล่าวถึงสำหรับ –role-arn ด้วย ARN ของบทบาท IAM
    • –ชื่อบทบาทเซสชัน: ผู้ใช้สามารถระบุชื่อที่ต้องการสำหรับฟิลด์นี้ได้

โดยการดำเนินการคำสั่งดังกล่าวข้างต้น ชุดของข้อมูลประจำตัวชั่วคราวได้ถูกส่งคืน ข้อมูลประจำตัวชั่วคราวเหล่านี้จะถูกนำมาใช้เพื่อรับบทบาท IAM ที่มีสิทธิ์ที่ต้องการ เช่น ReadOnlyAccess AccessKeyId และ SecretAccessKey จะถูกใช้ขณะกำหนดค่าข้อมูลรับรองชั่วคราวเหล่านี้:


ต่อไปนี้เป็นคำอธิบายโดยย่อเกี่ยวกับเอาต์พุตของคำสั่ง:

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

ขั้นตอนที่ 7: กำหนดค่าตัวแปรสภาพแวดล้อม

ในการกำหนดค่าข้อมูลรับรองชั่วคราว เราจะใช้คำสั่ง 'set' สำหรับ Windows จากนั้นระบุค่าของรหัสคีย์การเข้าถึง คีย์การเข้าถึงข้อมูลลับ โทเค็นเซสชัน ฯลฯ:

สำหรับวินโดวส์

ชุด AWS_ACCESS_KEY_ID =RoleAccessKeyID


แทนที่ RoleAccessKeyID ด้วย Access Key ID ที่ส่งคืนโดยคำสั่งในขั้นตอนที่ 6

สำหรับระบบปฏิบัติการลินุกซ์

ส่งออก AWS_ACCESS_KEY_ID =RoleAccessKeyID


แทนที่ RoleAccessKeyID ด้วย Access Key ID ที่ส่งคืนโดยคำสั่งในขั้นตอนที่ 6

คีย์การเข้าถึงได้รับการกำหนดค่าแล้ว:


ต่อไปเราจะกำหนดค่าคีย์การเข้าถึงข้อมูลลับโดยใช้คำสั่ง 'set' สำหรับ Windows:

สำหรับวินโดวส์

ชุด AWS_SECRET_ACCESS_KEY =รหัสลับบทบาท


แทนที่ RoleSecretKey ด้วยค่าคีย์การเข้าถึงข้อมูลลับที่ส่งคืนโดยคำสั่งในขั้นตอนที่ 6

สำหรับระบบปฏิบัติการลินุกซ์

ส่งออก AWS_SECRET_ACCESS_KEY =รหัสลับบทบาท


แทนที่ AWS_SECRET_ACCESS_KEY ด้วยคีย์การเข้าถึงข้อมูลลับที่คำสั่งส่งคืนในขั้นตอนที่ 6

กำหนดค่าคีย์การเข้าถึงข้อมูลลับสำเร็จแล้ว:


สุดท้ายนี้ เราจะกำหนดค่าโทเค็นเซสชันเพื่อสร้างการเข้าสู่ระบบตามเซสชัน เพื่อจุดประสงค์นี้ ให้ใช้คำสั่งด้านล่างนี้:

สำหรับวินโดวส์

ชุด AWS_SESSION_TOKEN =บทบาทเซสชั่นโทเค็น


แทนที่ RoleSessionToken ด้วยค่า Session Token ที่คำสั่งส่งคืนในขั้นตอนที่ 6

สำหรับระบบปฏิบัติการลินุกซ์

ส่งออก AWS_SESSION_TOKEN =บทบาทเซสชั่นโทเค็น


แทนที่ RoleSessionToken ด้วยค่า Session Token ที่คำสั่งส่งคืนในขั้นตอนที่ 6

ค่าของโทเค็นเซสชันได้รับการกำหนดค่าสำเร็จแล้ว:


หากต้องการคัดลอกค่าของ Session Token จาก CMD ให้กด “CTRL + SHIFT + C” .

หลังจากกำหนดคอนฟิกตัวแปรสภาพแวดล้อมแล้ว ให้ตรวจสอบโดยใช้คำสั่งต่อไปนี้ว่าผู้ใช้รับบทบาทนี้หรือไม่:

aws sts get-caller-identity


ผลลัพธ์ของคำสั่งจะตรวจสอบว่ามีบทบาท IAM แล้ว สันนิษฐานได้สำเร็จ โดยผู้ใช้ตามผลตอบแทนของ ARN “arn:aws:sts::123456789012:สมมติ-บทบาท/บทบาทผู้ใช้/AWSCLI-เซสชัน” แทน “arn:aws:iam::123456789012:ผู้ใช้/ผู้ใช้สาธิต”:


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

aws s3 LS


ผลลัพธ์ของคำสั่งสามารถเข้าร่วมบัคเก็ต S3 ทั้งหมดที่กำหนดค่าไว้ภายในบัญชี AWS ได้สำเร็จ:


อย่างไรก็ตาม ผู้ใช้จะไม่สามารถเข้าถึงบริการ EC2 ได้ เนื่องจากบทบาทสมมติไม่มีสิทธิ์สำหรับบริการ EC2 เพื่อตรวจสอบสิ่งนี้ ให้ใช้คำสั่งต่อไปนี้:

aws ec2 อธิบายอินสแตนซ์ --สอบถาม 'การจอง[*].อินสแตนซ์[*].[VpcId, InstanceId, ImageId, InstanceType]'


ก่อนหน้านี้ผู้ใช้สามารถเข้าถึงข้อมูลบริการ EC2 ได้ อย่างไรก็ตาม เมื่อดำเนินการตามคำสั่งข้างต้นแล้ว 'ปฏิเสธการเข้าใช้' เกิดข้อผิดพลาด ผู้ใช้รับบทบาท IAM สำเร็จแล้ว:


ทั้งหมดนี้มาจากส่วนนี้

เคล็ดลับโบนัส: ยกเลิกการตั้งค่าตัวแปรสภาพแวดล้อม

หากต้องการกลับไปยังผู้ใช้ IAM เช่น ผู้ใช้สาธิต ผู้ใช้สามารถลบตัวแปรสภาพแวดล้อมได้โดยการตั้งค่าตัวแปรสภาพแวดล้อมเป็นสตริงว่าง ต่อไปนี้เป็นคำสั่งที่ได้รับ:

สำหรับวินโดวส์

ชุด AWS_ACCESS_KEY_ID =
ชุด AWS_SECRET_ACCESS_KEY =
ชุด AWS_SESSION_TOKEN =


สำหรับลินุกซ์

ใช้คำสั่งที่กล่าวถึงด้านล่าง:

ไม่ได้ตั้งค่า AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


คำสั่งดังกล่าวข้างต้นจะยกเลิกการตั้งค่าตัวแปรสภาพแวดล้อม:


หลังจากดำเนินการคำสั่งข้างต้นแล้ว คอนโซลควรส่งคืนไฟล์ “ผู้ใช้สาธิต” ในฐานะผู้ใช้ที่เข้าสู่ระบบในปัจจุบันแทนที่จะเป็นบทบาทสมมติ เช่น บทบาทของผู้ใช้ เพื่อจุดประสงค์นี้ เราจะใช้คำสั่งต่อไปนี้:

aws sts get-caller-identity


ผลลัพธ์ของคำสั่งบ่งชี้ว่าผู้ใช้ที่เข้าสู่ระบบในปัจจุบันเป็นผู้ใช้สาธิต:


ในทำนองเดียวกัน หากต้องการเข้าสู่ระบบในฐานะผู้ใช้รูท ให้ปฏิบัติตาม “C:\Users%USERPROFILE%.aws” เส้นทางและคลิกไฟล์ข้อมูลรับรอง:


ภายในไฟล์ข้อมูลรับรอง ให้แทนที่ค่าของคีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับด้วยคีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับของผู้ใช้รูท:


จัดเตรียมคำสั่งต่อไปนี้ให้กับ CLI เพื่อตรวจสอบว่าข้อมูลรับรองได้รับการกำหนดค่าอย่างถูกต้องหรือไม่:

aws กำหนดค่า


ในภาพด้านล่าง เราจะเห็นว่าคีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับของผู้ใช้รูทได้รับการกำหนดค่าเรียบร้อยแล้ว:


นั่นคือทั้งหมดจากบทช่วยสอนในส่วนนี้

วิธีที่ 2: การใช้พารามิเตอร์ –profile

อีกวิธีในการสมมติบทบาทคือการใช้ฟิลด์ “–profile” ใน CLI บทความนี้ในส่วนนี้นำเสนอการใช้งานจริงของการสมมติบทบาทใน AWS ผ่านทาง –profile ด้านล่างนี้เป็นขั้นตอน:

ขั้นตอนที่ 1: สร้างผู้ใช้ IAM

หากต้องการสร้างผู้ใช้ IAM ให้เข้าสู่ระบบบัญชีผู้ใช้รูทผ่าน CLI โดยใช้คำสั่งต่อไปนี้:

aws กำหนดค่า


ข้อมูลรับรองได้รับการกำหนดค่าไว้แล้วภายใน CLI สำหรับการสาธิตนี้ ดังที่แสดงในเอาต์พุตของคำสั่ง:


เรียนรู้เพิ่มเติม:

หากต้องการสร้างผู้ใช้ IAM ให้ระบุคำสั่งต่อไปนี้ให้กับ CLI:

aws iam เป็นผู้ใช้ที่สร้าง --ชื่อผู้ใช้ โปรไฟล์ผู้ใช้


สร้างผู้ใช้สำเร็จแล้ว บันทึก ARN ของผู้ใช้ตามที่แสดงในภาพด้านล่าง ARN ของผู้ใช้ IAM นี้จะถูกนำไปใช้ในภายหลังในบทช่วยสอนนี้ ในปัจจุบัน ไม่มีการอนุญาตที่เกี่ยวข้องกับผู้ใช้ IAM รายนี้:


อ่านเพิ่มเติม:

ขั้นตอนที่ 2: สร้างรหัสการเข้าถึง

ใน AWS ผู้ใช้แต่ละคนจะได้รับคีย์การเข้าถึงหนึ่งคู่สำหรับการเข้าสู่ระบบ หากต้องการสร้างคีย์การเข้าถึงสำหรับผู้ใช้รายนี้ ให้ระบุคำสั่งต่อไปนี้:

aws iam สร้างคีย์การเข้าถึง --ชื่อผู้ใช้ โปรไฟล์ผู้ใช้


คำสั่งนี้ส่งคืนชุดคีย์การเข้าถึง บันทึก ที่ รหัสการเข้าถึง และ SecretAccessKey ตามที่จำเป็นขณะเข้าสู่ระบบบัญชี AWS:


ตอนนี้ถ้าเราเข้าสู่ระบบ AWS CLI โดยใช้ AccessKeyId และ SecretAccessKey เหล่านี้ และเข้าถึงทรัพยากรใดๆ เช่น ที่ฝากข้อมูล S3 'ปฏิเสธการเข้าใช้' ข้อผิดพลาดจะเกิดขึ้น เนื่องจากในปัจจุบันไม่มีสิทธิ์ที่เกี่ยวข้องกับผู้ใช้ IAM หากต้องการเข้าสู่ระบบ AWS CLI ให้ใช้คำสั่งต่อไปนี้และระบุรหัสคีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับตามที่สร้างไว้ก่อนหน้านี้:

aws กำหนดค่า --ประวัติโดยย่อ โปรไฟล์ผู้ใช้


แทนที่ “โปรไฟล์ผู้ใช้” ด้วยชื่อผู้ใช้ IAM ที่คุณระบุขณะสร้างผู้ใช้

ที่นี่ เราได้เข้าสู่ระบบ AWS CLI ในฐานะผู้ใช้ IAM เรียบร้อยแล้ว:


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

aws s3 LS --ประวัติโดยย่อ โปรไฟล์ผู้ใช้


แทนที่ผู้ใช้โปรไฟล์ด้วยชื่อผู้ใช้ IAM ที่คุณระบุขณะสร้างผู้ใช้

เนื่องจากผู้ใช้รายนี้ไม่ได้รับการกำหนดสิทธิ์ใด ๆ จากผู้ใช้รูท จะส่งผลให้ ' ปฏิเสธการเข้าใช้ ' ข้อผิดพลาด:

ขั้นตอนที่ 3: สร้างนโยบายความน่าเชื่อถือและบทบาท IAM

นโยบายความน่าเชื่อถือจะกำหนดว่าผู้ใช้หรือทรัพยากร AWS เป็นเอนทิตีที่เชื่อถือได้สำหรับการรับบทบาทและรับสิทธิ์ ความสัมพันธ์ที่เชื่อถือได้นี้สร้างขึ้นโดยการระบุ ARN ของผู้ใช้ IAM หรือทรัพยากร AWS ภายในนโยบายสิทธิ์

หากต้องการสร้างนโยบายความน่าเชื่อถือภายใน IAM ให้ระบุคำสั่งต่อไปนี้แก่ CLI:

สำหรับวินโดวส์

แผ่นจดบันทึก trust-policy.json


แทนที่ ความน่าเชื่อถือ-policy.json พร้อมชื่อที่คุณต้องการสำหรับกรมธรรม์

สำหรับระบบปฏิบัติการลินุกซ์

เพราะ ความไว้วางใจบทบาทนโยบาย json


แทนที่ ความน่าเชื่อถือ-policy.json พร้อมชื่อที่คุณต้องการสำหรับกรมธรรม์

ผู้ใช้สามารถใช้โปรแกรมแก้ไขข้อความใดก็ได้ตามต้องการ สำหรับการสาธิตนี้ เราใช้แผ่นจดบันทึก:


นี่จะเป็นการเปิดแผ่นจดบันทึกสำหรับการสร้างนโยบายความน่าเชื่อถือ วางนโยบายต่อไปนี้ลงในแผ่นจดบันทึกแล้วกด “CTRL + เอส” จากแป้นพิมพ์เพื่อใช้และบันทึกการเปลี่ยนแปลง:

{
'เวอร์ชั่น' : : '2012-10-17' ,
'คำแถลง' : : {
'ผล' : : 'อนุญาต' ,
'วิชาเอก' : : {
'เอดับบลิว' : : 'arn:aws:iam::012345678910:ผู้ใช้/โปรไฟล์ผู้ใช้'
} ,
'การกระทำ' : : 'sts:สมมติบทบาท'
}
}


ในนโยบายข้างต้น: AWS: แทนที่ค่า “arn:aws:iam::012345678910:user/policy-user” ด้วย ARN ของผู้ใช้ IAM ที่สร้างขึ้นก่อนหน้าในส่วนนี้

นโยบายได้รับการแก้ไขภายในแผ่นจดบันทึก:


ต่อไป เราจะสร้างบทบาท IAM และแนบนโยบายความน่าเชื่อถือข้างต้นเข้าไปด้วย ใช้คำสั่งต่อไปนี้เพื่อสร้างบทบาท IAM:

ฉันคือผู้สร้างบทบาท --บทบาทชื่อ ไมโรล --สมมติ-บทบาท-นโยบาย-เอกสาร ไฟล์: // ความน่าเชื่อถือ-policy.json


ในคำสั่งดังกล่าวข้างต้น:

    • –ชื่อบทบาท: แทนที่ “ไมโรล” ด้วยชื่อบทบาท IAM ที่คุณเลือก
    • –สมมติ-บทบาท-นโยบาย-เอกสาร: ในฟิลด์นี้ ให้แทนที่คำนี้ “ความน่าเชื่อถือ-policy.json” ด้วยชื่อนโยบายความน่าเชื่อถือ IAM ของคุณ

สร้างบทบาท IAM สำเร็จแล้ว บันทึกบทบาท IAM บันทึก ARN ของบทบาท IAM ตามที่ไฮไลต์ไว้ในรูปภาพต่อไปนี้ ARN นี้จะถูกใช้ขณะกำหนดค่าโปรไฟล์ของผู้ใช้:


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

เนื่องจากมีการแนบนโยบายความน่าเชื่อถือเข้ากับบทบาท IAM แล้ว ขั้นตอนต่อไปคือการแนบนโยบายสิทธิ์เข้ากับบทบาท IAM คำสั่งที่กล่าวถึงด้านล่างนี้จะใช้ในการแนบนโยบายการอนุญาตกับบทบาท IAM:

aws ฉันแนบนโยบายบทบาท --บทบาทชื่อ ไมโรล --นโยบาย-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


ที่นี่ มีการแนบนโยบายการอนุญาตเข้ากับบทบาท IAM ผ่าน CLI:

ขั้นตอนที่ 4: กำหนดค่าโปรไฟล์

เพื่อให้ผู้ใช้รับบทบาทนี้ ก่อนอื่นเราจะกำหนดค่าโปรไฟล์นี้ภายในข้อมูลประจำตัวของ AWS หากต้องการแนบข้อมูลประจำตัวชั่วคราวเหล่านี้ ให้ระบุคำสั่งต่อไปนี้:

สมุดโน๊ต ~ / .aws / กำหนดค่า


เคล็ดลับโบนัส: แก้ไข “ไม่ได้ระบุเส้นทาง” ใน Notepad

ไฟล์กำหนดค่าจะมีการตั้งค่า [ค่าเริ่มต้น] ของ AWS CLI อย่างไรก็ตาม หากแผ่นจดบันทึกแสดงข้อความ “ระบบไม่พบเส้นทางที่ระบุ” ให้ป้อนคำสั่งด้านล่างนี้:

แผ่นจดบันทึก .aws / กำหนดค่า


ผู้ใช้ Linux สามารถใช้ 'เพราะ' ตัวแก้ไขสำหรับการกำหนดค่าโปรไฟล์ ผู้ใช้สามารถใช้โปรแกรมแก้ไขใดก็ได้ที่ต้องการเพื่อเปิดไฟล์กำหนดค่าของ AWS ในเครื่องท้องถิ่น:


ภายในไฟล์กำหนดค่าที่เปิดใน Notepad ให้แก้ไขการเปลี่ยนแปลงต่อไปนี้:

[ โปรไฟล์ โปรไฟล์-ผู้ใช้ ]
Role_arn = arn:aws:iam::012345678910:บทบาท / ไมโรล
แหล่งที่มา_โปรไฟล์ =โปรไฟล์ผู้ใช้


ในตัวอย่างข้างต้น:

    • บทบาท_arn: แทนที่ค่า “arn:aws:iam::012345678910:role/myrole” ด้วย ARN ของบทบาท IAM
    • แหล่งที่มา_โปรไฟล์: ในช่องนี้ ให้ระบุชื่อผู้ใช้ IAM ที่สร้างขึ้นในขั้นตอนที่ 1 ของวิธีนี้

หลังจากทำการเปลี่ยนแปลงที่จำเป็นแล้ว ให้กด “CTRL + เอส” จากแป้นพิมพ์เพื่อใช้และบันทึกการเปลี่ยนแปลง:


ตอนนี้ เพื่อตรวจสอบว่าผู้ใช้สามารถแสดงรายการบัคเก็ต S3 ได้หรือไม่ ให้ป้อนคำสั่งต่อไปนี้ให้กับ CLI:

aws s3 LS --ประวัติโดยย่อ โปรไฟล์ผู้ใช้


ในคำสั่งข้างต้น: –โปรไฟล์ผู้ใช้: ในช่องนี้ ให้แทนที่ค่า “profile-use” ด้วยชื่อที่คุณระบุในไฟล์กำหนดค่า

ตามที่เราได้ระบุ “profile-user” ภายในไฟล์กำหนดค่า ดังนั้นเราจะใช้ชื่อเดียวกันกับคำสั่งใน CLI ก่อนหน้านี้ผู้ใช้ไม่สามารถเข้าถึงบริการ S3 ของ AWS ได้เนื่องจากไม่มีการกำหนดสิทธิ์อนุญาต บทบาท IAM ได้รับอนุญาต 'ReadOnlyAccess' ของบัคเก็ต S3 ดังนั้น เมื่อสมมติบทบาทนี้ ผู้ใช้สามารถแสดงรายการบัคเก็ตจากแดชบอร์ด S3 ได้:


นั่นคือทั้งหมดมาจากวิธีการสอนนี้

วิธีที่ 3: การใช้ MFA (การรับรองความถูกต้องแบบหลายปัจจัย)

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

ต่อไปนี้เป็นขั้นตอนในการรับบทบาทกับ MFA ผ่าน CLI:

ขั้นตอนที่ 1: สร้างผู้ใช้ IAM และเปิดใช้งาน MFA

สำหรับขั้นตอนนี้ ผู้ใช้สามารถใช้ CLI เพื่อสร้างผู้ใช้หรือเข้าถึง AWS Management Console ล็อกอินเข้าสู่บัญชีผู้ใช้รูทโดยใช้คำสั่งต่อไปนี้:

aws กำหนดค่า


ผลลัพธ์ของคำสั่งจะได้รับดังนี้:


หากต้องการสร้างผู้ใช้ ให้ระบุคำสั่งต่อไปนี้ให้กับ CLI:

aws iam เป็นผู้ใช้ที่สร้าง --ชื่อผู้ใช้ ผู้ใช้ mfa


ในคำสั่งข้างต้น: -ชื่อผู้ใช้: แทนที่ “ผู้ใช้ mfa” ด้วยชื่อผู้ใช้ IAM ที่คุณเลือก

สร้างผู้ใช้สำเร็จแล้ว บันทึก ARN ของผู้ใช้ตามที่จำเป็นในส่วนนี้ ขณะนี้ผู้ใช้รายนี้ยังไม่ได้รับการกำหนดสิทธิ์ใดๆ:


หากต้องการเปิดใช้งาน MFA ให้ไปที่ AWS Management Console และค้นหาบริการ IAM คลิกที่มันจากผลลัพธ์ที่แสดง:


คลิกตัวเลือกผู้ใช้จากบานหน้าต่างนำทางด้านซ้ายของบริการ IAM จากแดชบอร์ดผู้ใช้ คลิกชื่อผู้ใช้เพื่อกำหนดค่า MFA:


บนอินเทอร์เฟซถัดไป ให้แตะ “ข้อมูลรับรองความปลอดภัย” ตัวเลือก:


เลื่อนลงไปที่ การรับรองความถูกต้องแบบหลายปัจจัย ส่วนแล้วคลิก “กำหนดอุปกรณ์ MFA” ปุ่ม:


จัดให้มี ชื่อที่มีความหมาย ใน ชื่ออุปกรณ์ ช่องข้อความบนอินเทอร์เฟซที่แสดง:


เลื่อนลงไปที่ส่วนอุปกรณ์ MFA ผู้ใช้จะมีตัวเลือกต่างๆ ในการเปิดใช้งาน MFA เช่น โดยการสแกนโค้ด QR ผ่านทางคีย์ความปลอดภัยหรือโทเค็น TOTP ของฮาร์ดแวร์ สำหรับการสาธิตนี้ ให้เลือก “แอปตรวจสอบสิทธิ์” ตัวเลือก:


แตะที่ 'ต่อไป' ปุ่มที่ด้านล่างของอินเทอร์เฟซเพื่อดำเนินการต่อ:


คลิก “แสดงรหัส QR” ดังแสดงในภาพด้านล่าง:


เปิดตัว บนมือถือหรือแล็ปท็อปของคุณเพื่อสแกนรหัส QR แตะที่ “+” ตัวเลือกจากอินเทอร์เฟซ VIP ของ Symantec:


ใน Play store นั้น Symantec VIP ได้รับการตั้งชื่อเป็น VIP Access

บนอินเทอร์เฟซถัดไปของ Symantec VIP ให้คลิก สแกนรหัส QR ปุ่มที่ด้านล่างของอินเทอร์เฟซ:


สแกนโค้ด QR จาก AWS MFA อินเทอร์เฟซแอปของ Authenticator แสดง รหัสนี้จะสร้างชุดรหัสที่จำเป็นสำหรับการเข้าสู่ระบบคอนโซลของผู้ใช้ IAM:


แอป Symantec VIP จะสร้าง OTP หกหลัก หลังจากสแกนรหัส QR รหัสเหล่านี้จะตามมาทุกครั้ง 30 วินาที . ภาพหน้าจอด้านล่างแสดงให้เห็นรหัสสองรหัสที่สร้างขึ้น:


แจ้งรหัสไปที่ รหัส MFA 1 และ รหัส MFA 2 ช่องข้อความบนอินเทอร์เฟซแอป Authenticator ของ MFA คลิก “เพิ่ม สฟอ.” หลังจากนั้นเพื่อเปิดใช้งานฟังก์ชัน:


เปิดใช้งาน MFA สำหรับผู้ใช้ IAM เรียบร้อยแล้ว ทั้งนี้สามารถตรวจสอบได้โดย “การรับรองความถูกต้องด้วยหลายปัจจัย (MFA)” ส่วนของ “ข้อมูลรับรองความปลอดภัย” แท็บของ ผู้ใช้ไอแอม . จากส่วนนี้ ให้บันทึกค่าของ Identifier ตามที่จำเป็นในขณะที่รับบทบาท:

ขั้นตอนที่ 2: แนบนโยบายกับผู้ใช้

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

ขั้นตอนที่ 3: สร้างนโยบายความน่าเชื่อถือและบทบาท IAM

ขั้นตอนต่อไปคือการสร้างนโยบายความน่าเชื่อถือเพื่อตรวจสอบว่าผู้ใช้เป็นเอนทิตีที่เชื่อถือได้หรือไม่ จากนั้นนโยบายความน่าเชื่อถือนี้จะถูกแนบไปกับบทบาท IAM หากต้องการสร้างนโยบายความน่าเชื่อถือและบทบาท IAM ให้ไปที่ Command Prompt แล้วปฏิบัติตาม ของวิธีที่ 1 ในบทความนี้

ขั้นตอนที่ 4: สร้างคีย์การเข้าถึง

เพื่อให้ผู้ใช้ได้รับอนุญาตและรับรองความถูกต้อง จะมีการสร้างคีย์การเข้าถึงคู่หนึ่งที่ไม่ซ้ำกันทั่วโลกทั่วทั้งแพลตฟอร์ม AWS คู่คีย์นี้ถูกใช้เมื่อเข้าสู่ระบบบัญชี AWS หากต้องการสร้างคีย์การเข้าถึงสำหรับผู้ใช้ IAM ให้ปฏิบัติตาม ของวิธีที่ 1 ในบทความนี้

ขั้นตอนที่ 5: กำหนดค่าข้อมูลรับรอง

ผู้ใช้ AWS สามารถเข้าถึงทรัพยากรและบริการของ AWS ได้ก็ต่อเมื่อมีการกำหนดค่าข้อมูลรับรองอย่างถูกต้อง ในส่วนนี้ของวิธีการ เราจะกำหนดค่าข้อมูลประจำตัวของผู้ใช้ IAM โดยการมอบคีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับให้กับอินเทอร์เฟซบรรทัดคำสั่ง เพื่อจุดประสงค์นี้ให้ปฏิบัติตาม ของวิธีที่ 1 ของบทช่วยสอนนี้

ขั้นตอนที่ 6:  สมมติบทบาท IAM

หลังจากแนบบทบาท IAM และใช้นโยบายความน่าเชื่อถือแล้ว ผู้ใช้สามารถรับบทบาท IAM ได้แล้ว เพื่อจุดประสงค์นี้ ให้จัดเตรียมคำสั่งต่อไปนี้ให้กับ CLI:

aws iam สร้างคีย์การเข้าถึง --ชื่อผู้ใช้ ผู้ใช้ mfa


ที่นี่สร้างคีย์สำหรับผู้ใช้ IAM สำเร็จแล้ว บันทึก AccessKeyId และ SecretAccessKey เนื่องจากจำเป็นสำหรับการเข้าสู่ระบบบัญชี AWS:


ขั้นตอนต่อไปคือการกำหนดค่าคีย์การเข้าถึงภายใน AWS CLI ใช้คำสั่งด้านล่างเพื่อกำหนดค่า CLI:

aws กำหนดค่า


จัดเตรียมคีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับให้กับ CLI สำหรับการกำหนดค่า:


หากต้องการตรวจสอบว่าผู้ใช้ IAM เข้าสู่ระบบ AWS CLI หรือไม่ ให้ใช้คำสั่งต่อไปนี้:

aws sts get-caller-identity


ผลลัพธ์ของคำสั่งจะได้รับดังต่อไปนี้ซึ่งบ่งชี้ว่าผู้ใช้เข้าสู่ระบบคอนโซล AWS สำเร็จแล้ว:


ผู้ใช้ได้รับอนุญาตให้แสดงรายการบทบาท IAM ภายในบัญชี AWS คำสั่งที่ระบุด้านล่างนี้ใช้เพื่อแสดงรายการบทบาท IAM:

aws iam list-บทบาท --สอบถาม 'บทบาท[?RoleName == 'mfa-role'].[RoleName, Arn]


ในคำสั่งข้างต้น: ชื่อบทบาท: ภายในช่องนี้ ให้แทนที่ค่า 'mfa-role' ด้วยชื่อบทบาท IAM ของคุณ

ผลลัพธ์ของคำสั่งจะได้รับดังนี้:


หากต้องการรับบทบาท IAM ด้วย MFA ให้ใช้คำสั่งบทบาทพร้อมพารามิเตอร์เพิ่มเติม เช่น หมายเลขซีเรียลและรหัสโทเค็น จัดเตรียมคำสั่งต่อไปนี้ให้กับ CLI:

aws sts สมมติบทบาท --role-arn 'arn:aws:iam::123456789012:role/m-role' --บทบาทเซสชันชื่อ AWSCLI-เซสชัน --หมายเลขซีเรียล 'arn:aws:iam::012345678910:mfa/admindevice' --รหัสโทเค็น '123456'


ในคำสั่งข้างต้น:

    • –บทบาท-arn: แทนที่ค่าของช่องนี้ด้วย ARN ของบทบาท IAM ของคุณ
    • –ชื่อบทบาทเซสชัน: ในฟิลด์นี้ ผู้ใช้สามารถระบุชื่อเซสชันที่ต้องการได้
    • –หมายเลขซีเรียล: แทนที่ค่าของฟิลด์นี้ด้วยค่าตัวระบุจากอินเทอร์เฟซ MFA ที่ถูกบันทึกไว้ก่อนหน้านี้
    • –รหัสโทเค็น: ค่านี้จะถูกแทนที่ด้วยรหัสปัจจุบันที่แสดงในอินเทอร์เฟซ Symantec VIP

รหัสปัจจุบันที่แสดงใน Symantec VIP มีดังต่อไปนี้ รหัสเดียวกันจะถูกใช้ในค่า –token-code ของคำสั่ง:


ผลลัพธ์ของคำสั่งจะมีข้อมูลประจำตัวชั่วคราว เช่น โทเค็นเซสชัน, รหัสการเข้าถึง, รหัสการเข้าถึงความลับ ฯลฯ:

ขั้นตอนที่ 7: กำหนดค่าตัวแปรสภาพแวดล้อม

คีย์การเข้าถึงและโทเค็นเซสชันที่ส่งคืนจะถูกใช้เพื่อสร้างการเข้าสู่ระบบตามเซสชันและรับบทบาท มีการกล่าวถึงการใช้งานโดยละเอียดสำหรับการกำหนดค่าสภาพแวดล้อม ของวิธีที่ 1

ความคิดสุดท้าย

หากต้องการรับบทบาทโดยใช้ CLI มีสามวิธี ได้แก่ ผ่าน STS (บริการโทเค็นความปลอดภัย) พารามิเตอร์ –profile หรือ MFA (การตรวจสอบสิทธิ์แบบหลายปัจจัย) เพื่อให้ผู้ใช้รับบทบาท จะต้องกำหนดนโยบายความน่าเชื่อถือก่อน นโยบายความน่าเชื่อถือนี้กำหนดว่าผู้ใช้เป็นเอนทิตีที่เชื่อถือได้หรือไม่ ฟังก์ชันการทำงานนี้จำเป็นเนื่องจากช่วยแก้ปัญหาข้อกังวลด้านความปลอดภัยของผู้เชี่ยวชาญด้านไอทีและบุคคลทั่วไป นอกจากนี้ ผู้ใช้สามารถรับบทบาทได้ก็ต่อเมื่อได้รับการอนุญาตที่จำเป็นเท่านั้น

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