การใช้งาน AWS CLI กับ Cloud9 ด้วย IAM Role
บทความนี้แปลมาจากบทความที่เป็นภาษาญี่ปุ่นที่ชื่อว่า Cloud9からIAM Roleの権限でAWS CLIを実行する โดยเจ้าของบทความนี้คือ คุณ Kitano Yuichi
Cloud9 เป็น IDE(Integrated Development Environment) บน Cloud ที่สามารถเขียนโค้ดโดยใช้เว็บเบราว์เซอร์
โดยค่าเริ่มต้น Cloud9 จะเปิดใช้งาน AMTC(AWS Managed Temporary Credentials) ซึ่งระบบจะให้ credential key แบบชั่วคราวที่มีสิทธ์เหมือนกับผู้ใช้ที่เข้าสู่ระบบ AWS Management Console โดยอัตโนมัติ และสามารถใช้งาน AWS CLI กับ Cloud9 ได้ทันที
Note: แต่การดำเนินการบางอย่างกับ IAM จะถูกจำกัด
ในบทความนี้เราจะแนะนำวิธีการใช้ AWS CLI จาก Cloud9 ด้วย IAM Role ในกรณีที่ต้องการใช้บริการที่มี IAM จาก Cloud9
Step 1: สร้าง Cloud9
การสร้าง Cloud9 นั้นง่ายมากๆ สามารถทำได้ภายในไม่กี่นาที โดยเข้ามาที่หน้า Cloud9 และคลิก Create environment
ตั้งชื่อตามต้องการ โดยในบทความนี้จะตั้งชื่อว่า cloud9-test จากนั้นเลื่อนลงมาด้านล่าง
ไม่จำเป็นต้องตั้งค่าเพิ่มเติมในหน้านี้ ให้คลิก Create
ในส่วนการสร้าง Cloud9 ก็เสร็จเรียบร้อย
Step 2: ปิดการใช้งาน AMTC บน Cloud9
หากไม่ได้ปิด AMTC จะไม่สามารถใช้งาน AWS CLI ด้วย IAM Role ได้
จากหน้าจอด้านบนของ Cloud9 ที่พึ่งสร้างไป ให้เลือก Cloud9 ที่ด้านบนซ้าย
ในส่วน AWS SETTINGS ให้ปิดการทำงาน AWS managed temporary credentials
Step 3: ติดตั้ง IAM Role ให้กับ EC2 instance ของ Cloud9
หนึ่งในวิธีการเรียกใช้บริการ AWS จาก Cloud9 ก็คือการติดตั้ง IAM Role ให้กับ EC2 instance
- อ้างอิง: Calling AWS services from an environment in AWS Cloud9
เมื่อสร้าง Cloud9 จะเห็นว่ามี EC2 instances เพิ่มขึ้นมาใน region เดียวกันกับที่สร้าง Cloud9
เราต้องการติดตั้ง IAM Role ให้กับ EC2 instances แต่ก่อนอื่นเราต้องสร้าง IAM Role ก่อน
เข้าไปที่ IAM เพื่อสร้าง Role
เนื่องจากเป็น Role ที่ใช้กับ EC2 ดังนั้นในหัวข้อ Use case เลือก EC2 แล้วคลิก Next
ในส่วนของ policy เราจะเลือก AdministratorAccess (เลือก policy โดยอิงตามสิทธ์การใช้งานที่จำเป็นเท่านั้น)
ตั้งชื่อ Role ตามที่ต้องการซึ่งในบทความนี้จะตั้งชื่อว่า cloud9-test-role เลื่อนลงมาด้านล่างแล้วคลิก Create role
จากนั้นจึงนำ IAM Role ไปใช้กับ EC2 instances
เลือก IAM Role ที่พึ่งสร้างจากนั้นคลิก Update IAM role
เพียงเท่านี้ขั้นตอนการติดตั้ง IAM Role ให้กับ EC2 instance ของ Cloud9 ก็เสร็จเรียบร้อย
Step 4: การใช้ AWS CLI กับ Cloud9
เมื่อเราติดตั้ง IAM Role ให้กับ EC2 instance ของ Cloud9
Cloud9 จะได้รับ credential key แบบชั่วคราวโดยอัตโนมัติ ซึ่งสามารถตรวจสอบสถานะได้โดยใช้คำสั่ง aws configure list ใน Terminal ของ Cloud9
ในกรณีที่ region เป็นคำว่า not set ให้ใช้คำสั่งตามด้านล่าง เพื่อตั้งค่า region ของเราให้เป็น ap-southeast-1 สามารถดูตัวอย่างได้ในบทความต้นฉบับ
export AWS_DEFAULT_REGION=ap-southeast-1
- อ้างอิง: Environment variables to configure the AWS CLI
ทุกครั้งที่ใช้ Cloud9 จะต้องมีการกำหนดตัวแปรทุกครั้ง ดังนั้นเพื่อความสะดวก เราสามารถใช้คำสั่งตามนี้เพื่อบันทึกข้อมูลการตั้งค่าไว้ในไฟล์
$ echo '[default]' >> ~/.aws/config $ echo 'region = ap-southeast-1' >> ~/.aws/config
- อ้างอิง: Configuration and credential file settings
ตอนนี้เราสามารใช้ AWS CLI โดยการใช้สิทธิ์ IAM Role นอกจากนี้ยังใช้คำสั่งที่เกี่ยวข้องกับ IAM อย่างเช่น aws iam create-user ที่ต้องปิดการใช้งาน AMTC ก่อน
หากเราใช้คำสั่ง aws iam create-user ด้วยสิทธ์ AMTC ก็จะเกิด error ขึ้นตามภาพ
ส่วนสุดท้าย
เราได้แนะนำวิธีเรียกใช้ AWS CLI จาก Cloud9 ด้วยสิทธิ์ของ IAM Role
บทความต้นฉบับ
Cloud9からIAM Roleの権限でAWS CLIを実行する(ภาษาญี่ปุ่น)
บทความที่เกี่ยวข้อง
- Calling AWS services from an environment in AWS Cloud9(ภาษาอังกฤษ)
- Environment variables to configure the AWS CLI(ภาษาอังกฤษ)
- Configuration and credential file settings(ภาษาอังกฤษ)