การจัดการบักเก็ต S3 และ IAM
เรียนรู้การจัดเตรียมและตั้งค่าบักเก็ตพื้นที่จัดเก็บ S3 รวมถึงจัดการทรัพยากร AWS Identity and Access Management (IAM) ด้วย Terraform
การจัดการบักเก็ต S3 และ IAM เป็นบทเรียน Terraform Infrastructure as Code ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Terraform Infrastructure as Code และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Terraform Infrastructure as Code มีบทเรียนทั้งหมด 4 บทเรียน
S3 และ Terraform: พื้นที่จัดเก็บข้อมูลบนคลาวด์
Amazon S3 (บริการจัดเก็บข้อมูลอย่างง่าย) ให้บริการจัดเก็บอ็อบเจ็กต์ที่ปรับขนาดได้สูง ทนทาน และพร้อมใช้งานสูง เหมาะอย่างยิ่งสำหรับการสำรองข้อมูล เว็บไซต์แบบคงที่ และการเก็บถาวรข้อมูล
การจัดการบัคเก็ต S3 ด้วย Terraform มีประโยชน์หลายประการ:
- การทำงานอัตโนมัติ: สร้างและกำหนดค่าบัคเก็ตด้วยโปรแกรม
- การควบคุมเวอร์ชัน: ติดตามการเปลี่ยนแปลงการกำหนดค่าบัคเก็ตของคุณ
- ความสอดคล้อง: ทำให้แน่ใจว่าสภาพแวดล้อมทั้งหมดมีการตั้งค่า S3 เหมือนกัน
บัคเก็ต S3 แรกของคุณ
มากำหนดบัคเก็ต S3 แบบง่ายกันครับ โดยใช้ทรัพยากร aws_s3_bucket
ชื่อบัคเก็ตต้องไม่ซ้ำกันทั่วโลกในบัญชี AWS ทั้งหมด โปรดเลือกชื่อที่ไม่ซ้ำกันครับ
ลองเรียกใช้ตัวอย่างนี้:
resource "aws_s3_bucket" "my_unique_bucket" {
bucket = "my-coddykit-unique-bucket-12345" # Replace with a globally unique name
}
output "bucket_id" {
value = aws_s3_bucket.my_unique_bucket.id
}การตั้งชื่อบัคเก็ตและรีเจียน
เมื่อสร้างบัคเก็ต S3 โปรดจำประเด็นสำคัญต่อไปนี้:
- ไม่ซ้ำกันทั่วโลก: ชื่อบัคเก็ตต้องไม่ซ้ำกันทั่วโลกในบัญชี AWS ทั้งหมด
- รีเจียน: แม้ชื่อจะเป็นชื่อที่ใช้ทั่วโลก แต่บัคเก็ตจะอยู่ในรีเจียน AWS ที่เฉพาะเจาะจง ซึ่งกำหนดโดยการตั้งค่าผู้ให้บริการ AWS ของคุณ
- กฎการตั้งชื่อ: ชื่อต้องเป็นตัวพิมพ์เล็ก มีความยาว 3 ถึง 63 อักขระ และสามารถมีเครื่องหมายขีดกลางได้
การเลือกหลักเกณฑ์การตั้งชื่อที่ดีมีความสำคัญต่อการจัดระเบียบและความชัดเจน
ความปลอดภัยและคุณลักษณะของ S3
S3 มีคุณลักษณะต่าง ๆ เช่น การกำหนดเวอร์ชันเพื่อเก็บอ็อบเจ็กต์ไว้หลายเวอร์ชัน และการบล็อกการเข้าถึงแบบสาธารณะเพื่อความปลอดภัย โดยทั่วไปแล้ว การบล็อกการเข้าถึงแบบสาธารณะไว้เป็นค่าเริ่มต้นสำหรับบัคเก็ตส่วนใหญ่เป็นสิ่งสำคัญอย่างยิ่ง
ตัวอย่างนี้จะตั้งค่าการกำหนดเวอร์ชันและทำให้แน่ใจว่าการเข้าถึงแบบสาธารณะถูกบล็อก
ลองเรียกใช้ตัวอย่างนี้:
resource "aws_s3_bucket" "my_versioned_bucket" {
bucket = "coddykit-versioned-bucket-98765" # Replace with a unique name
}
resource "aws_s3_bucket_versioning" "my_versioned_bucket_versioning" {
bucket = aws_s3_bucket.my_versioned_bucket.id
versioning_configuration {
status = "Enabled"
}
}
resource "aws_s3_bucket_public_access_block" "my_versioned_bucket_public_access_block" {
bucket = aws_s3_bucket.my_versioned_bucket.id
block_public_acls = true
block_public_and_cross_account_access = true
ignore_public_acls = true
restrict_public_buckets = true
}
output "bucket_name_versioned" {
value = aws_s3_bucket.my_versioned_bucket.bucket
}AWS IAM: ข้อมูลประจำตัวและการเข้าถึง
AWS IAM (การจัดการข้อมูลประจำตัวและการเข้าถึง) เป็นบริการเว็บที่ช่วยให้คุณควบคุมการเข้าถึงทรัพยากร AWS ได้อย่างปลอดภัย ซึ่งเป็นพื้นฐานสำคัญของความปลอดภัย
ด้วย IAM คุณสามารถ:
- จัดการผู้ใช้และการเข้าถึงผ่านโปรแกรมหรือคอนโซลของผู้ใช้
- มอบสิทธิ์อย่างละเอียดให้กับทรัพยากร AWS ที่เฉพาะเจาะจง
- ควบคุมว่าใครสามารถทำอะไรในบัญชี AWS ของคุณได้บ้าง
Terraform ช่วยให้คุณกำหนดและจัดการทรัพยากร IAM ได้เช่นเดียวกับบัคเก็ต S3
การจัดเตรียมผู้ใช้ IAM
มาสร้างผู้ใช้ IAM ใหม่โดยใช้ Terraform กันครับ ผู้ใช้ IAM แทนบุคคลหรือบริการที่โต้ตอบกับ AWS
ผู้ใช้นี้ยังไม่มีสิทธิ์ใด ๆ เราจะเพิ่มสิทธิ์ในขั้นตอนถัดไป
ลองเรียกใช้ตัวอย่างนี้:
resource "aws_iam_user" "coddykit_user" {
name = "coddykit-app-user"
path = "/system/"
tags = {
Department = "DevOps"
}
}
output "iam_user_name" {
value = aws_iam_user.coddykit_user.name
}
output "iam_user_arn" {
value = aws_iam_user.coddykit_user.arn
}ทำความเข้าใจนโยบาย IAM
นโยบาย IAM คือเอกสารที่กำหนดสิทธิ์ โดยระบุว่าการดำเนินการใดได้รับอนุญาตหรือถูกปฏิเสธกับทรัพยากรใด และภายใต้เงื่อนไขใด
นโยบายเขียนด้วย JSON และสามารถแนบกับผู้ใช้ กลุ่ม หรือบทบาทได้
- นโยบายตามข้อมูลประจำตัว: แนบกับข้อมูลประจำตัว IAM (ผู้ใช้ กลุ่ม หรือบทบาท)
- นโยบายตามทรัพยากร: แนบกับทรัพยากร (เช่น บัคเก็ต S3 หรือคิว SQS)
การมอบสิทธิ์ S3
ตอนนี้มาสร้างนโยบายที่มอบสิทธิ์การเข้าถึงแบบอ่านอย่างเดียวให้ผู้ใช้ IAM ของเราในบัคเก็ต S3 ที่เฉพาะเจาะจง แล้วแนบนโยบายดังกล่าวกันครับ
ทรัพยากร aws_iam_policy ใช้กำหนดนโยบาย ส่วน aws_iam_user_policy_attachment ใช้เชื่อมนโยบายเข้ากับผู้ใช้
ลองเรียกใช้ตัวอย่างนี้:
resource "aws_s3_bucket" "policy_target_bucket" {
bucket = "coddykit-policy-bucket-112233" # Unique name
}
resource "aws_iam_user" "s3_reader_user" {
name = "coddykit-s3-reader"
}
data "aws_iam_policy_document" "s3_read_only_policy" {
statement {
actions = [
"s3:GetObject",
"s3:ListBucket"
]
resources = [
aws_s3_bucket.policy_target_bucket.arn,
"${aws_s3_bucket.policy_target_bucket.arn}/*"
]
}
}
resource "aws_iam_policy" "s3_read_only" {
name = "CoddyKitS3ReadOnlyPolicy"
description = "Grants read-only access to a specific S3 bucket"
policy = data.aws_iam_policy_document.s3_read_only_policy.json
}
resource "aws_iam_user_policy_attachment" "attach_s3_read_only" {
user = aws_iam_user.s3_reader_user.name
policy_arn = aws_iam_policy.s3_read_only.arn
}
output "s3_reader_user_name" {
value = aws_iam_user.s3_reader_user.name
}
output "s3_read_only_policy_arn" {
value = aws_iam_policy.s3_read_only.arn
}การจัดระเบียบด้วยกลุ่ม IAM
เพื่อให้จัดการได้ดียิ่งขึ้น โดยเฉพาะเมื่อมีผู้ใช้จำนวนมาก คุณสามารถใช้กลุ่ม IAM ได้ กลุ่มคือชุดรวมของผู้ใช้ IAM
แทนที่จะแนบนโยบายกับผู้ใช้แต่ละราย คุณสามารถแนบนโยบายกับกลุ่ม และผู้ใช้ทั้งหมดในกลุ่มนั้นจะสืบทอดสิทธิ์ดังกล่าว
วิธีนี้ช่วยให้การจัดการสิทธิ์ง่ายขึ้น และปฏิบัติตามหลักสิทธิ์น้อยที่สุดได้สะดวกยิ่งขึ้น
ตรวจสอบอย่างรวดเร็ว: S3 และ IAM
ข้อความใดต่อไปนี้เกี่ยวกับการจัดการบัคเก็ต AWS S3 และผู้ใช้หรือนโยบาย IAM ด้วย Terraform เป็นจริง
ทบทวน: S3 และ IAM
ทำได้ดีมากครับ ในบทเรียนนี้ คุณได้เรียนรู้วิธีจัดการบัคเก็ต AWS S3 และทรัพยากร IAM โดยใช้ Terraform แล้ว
- เราได้จัดเตรียมบัคเก็ต S3 กำหนดค่าการกำหนดเวอร์ชัน และบล็อกการเข้าถึงแบบสาธารณะ
- เราได้สร้างผู้ใช้ IAM และแนบนโยบายแบบกำหนดเองเพื่อมอบสิทธิ์ที่เฉพาะเจาะจง
- ตอนนี้คุณเข้าใจความสำคัญของ S3 สำหรับการจัดเก็บข้อมูล และ IAM สำหรับควบคุมการเข้าถึง AWS อย่างปลอดภัย โดยกำหนดทุกอย่างเป็นโค้ดแล้วครับ
ถัดไป เราจะเจาะลึกเทคนิคการจัดการสถานะขั้นสูง
คำถามที่พบบ่อย
บทเรียน “การจัดการบักเก็ต S3 และ IAM” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการบักเก็ต S3 และ IAM” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Terraform Infrastructure as Code ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Terraform Infrastructure as Code มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดการบักเก็ต S3 และ IAM”
เรียนรู้การจัดเตรียมและตั้งค่าบักเก็ตพื้นที่จัดเก็บ S3 รวมถึงจัดการทรัพยากร AWS Identity and Access Management (IAM) ด้วย Terraform คุณปฏิบัติ Terraform Infrastructure as Code ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Terraform Infrastructure as Code หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Terraform Infrastructure as Code บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดการบักเก็ต S3 และ IAM” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Terraform Infrastructure as Code นี้ได้ไหม
ได้ บทเรียน Terraform Infrastructure as Code ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตั้งค่าผู้ให้บริการ AWS
- การจัดเตรียมอินสแตนซ์ EC2
- การจัดการบักเก็ต S3 และ IAM
- การตั้งค่า VPC และเครือข่าย