Last chance! 50% off DataCamp Premium
Sale ends in
Dịch vụ Identity and Access Management (IAM) là nền tảng cho mọi việc bạn làm trên AWS. Nó giúp dữ liệu của bạn an toàn và cho phép bạn kiểm soát ai có thể truy cập tài nguyên AWS và họ có thể làm gì với các tài nguyên đó.
Không có IAM, bất kỳ ai truy cập tài khoản AWS của bạn đều có thể gây rối bằng cách thay đổi cấu hình, xóa tài nguyên hoặc truy cập dữ liệu nhạy cảm.
Hướng dẫn này chứa mọi thứ bạn cần biết để thiết lập và sử dụng IAM nhằm bảo mật môi trường AWS của bạn.
Nếu bạn mới sử dụng AWS, hãy cân nhắc tham gia khóa học Giới thiệu về AWS của chúng tôi để làm quen với các kiến thức cơ bản.
IAM là viết tắt của Identity and Access Management. Dịch vụ này được ra mắt vào năm 2011 và là công cụ để quản lý ai có thể truy cập tài nguyên AWS của bạn và họ có thể làm gì với các tài nguyên đó.
Đây là bốn thành phần thiết yếu của IAM:
Nếu bạn mới sử dụng AWS, hãy cân nhắc tham gia khóa học Giới thiệu về AWS của chúng tôi để làm quen với những điều cơ bản của nền tảng rộng lớn này.
Nếu bạn chưa thực hiện, hãy tạo tài khoản AWS và đăng nhập.
Để tìm dịch vụ IAM, nhập từ khóa “iam” vào thanh tìm kiếm ở đầu bảng điều khiển AWS và chọn kết quả đầu tiên cho IAM.

Tìm kiếm dịch vụ IAM trong bảng điều khiển AWS
Bạn sẽ được chuyển đến bảng điều khiển IAM, nơi bạn có thể tạo và quản lý tất cả các thành phần IAM.

Bảng điều khiển IAM
Bảng điều khiển bên trái cho phép bạn tạo người dùng, vai trò và chính sách, cũng như các báo cáo và công cụ cho quản lý và giám sát.
Các khuyến nghị bảo mật thường nằm ở giữa bảng điều khiển IAM. AWS cung cấp hướng dẫn sâu rộng về các thực tiễn bảo mật tốt nhất và giúp bạn dễ dàng thực hiện các hành động khắc phục nếu cần.
Giờ hãy xem một trong những khái niệm quan trọng nhất của IAM: chính sách.
Chính sách xác định ai có những quyền gì để truy cập tài nguyên AWS của bạn.

Tổng quan về chính sách IAM
Chính sách được viết ở định dạng JSON và bao gồm một vài thành phần chính.
Ví dụ, đây là tài liệu JSON cho chính sách do AWS quản lý có tên “AmazonS3FullAccess”:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
Version chỉ định phiên bản ngôn ngữ của chính sách.Statement là “phần nội dung chính” của chính sách. Một chính sách có thể có nhiều câu lệnh. Mỗi câu lệnh gồm một vài trường thiết yếu:Effect: Trường này chỉ định câu lệnh cho phép hay từ chối truy cập. Giá trị có thể là "Allow" hoặc "Deny".Action: Xác định các hành động được cho phép hoặc bị từ chối. Hành động thường là các thao tác bạn có thể thực hiện trên một tài nguyên. AWS có các hành động cụ thể cho từng dịch vụ, vì vậy bạn phải chỉ định chính xác.Resource: Chỉ định các tài nguyên AWS mà hành động áp dụng. Tài nguyên được định danh bằng Amazon Resource Names (ARN) để định danh duy nhất tài nguyên.Bây giờ, hãy nói về các loại chính sách, bắt đầu với loại managed có thể do AWS quản lý hoặc do khách hàng quản lý.
Chính sách do AWS quản lý được AWS tạo và duy trì, là điểm khởi đầu tuyệt vời cho các bộ quyền thường dùng. Chính sách do khách hàng quản lý là những chính sách bạn tự tạo và quản lý, cho phép bạn linh hoạt hơn khi viết tài liệu JSON tùy chỉnh.
Ngược lại, chính sách inline được gắn trực tiếp vào một người dùng, nhóm hoặc vai trò duy nhất. Chúng hữu ích cho các quyền cụ thể, kiểm soát chặt chẽ và không nên tái sử dụng. Tuy nhiên, việc quản lý số lượng lớn chính sách inline có thể trở nên khó khăn, nên nhìn chung chúng ít được ưa chuộng hơn so với chính sách managed.
Việc tạo và gắn chính sách cho người dùng, nhóm và vai trò trong AWS khá đơn giản. Đây là hướng dẫn từng bước:
Để tạo chính sách, nhấp “Policies” trong menu bên trái của bảng điều khiển IAM và nhấp “Create Policy”.
Bạn có thể định nghĩa chính sách bằng trình soạn thảo trực quan hoặc thẻ JSON. Trình soạn thảo trực quan sẽ dễ hơn nếu bạn chưa quen với JSON. Ví dụ, để tạo chính sách cho phép truy cập chỉ đọc vào S3, bạn có thể chọn “S3 service” rồi chọn các hành động “read-only”.
Nếu bạn muốn tìm hiểu thêm về S3, đừng quên xem hướng dẫn lưu trữ AWS của chúng tôi.

Tạo một chính sách mới
Sau khi bạn đã định nghĩa chính sách, nhấp “Review policy”. Sau đó đặt tên và mô tả cho chính sách rồi nhấp “Create policy”. Lúc này, chính sách tùy chỉnh của bạn sẽ được tạo.
Lưu ý có hơn một nghìn chính sách do AWS quản lý, đủ bao phủ hầu hết các trường hợp sử dụng. Vì vậy, bạn có thể sẽ không cần tạo chính sách tùy chỉnh.

Danh sách chính sách do AWS quản lý
Nếu bạn muốn gắn chính sách cho một người dùng, vào “Users” trong bảng điều khiển IAM và chọn người dùng bạn muốn gắn chính sách.
Nhấp vào thẻ “Permissions” rồi nhấp “Add permissions”.
Chọn “Attach policies directly”, tìm chính sách bạn đã tạo (hoặc bất kỳ chính sách có sẵn nào bạn muốn gắn) và chọn nó.

Gắn chính sách cho một người dùng
Nhấp “Next” để xem lại quyền, sau đó nhấp “Add permissions”.
Nếu bạn muốn gắn chính sách cho một nhóm, vào “User groups” trong bảng điều khiển IAM và chọn nhóm để gắn chính sách, hoặc nhấp “Create new group” để tạo nhóm mới.
Nhấp vào “Permissions tab” và “Add permissions”.
Tương tự như gắn chính sách cho người dùng, bạn cần chọn “Attach policies directly” rồi tìm và chọn chính sách bạn đã tạo (hoặc bất kỳ chính sách có sẵn nào).
Nhấp “Next” để xem lại quyền, rồi nhấp “Add permissions”.
Vào “Roles” trong bảng điều khiển IAM và chọn vai trò bạn muốn gắn chính sách.
Nhấp vào thẻ “Permissions” rồi nhấp ”Add permissions”. Bước này hơi khác so với trước đó. Bạn sẽ thấy các chính sách quyền hiện tại và danh sách đầy đủ các chính sách khác có thể gắn.

Gắn chính sách cho một vai trò
Chọn các chính sách bạn muốn gắn và chọn “Add permissions”. Lưu ý bạn chỉ có thể thêm tối đa 10 chính sách managed cho một vai trò.
Các vai trò IAM giúp bạn quản lý quyền cho dịch vụ và ứng dụng của mình.
Khác với người dùng IAM, vốn gắn với một cá nhân cụ thể, vai trò được thiết kế để bất kỳ ai cần đều có thể đảm nhiệm, nhờ đó vô cùng linh hoạt.
Hãy xem vai trò như một tập hợp quyền có thể tạm thời gán cho các thực thể như dịch vụ AWS (ví dụ EC2, Lambda) hoặc thậm chí người dùng từ tài khoản AWS khác. Điều này rất tốt cho bảo mật vì vai trò sử dụng thông tin xác thực tạm thời tự động hết hạn.
Xem hướng dẫn của chúng tôi về làm chủ Step Functions trong AWS để thấy vai trò IAM là thành phần thiết yếu trong việc điều phối quy trình làm việc.
Khi tạo một vai trò, bạn xác định hai nội dung chính: chính sách tin cậy (trust policies) và chính sách quyền (permissions policies):
Một thực thể phải đảm nhiệm vai trò thì mới sử dụng được vai trò đó. Khi một phiên bản EC2 hoặc hàm Lambda đảm nhiệm vai trò, nó nhận thông tin xác thực tạm thời có thể dùng để gửi yêu cầu tới các dịch vụ AWS.
Ví dụ đơn giản: Giả sử bạn có một ứng dụng chạy trên phiên bản EC2 cần đọc dữ liệu từ một bucket S3. Thay vì lưu khóa truy cập trên phiên bản, bạn có thể tạo một vai trò IAM với chính sách cho phép đọc từ S3. Sau đó gắn vai trò này cho phiên bản EC2 của bạn. Khi phiên bản chạy, nó đảm nhiệm vai trò và nhận thông tin xác thực tạm thời để truy cập bucket S3.
Thông tin xác thực tạm thời được cấp cho phiên bản thông qua AWS Security Token Service (STS). Các thông tin này gồm ID khóa truy cập, khóa bí mật và mã thông báo phiên, có hiệu lực trong thời gian ngắn, thường là vài giờ.
Sử dụng vai trò cũng giúp quản lý quyền dễ dàng hơn vì bạn có thể cập nhật chính sách của vai trò tại một nơi, và thay đổi sẽ tự động áp dụng cho tất cả thực thể đảm nhiệm vai trò.
Để tạo vai trò IAM, nhấp “Roles” ở menu bên trái bảng điều khiển IAM rồi nhấp “Create Role”. Sau đó, làm theo các bước sau để hoàn tất việc tạo vai trò:
Bạn cần chọn ai hoặc cái gì sẽ sử dụng vai trò này. Có một số tùy chọn: dịch vụ AWS (ví dụ EC2, Lambda), tài khoản AWS khác hoặc web identity. Hiện tại, giả sử chúng ta tạo một vai trò cấp toàn quyền truy cập S3.
Chọn “S3” làm dịch vụ và “S3” làm trường hợp sử dụng. Nhấp “Next”.

Chọn thực thể đáng tin cậy
Tại đây, bạn sẽ thêm quyền cho vai trò. Bạn có thể chọn từ các chính sách hiện có hoặc tạo mới.
Với vai trò này, chúng ta tìm và chọn chính sách “AmazonS3FullAccess” rồi nhấp “Next”.

Thêm quyền cho một vai trò IAM
Đặt tên vai trò thể hiện rõ mục đích, như “FullS3Access”.

Đặt tên, xem lại và tạo vai trò
Xem lại chi tiết vai trò để đảm bảo mọi thứ ổn. Bạn sẽ thấy thực thể đáng tin cậy, các chính sách được gắn và mọi thẻ (tag) đã thêm.
Tag là tùy chọn, nhưng có thể giúp tổ chức và quản lý vai trò. Ví dụ, bạn có thể thêm tag với khóa "Environment" và giá trị "Production".
Nhấp “Create role”.
Việc quản lý vai trò IAM có thể trở nên rối rắm nếu bạn có nhiều vai trò, nhưng có những cách để giữ mọi thứ ngăn nắp:
Truy cập chéo tài khoản với vai trò IAM là tính năng hữu ích cho phép bạn cấp quyền cho người dùng hoặc tài nguyên trong một tài khoản AWS để truy cập tài nguyên trong tài khoản khác.
Hãy hình dung bạn có hai tài khoản AWS: “Tài khoản A” là môi trường sản xuất, và “Tài khoản B” là môi trường phát triển. Bạn có thể cần người dùng hoặc ứng dụng ở “Tài khoản B” truy cập tài nguyên ở “Tài khoản A”, nhưng bạn không muốn tạo người dùng IAM riêng trong “Tài khoản A” cho tất cả mọi người.
Bạn có thể tạo một vai trò trong “Tài khoản A” cấp các quyền cần thiết, sau đó cho phép người dùng hoặc tài nguyên ở “Tài khoản B” đảm nhiệm vai trò đó.
Các bước bạn cần thực hiện để xử lý kịch bản trên:

Truy cập chéo tài khoản với IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::AccountA_ID:role/RoleName"
}
]
}
AccountA_ID bằng ID tài khoản AWS thực của “Tài khoản A” và RoleName bằng tên vai trò bạn đã tạo.Người dùng hoặc ứng dụng trong “Tài khoản B” giờ có thể đảm nhiệm vai trò của “Tài khoản A” để truy cập tài nguyên. Việc này có thể thực hiện qua AWS CLI, SDK hoặc bảng điều khiển.
Các thực tiễn tốt nhất của IAM rất quan trọng để giữ an toàn cho môi trường AWS của bạn. Hãy tập trung vào những điểm sau:
MFA thêm một lớp bảo mật nữa cho tài khoản AWS của bạn. Ngay cả khi ai đó có được mật khẩu của bạn, họ vẫn cần yếu tố xác minh thứ hai để đăng nhập. Hãy bật MFA cho tài khoản root và các người dùng quan trọng khác.
Vai trò cung cấp thông tin xác thực tạm thời được xoay vòng tự động, giảm rủi ro lộ thông tin xác thực dài hạn. Ví dụ, hãy dùng vai trò thay vì hardcode khóa truy cập cho ứng dụng chạy trên các phiên bản EC2.
Chỉ cấp cho người dùng và vai trò những quyền họ thực sự cần. Điều này giảm thiểu rủi ro từ các hành động vô ý hoặc độc hại. Thường xuyên xem xét và cập nhật quyền để đảm bảo chúng vẫn cần thiết.
Nếu buộc phải dùng khóa truy cập, hãy xoay vòng định kỳ. AWS cho phép mỗi người dùng có hai khóa truy cập đang hoạt động, vì vậy bạn có thể tạo khóa mới, cập nhật ứng dụng, rồi vô hiệu hóa khóa cũ mà không bị gián đoạn.
Thay vì gán quyền cho từng người dùng, hãy tạo nhóm và gán quyền cho nhóm. Cách này giúp quản lý quyền dễ dàng hơn, đặc biệt khi số lượng người dùng tăng lên.
Bật AWS CloudTrail để ghi lại tất cả các lệnh gọi API, bao gồm những lệnh do người dùng IAM thực hiện. Thường xuyên xem lại các bản ghi này để phát hiện hoạt động bất thường hoặc trái phép. Điều này giúp duy trì bảo mật và tuân thủ.
Thực thi chính sách yêu cầu mật khẩu mạnh. Bao gồm sự kết hợp chữ hoa, chữ thường, số và ký tự đặc biệt. Ngoài ra, bạn nên buộc thay đổi mật khẩu định kỳ và ngăn việc tái sử dụng mật khẩu cũ.
Tài khoản root có quyền không giới hạn với mọi tài nguyên trong tài khoản AWS của bạn. Chỉ sử dụng khi thực sự cần và tạo người dùng IAM riêng cho các tác vụ hàng ngày. Luôn bật MFA cho tài khoản root.
Nếu bạn dùng AWS IAM trong môi trường doanh nghiệp, bạn nên biết về một vài tính năng nâng cao.
Identity federation cho phép bạn dùng các danh tính sẵn có từ nhà cung cấp danh tính khác (như danh bạ doanh nghiệp hoặc nhà cung cấp danh tính xã hội) để truy cập tài nguyên AWS. Thay vì tạo người dùng IAM riêng cho mọi người, bạn có thể cho phép họ đăng nhập bằng thông tin hiện có.
Để dùng identity federation, bạn phải thiết lập quan hệ tin cậy giữa AWS và nhà cung cấp danh tính.
Khi người dùng cố gắng truy cập AWS, họ trước tiên sẽ xác thực với nhà cung cấp danh tính. Nếu xác thực thành công, họ nhận thông tin xác thực tạm thời để truy cập tài nguyên AWS.
Các thông tin này được quản lý bởi AWS Security Token Service (STS) và chỉ có hiệu lực trong thời gian ngắn, giúp giảm rủi ro lộ thông tin xác thực dài hạn.
IAM Identity Center, còn được gọi là AWS Single Sign-On (SSO), là trung tâm để kiểm soát ai có thể truy cập những gì trong môi trường AWS của bạn mà không phải quản lý nhiều tên người dùng và mật khẩu.
Bạn có thể kết nối với các nguồn danh tính hiện có như Microsoft Active Directory hoặc các nhà cung cấp danh tính hỗ trợ SAML 2.0. Người dùng của bạn có thể dùng thông tin đăng nhập doanh nghiệp để truy cập AWS.
Sau khi thiết lập, người dùng có thể truy cập một cổng thông tin cá nhân hóa nơi họ thấy tất cả tài khoản và ứng dụng AWS mà họ có quyền. Họ chỉ cần đăng nhập một lần và từ đó có thể chuyển đổi giữa các tài khoản và ứng dụng AWS khác nhau mà không cần đăng nhập lại.
Bạn có thể thiết lập IAM Identity Center bằng cách bật nó trong AWS Management Console, kết nối với nguồn danh tính và cấu hình quyền truy cập người dùng. AWS cung cấp hướng dẫn từng bước để hỗ trợ bạn trong quá trình này, giúp mọi thứ trở nên dễ dàng ngay cả khi bạn mới làm quen với IAM hoặc SSO.
Thành thạo IAM là điều tối quan trọng vì nó đặt nền tảng cho mọi hoạt động của bạn trên AWS. Nó giúp bạn kiểm soát tài nguyên mà người dùng có thể truy cập, giữ dữ liệu an toàn và đảm bảo bạn không vô tình mở cửa cho kẻ xấu.
Để tìm hiểu thêm về AWS, hãy bắt đầu bằng cách đăng ký khóa học Công nghệ và Dịch vụ Đám mây AWS của chúng tôi. Sau đó, bạn có thể thăng tiến sự nghiệp bằng cách lấy chứng chỉ AWS!
Ngoài ra, hãy xem hội thảo trên web của chúng tôi, nơi sẽ giới thiệu cho bạn về khoa học dữ liệu trên đám mây với Python, AWS và boto3.
Người dùng IAM là các cá nhân hoặc ứng dụng cụ thể có thông tin xác thực vĩnh viễn và thường gắn với một người hoặc dịch vụ nhất định. Ngược lại, vai trò IAM được thiết kế để bất kỳ ai cần đều có thể đảm nhiệm, cung cấp thông tin xác thực tạm thời sẽ hết hạn sau một thời gian ngắn. Điều này khiến vai trò linh hoạt và an toàn hơn cho các tác vụ cần quyền truy cập tạm thời, chẳng hạn ứng dụng chạy trên các phiên bản EC2.
Để tạo một chính sách IAM tùy chỉnh, điều hướng đến bảng điều khiển IAM, nhấp vào "Policies" trong menu bên trái, rồi nhấp "Create Policy". Bạn có thể định nghĩa chính sách bằng trình soạn thảo trực quan hoặc trình soạn thảo JSON. Sau khi xác định quyền, nhấp "Review policy", đặt tên và mô tả cho chính sách, rồi nhấp "Create policy". Chính sách tùy chỉnh này có thể được gắn cho người dùng, nhóm hoặc vai trò.
Bật MFA thêm một lớp bảo mật cho tài khoản AWS của bạn. Ngay cả khi ai đó có được mật khẩu của bạn, họ vẫn cần yếu tố xác minh thứ hai (như mã từ điện thoại thông minh của bạn) để đăng nhập. Điều này giảm đáng kể nguy cơ truy cập trái phép và giúp bảo vệ dữ liệu, tài nguyên nhạy cảm của bạn.
Nhóm IAM cho phép bạn gán quyền cho nhiều người dùng cùng lúc, giúp việc quản lý và cập nhật quyền dễ dàng hơn. Thay vì gán chính sách cho từng người dùng, bạn có thể tạo nhóm theo vai trò hoặc phòng ban (ví dụ: Admins, Developers) và gắn các chính sách cần thiết cho các nhóm này. Cách tiếp cận này đơn giản hóa việc quản lý quyền, đặc biệt khi số lượng người dùng tăng.
Sử dụng vai trò AWS IAM cho truy cập chéo tài khoản cho phép bạn cấp quyền cho người dùng hoặc tài nguyên ở một tài khoản AWS để truy cập tài nguyên ở tài khoản khác mà không cần tạo người dùng IAM riêng trong tài khoản đích. Cách này tăng cường bảo mật nhờ thông tin xác thực tạm thời tự động hết hạn, giảm chi phí quản lý do không phải duy trì nhiều tài khoản người dùng và đơn giản hóa việc cấp, thu hồi quyền truy cập giữa các tài khoản.
Tìm hiểu thêm về AWS và kỹ thuật dữ liệu với các khóa học sau!
Khóa học
Khóa học
Khóa học
blog
Matt Crabtree
10 phút