[Phần 1] Các dịch vụ của Amazon Web Services (AWS): IAM (Identity and Access Management)

22/12/2020 118
CO-WELL Asia CODE-WELL

Hơn 14 năm hình thành và phát triển, AWS vẫn luôn giữ vững vị thế độc tôn của mình với tư cách là nền tảng đám mây toàn diện và được sử dụng rộng rãi nhất hiện nay.
Sau loạt bài viết về hệ thống chứng chỉ của AWS và kinh nghiệm ôn thi chứng chỉ AWS, Co-well Asia mang đến bạn loạt bài viết tiếp theo về các dịch vụ của AWS từ đơn giản đến chuyên sâu.

Vậy tại sao IAM lại là dịch vụ cần giới thiệu đầu tiên? Đơn giản là do ngay khi bắt đầu sử dụng AWS, IAM phải là khái niệm bạn hiểu rõ ràng nhất.

AWS IAM 01IAM (Identity and Access Management) là gì?

Hiểu một cách đơn giản, IAM (Identity and Access Management) hay Định dạng và Quản lý truy cập, là một dịch vụ cho phép chúng bạn kiểm soát truy cập một cách an toàn tới các tài nguyên của AWS.

  • Chia sẻ quyền truy cập vào AWS: Bạn có thể chia sẻ quyền truy cập vào AWS cho người khác mà không nhất thiết phải chia sẻ mật khẩu hay khóa truy cập.
  • Cấp quyền truy cập một cách chi tiết: Dễ dàng phân cấp quyền truy cập khác nhau cho những người dùng khác nhau. Bạn có thể chỉ định và giới hạn rõ ràng về quyền thao tác, hành động và tài nguyên người dùng được sử dụng.
  • Xác thực đa yếu tố (MFA): Bạn có thể thêm xác thực 2 bước vào tài khoản của mình hay tài khoản của người dùng khác để tăng cường tính bảo mật. Đây là tính năng Co-well khuyên mọi người thiết lập trong quá trình sử dụng AWS.
  • IAM được cung cấp hoàn toàn miễn phí trên AWS.

 

Các thành phần trong IAM

Khi đăng kí sử dụng AWS, AWS sẽ cung cấp cho bạn định danh tài khoản (AWS Account ID) là một dãy số có 12 ký tự, ví dụ: 123456789012. ID này là duy nhất và sẽ không trùng lặp với các tài khoản AWS khác. Sau đó, bạn sẽ đăng nhập với tư cách là Người dùng gốc (Root user) – người có mọi quyền truy cập và thao tác đến TOÀN BỘ các tài nguyên trong AWS từ thông tin thanh toán đến quyền thay đổi mật khẩu…

Chính vì lẽ đó, để tối ưu hóa mức độ bảo mật, AWS khuyên người dùng của mình không nên sử dụng tài khoản Root User để đăng nhập. Thay vào đó, bạn hãy tạo một tài khoản User khác để sử dụng cho lần đăng nhập sau hoặc cho người khác sử dụng chung tài khoản AWS – AWS Account ID.

Từng thành phần trong IAM sẽ được liệt kê chi tiết như sau:

  • User: có 2 loại là Root User và IAM User.
    • Root User: Theo như nhắc đến ở trên, đây là thông tin đăng nhập của chủ sở hữu tài khoản AWS. Tài khoản này có quyền truy cập cao nhất tới mọi tài nguyên.
    • IAM User: Tài khoản được tạo bởi Root User. Bạn có thể kiểm soát quyền truy cập của IAM User tới các tài nguyên.
  • Group: Là một nhóm gồm nhiều User. Đồng thời, một User cũng có thể thuộc nhiều Group.
  • Role: Là một tập hợp các quyền để thực hiện truy cập các tài nguyên của AWS mà bạn cần. Role là một sự ủy nhiệm tạm thời để giải quyết các công việc khác nhau với vai trò khác nhau
  • Policy: Một đối tượng liên kết với User, Group hay Role có nghĩa vụ định nghĩa quyền của từng chủ thể. Một policy là những file dưới dạng JSON được đính kèm trực tiếp vào User, Group hay Role.

AWS IAM 03

Policy sẽ có cấu trúc cơ bản như sau:

 

{
    "Version":"2012-10-17",
    "Statement":[
        {
            "Sid":"Stmt1571671788500",
            "Action":[
                "actionX"
            ],
            "Effect":"Allow",
            "Resource":"arn:aws:s3:::sample/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "27.67.190.119/32"
                    ]
                }
            }
        }
    ]
}

 

 

  • Version: Phiên bản của ngôn ngữ Policy sử dụng
  • Statement: Thành phần chính của Policy. Statement chứa một câu lệnh hay một mảng câu lệnh riêng lẻ.
    • Sid (Statement ID): Một ID tùy chọn cung cấp cho mỗi câu lệnh trong statement.
    • Effect: Chỉ định kết quả statement được cho phép hay từ chối (Allow / Deny).
    • Action: Mô tả một hay nhiều hành động cụ thể được phép hoặc từ chối.
    • Resource: chỉ định những tài nguyên được áp dụng trong các Action bởi định danh.
    • Condition: chỉ định các điều kiện bắt buộc để policy có hiệu lực.

Bạn có thể dễ dàng quản lý các thành phần trên tại mục Identity and Access Management (IAM) trên giao diện AWS Management Console.

AWS IAM 02

Let’s try it!

Bạn hãy thử tạo một user CHỈ có quyền xem các đối tượng trong AWS IAM từ IP ở nơi bạn tin tưởng.

Tham khảo các bước thực hiện theo như link bên dưới:

[Techsharing] Create simple IAM User 2

 

Kết luận

Hiểu một cách ngắn gọn về IAM thì đây là dịch vụ giúp bạn xác thực và cấp quyền sử dụng tài nguyên AWS một cách dễ dàng.

Nếu như bạn hiện đang làm việc trên môi trường AWS với khách hàng nước ngoài, đặc biệt là khách hàng Nhật – những người rất đề cao tính bảo mật, khi các thành viên trong dự án đòi hỏi quyền truy cập vào các dịch vụ của AWS thì hãy ghi nhớ nằm lòng những điều sau:

  1. Bật tính năng xác thực 2 bước (MFA) đối với IAM User.
  2. Chỉ cung cấp quyền ĐẦY ĐỦ TỐI THIỂU cho đối tượng tương ứng. Tránh các trường hợp không cẩn thận mà cấp ngay quyền FullAccess.
  3. Tuyệt đối không được chia sẻ thông tin đăng nhập cũng như Access key cho member khác ngoài dự án hoặc member không liên quan.
  4. Giới hạn truy cập với địa chỉ IP của công ty.

AWS IAM 04

Hy vọng những thông này sẽ giúp ích cho mọi người trong quá trình sử dụng và quản lý truy cập trong AWS. Hẹn mọi người trong những bài viết tiếp theo về các dịch vụ của AWS tại website của CO-WELL ASIA!

Theo: TàiTH@CO