Thuê Nhân Viên Đầu Tiên Trên AWS: Tạo Người Dùng IAM, Chính Sách & Vai Trò
Sử dụng tài khoản root giống như CEO quét sàn: có thể nhưng không an toàn và không hiệu quả. Trong hướng dẫn này, chúng ta sẽ thuê "nhân viên kỹ thuật số" đầu tiên của bạn — tạo một người dùng IAM, cấp quyền cho họ và dạy máy chủ cách thực hiện công việc mà không cần mật khẩu. Tôi sẽ hướng dẫn bạn qua các phòng thí nghiệm thực tiễn, giải thích thực tế và những câu chuyện nhỏ để các bước trở nên dễ nhớ.
Giới thiệu
Hãy tưởng tượng Joy, CEO của một công ty nhỏ nhưng đang phát triển. Joy biết rằng cô ấy không nên chia sẻ tài khoản root (các khóa chính). Thay vào đó, cô ấy thuê Samuel — một người thật — và cấp cho Samuel một danh tính nhân viên hợp lệ. Danh tính đó có mật khẩu để Samuel có thể đăng nhập, và (tùy chọn) các khóa lập trình nếu Samuel cần truy cập CLI hoặc SDK.
Tại sao không sử dụng tài khoản root?
- Tài khoản root có quyền lực đầy đủ. Nếu bị xâm phạm, mọi thứ đều bị xâm phạm.
- Quyền truy cập root nên được dành riêng cho các tác vụ cấp tài khoản (thanh toán, đóng tài khoản, v.v.).
- Sử dụng người dùng IAM cho phép bạn áp dụng nguyên tắc quyền tối thiểu: chỉ cấp cho mọi người những gì họ cần.
Phòng Thí Nghiệm Thực Tiễn: Tạo Danh Tính Kỹ Thuật Số của Bạn
Trước khi bắt đầu: Đăng nhập bằng tài khoản root hoặc một người dùng IAM có quyền tạo người dùng.
- Trong AWS Console, mở dịch vụ IAM và bấm vào Người dùng.
- Tại đây, bạn quản lý danh tính của con người và danh tính của máy móc.
- Nhấn Tạo người dùng.
- Bạn sẽ được yêu cầu nhập tên người dùng và loại thông tin xác thực.
- Nhập một tên người dùng, ví dụ: Alice. Sử dụng tên thật rõ ràng (Alice.Smith) để đảm bảo trách nhiệm.
- Chọn loại thông tin xác thực AWS:
- Truy cập AWS Management Console — cấp một mật khẩu (web) để Alice có thể đăng nhập.
- Truy cập lập trình (tùy chọn) — tạo một cặp khóa truy cập cho CLI/SDK. Chỉ kích hoạt nếu thực sự cần thiết.
Tại sao phải phân tách?
- Truy cập console dành cho con người sử dụng trình duyệt. Truy cập lập trình dành cho các kịch bản và công cụ tự động.
- Nhấn Tiếp theo: Quyền hạn.
- Đây là nơi bạn đính kèm quyền thông qua nhóm, chính sách hoặc chính sách nội tuyến.
- Thêm người dùng vào một nhóm. Nhấn Tạo nhóm.
- Nhóm là cách dễ nhất để quản lý tập hợp quyền.
- Nhập tên nhóm: Admin. Tìm kiếm và chọn AdministratorAccess.
- Trong phòng thí nghiệm, chúng ta sử dụng AdministratorAccess để bạn có thể thử nghiệm các quy trình làm việc. Trong môi trường sản xuất, hãy ưu tiên các nhóm hạn chế hơn.
Lưu Ý Bảo Mật
- Tránh tạo mọi người dùng thành admin. Tạo các nhóm dựa trên vai trò (Dev, Ops, Billing) với chỉ những quyền cần thiết.
- Nhấn Tạo nhóm, sau đó chọn nhóm Admin.
- Bây giờ Samuel kế thừa mọi quyền mà nhóm Admin có.
- Nhấn Tiếp theo: Thẻ (tags) (bỏ qua tạm thời), sau đó Tiếp theo: Xem lại.
- Thẻ có thể giúp trong thanh toán, kiểm toán và tự động hóa. Hãy cân nhắc thêm thẻ đội hoặc dự án sau này.
- Xem lại cài đặt và nhấn Tạo người dùng.
- Tải xuống tệp .csv. Nó chứa chi tiết đăng nhập và các khóa. Lưu trữ nó một cách an toàn.
Tệp .csv bao gồm:
- Liên kết đăng nhập IAM, tên người dùng, mật khẩu (tạm thời nếu tự động tạo) và các khóa truy cập nếu bạn đã kích hoạt quyền truy cập lập trình.
Mẹo Bảo Mật
- Tệp này chỉ hiển thị một lần. Nếu bạn mất nó, hãy xóa các khóa và tạo mới hoặc đặt lại mật khẩu console.
- Đăng xuất khỏi tài khoản root.
- Đăng nhập lại với tư cách Samuel bằng cách sử dụng liên kết đăng nhập của người dùng IAM (tìm thấy trên bảng điều khiển IAM).
- Nhập mật khẩu tạm thời từ tệp .csv, sau đó đặt một mật khẩu mới.
- Nếu bạn đã chọn yêu cầu đặt lại mật khẩu, Alice sẽ bị buộc phải đặt một mật khẩu mới khi đăng nhập lần đầu. Đây là một thực hành tốt được khuyến nghị.
- Bây giờ bạn đã đăng nhập với tư cách là một người dùng IAM với thông tin xác thực an toàn hơn.
Tóm Tắt Câu Chuyện Nhanh
Joy đã tạo Alice, tải xuống CSV, chuyển giao nó một cách an toàn và Alice đã đăng nhập và tự đặt mật khẩu của mình. Tài khoản root vẫn an toàn và yên tĩnh.
Chính Sách IAM
Phép So Sánh
Hãy nghĩ về chính sách IAM như một cuốn sổ quy tắc về những gì một nhân viên có thể hoặc không thể làm. Các chính sách là các tài liệu JSON nói “Cho phép” hoặc “Từ chối” các hành động cụ thể trên các tài nguyên cụ thể.
Ví dụ — Quyền Truy Cập Đọc Chỉ Đến S3 (JSON chính sách)
json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": "*"
}
]
}
Giải thích:
- Effect: "Allow" — tuyên bố này cấp quyền (không phải Từ chối).
- Action — các hành động API được phép.
s3:ListBucket
cho phép bạn liệt kê nội dung của bucket;s3:GetObject
cho phép bạn tải xuống các đối tượng. - Resource: "*" — áp dụng cho tất cả các bucket. Trong môi trường sản xuất, bạn nên giới hạn điều này cho ARNs của các bucket cụ thể.
Phòng Thí Nghiệm Thực Tiễn: Tạo Nhóm Đọc Chỉ
- Trong bảng điều khiển IAM, đi đến Nhóm Người Dùng → Tạo nhóm.
- Đặt tên nhóm là S3-ReadOnly.
- Đính kèm chính sách AmazonS3ReadOnlyAccess.
- Đây là chính sách được quản lý bởi AWS thực hiện một bộ quy tắc đọc chỉ an toàn.
- Nhấn Tạo nhóm.
- Thêm người dùng Samuel vào nhóm này.
- Samuel hiện có trong hai nhóm: Admin và S3-ReadOnly.
Quyền Hạn Cộng Gộp
- Quyền hạn là cộng gộp — tập hợp quyền hiệu quả của Samuel là hợp nhất của các quyền của nhóm, trừ khi một Từ chối rõ ràng ghi đè lên.
Tại sao sử dụng nhóm và chính sách?
- Dễ dàng kiểm tra và mở rộng. Thêm/xóa người dùng mà không cần chạm vào các chính sách.
- Tái sử dụng chính sách cho nhiều người dùng.
Vai Trò IAM
Samuel cần một máy chủ EC2 để đọc các tệp từ S3. Bạn có thể cấp cho máy chủ một khóa truy cập (không nên), hoặc bạn có thể trang bị cho máy chủ một vai trò — một danh tính tạm thời mà phiên bản có thể đảm nhận. Vai trò là cách an toàn, bản địa của AWS để cho phép các dịch vụ hoạt động thay mặt cho nhau.
Phòng Thí Nghiệm Thực Tiễn: Gán Vai Trò cho Dịch Vụ
- Trong IAM, đi đến Vai trò → Tạo vai trò.
- Chọn dịch vụ AWS → EC2.
- Điều này thiết lập chính sách tin cậy để các phiên bản EC2 có thể đảm nhận vai trò.
- Thêm quyền: AmazonS3ReadOnlyAccess.
- Đặt tên vai trò là MyEC2S3ReadRole và tạo nó.
- Đi đến EC2 → Khởi động phiên bản.
- Dưới Chi tiết nâng cao, chọn hồ sơ phiên bản IAM → MyEC2S3ReadRole.
- Điều này đính kèm vai trò vào phiên bản khi khởi động. Nếu phiên bản đã chạy, hãy đính kèm vai trò thông qua Hành động phiên bản → Bảo mật → Chỉnh sửa vai trò IAM.
- Khởi động (hoặc áp dụng) phiên bản.
- Khi nó đang chạy, kết nối bằng EC2 Instance Connect hoặc SSH.
- Trong terminal, chạy:
bash
aws s3 ls
- Phiên bản liệt kê các bucket S3 của bạn bằng quyền vai trò — không cần khóa dài hạn.
Mẹo Nhanh
- Đảm bảo phiên bản đã cài đặt AWS CLI hoặc sử dụng công cụ tích hợp của nền tảng có thể truy cập thông tin xác thực hồ sơ phiên bản.
Thực Hành Tốt Nhất & Danh Sách Kiểm Tra Bảo Mật
- Không bao giờ sử dụng tài khoản root cho các tác vụ hàng ngày. Giữ nó khóa và kích hoạt MFA cho root.
- Yêu cầu đặt lại mật khẩu khi đăng nhập lần đầu cho bất kỳ mật khẩu mặc định nào bạn tạo.
- Kích hoạt MFA cho tất cả người dùng console — đặc biệt là bất kỳ tài khoản admin hoặc có quyền đặc biệt nào.
- Nguyên tắc quyền tối thiểu: tránh gán AdministratorAccess trừ khi cần thiết.
- Sử dụng nhóm & vai trò thay vì gán chính sách trực tiếp cho người dùng bất cứ khi nào có thể.
- Luân chuyển và thu hồi thông tin xác thực: Nếu một tệp .csv bị mất hoặc một khóa bị lộ, hãy xóa nó và tạo thông tin xác thực mới.
- Sử dụng các kênh an toàn để chia sẻ tệp .csv (email mã hóa, kho an toàn). Không dán thông tin xác thực vào chat.
- Kích hoạt CloudTrail để kiểm toán các hành động và phát hiện hành vi đáng ngờ.
- Hạn chế các khóa lập trình và ưu tiên vai trò cho các dịch vụ và EC2.
- Gán thẻ cho tài nguyên & người dùng để lập hóa đơn, sở hữu và kiểm toán.
Khắc Phục Sự Cố & Câu Hỏi Thường Gặp
Q: Tôi mất tệp .csv — có thể tải lại không?
A: Không. AWS chỉ hiển thị các khóa truy cập và mật khẩu được tạo một lần. Nếu mất, hãy xóa khóa và tạo mới hoặc đặt lại mật khẩu console cho người dùng đó.
Q: Tôi muốn Alice chuyển đội sau này — làm thế nào để thay đổi quyền của cô ấy?
A: Xóa Alice khỏi nhóm cũ và thêm cô ấy vào nhóm mới. Các thay đổi có hiệu lực ngay lập tức.
Q: Chính sách có cộng gộp hay ghi đè?
A: Các chính sách là cộng gộp — tất cả các quyền Allow được kết hợp. Tuy nhiên, một Deny rõ ràng trong bất kỳ chính sách nào sẽ ghi đè lên một Allow.
Q: Tôi có nên cấp cho các phiên bản EC2 các khóa truy cập không?
A: Không — hãy ưu tiên IAM Roles (hồ sơ phiên bản). Chúng cung cấp thông tin xác thực tạm thời và an toàn hơn nhiều.
Lưu Ý Cuối Cùng
Joy đã làm đúng: cô ấy giữ tài khoản root an toàn, tạo Samuel với một mật khẩu console, tải xuống tệp .csv, chuyển giao nó một cách an toàn và yêu cầu Alice đặt mật khẩu của mình khi đăng nhập lần đầu. Sau đó, Joy đã sử dụng nhóm và vai trò để làm cho môi trường trở nên có thể kiểm toán và bảo trì.