Cho phép sử dụng dịch vụ theo Region cụ thể

Cho phép sử dụng dịch vụ EC2 chỉ trên Region Singapore

Region restriction policy implementation

  • Để quản lý chi phí bạn cần kiểm soát việc sử dụng tài nguyên AWS.

  • AWS cung cấp nhiều Region, do đó, tùy theo yêu cầu kinh doanh mà bạn có thể giới hạn quyền truy cập vào các dịch vụ AWS tùy theo Region.

  • Điều này có thể được dùng để đảm bảo việc sử dụng chỉ được phép ở một hoặc vài Region cụ thể, tiết kiệm chi phí hơn và giảm thiểu mức sử dụng cũng như chi phí liên quan, chẳng hạn như chi phí data transfer.

  • Ví dụ như end user (người dùng cuối) ở Việt Nam, bạn sẽ ưu tiên triển khai hệ thống của doanh nghiệp tại Region Singapore (ap-southeast-1) nơi có khoảng cách gần với Việt Nam hơn so với các AWS Region còn lại

  • Noted: bạn cần tối thiểu 2 IAM User để thực hiện bài lab này, tham khảo bài lab:QUẢN TRỊ QUYỀN TRUY CẬP VỚI AWS IAM (IDENTITY AND ACCESS MANAGEMENT)

  1. Tạo Policy trên User Admin

    • Trong AWS console, tại khung search, nhập IAM
    • Chọn dịch vụ IAM

    Accessing the IAM console

    • Tại bên trái màn hình, chọn Policies
    • Chọn Create policy

    Creating a new IAM policy

    • Tạo policy theo kiểu định dạng dữ liệu JSON thay vì Visual. Chọn JSON

    • Quét toàn bộ đoạn code hiện tại và bấm nút Delete

    Selecting JSON editor

    • Sao chép đoạn code sau vào khung Policy editor, Cuộn xuống dưới và chọn Next.
      • Với ý nghĩa: User chỉ có toàn quyền trên dịch vụ EC2 và chỉ tại Region Singapore
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": "ec2:*",
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "aws:RequestedRegion": "ap-southeast-1"
                    }
                }
            }
        ]
    }
    

    Entering the region restriction policy

    • Tại mục Policy name, nhập: RegionRestrict
    • Tại mục Description, nhập: EC2 access in ap-southeast-1 only
    • Cuộn xuống cuối trang và chọn Create policy

    Naming and creating the policy

    Creating policy

💡 Pro Tip Chính sách này cấp toàn quyền đối với EC2 (ec2:*), nhưng chỉ khi vùng (region) được yêu cầu là Singapore (ap-southeast-1). Mọi hành động EC2 thực hiện ở các region khác sẽ bị từ chối.

  1. Tạo Group(nhóm)

    • Trong IAM console, chọn User groups
    • Chọn Create group

    Creating an IAM group

    • Trong mục User group name, nhập CostTest

    Naming the IAM group

    • Tại mục Attach permissions policies - Optional, nhập vào khung search RegionRestrict (là policy mà bạn đã tạo ở bước 1)
    • Tích chọn biểu tượng ô vuông để chọn policy RegionRestrict
    • Chọn Create group

    Attaching the region restriction policy

    • Noted: bạn chú vào cột type, sẽ nhận ra, policy của chúng ta là loại Customer managed tức là policy được khởi tạo và quản lý bởi khách hàng.
      • Khác, type AWS managed tức policy được tạo và quản trị bởi AWS - và bạn không thể chỉnh sửa các policy loại này
  2. Tạo TestUser

    • Trong IAM console, chọn User
    • Chọn Create user

    Creating a new IAM user

    • Tại mục User name, nhập TestUser

    • Chọn Provide user access to the AWS Management Console - optional, tức nghĩa: cho phép User này truy cập vào giao diện quản trị AWS account

    • Chọn I want to create an IAM user, tức nghĩa: bạn muốn tạo IAM user

    • Chọn Autogenerated password, tức nghĩa: AWS sẽ tự động tạo password để bạn đăng nhập vào giao diện quản trị AWS account

    • Chọn Users must create a new password at next sign-in - Recommended, tức nghĩa: bạn phải tạo mật khẩu mới khi dùng User này để truy cập vào giao diện quản trị AWS account - cho lần đăng nhập sắp tới

    • Noted: trọng thực tế, ở vai trò quản trị cloud, cloud admin, bạn nên cấu hình theo các bước như trên nhằm đảm bảo việc bạn không thể biết được password để truy cập vào IAMUser mà bạn khởi tạo và bàn giao cho team member.

      • Điểu này, bắt buộc team member phải có trách nhiệm trên việc tương tác với tài nguyên trong AWS account bằng các quyền tối thiểu (least-privilege permissions) mà team member được trao thông qua IAMUser.
    • Chọn Next

    Configuring user access settings

    • Tại mục Permissions options, chọn Add user to group
    • Tại mục User groups, chọn group name: CostTest - mà bạn đã tạo ở bước 2
    • Chọn Next

    Adding user to the CostTest group

    • Tại mục Review and create, kiểm tra các thông tin và chọn Create user

    Reviewing and creating the user

    • Tại trang Retrieve Password, chọn Download .csv fiel để tải về các thông tin đăng nhập cần thiết của User.

    Downloading user credentials

💡 Pro Tip Bằng việc thêm User vào Group, User đã có quyền RegionRestrict. Việc này áp dụng theo Best Practice: quản trị quyền tập trung theo group thay vì theo user, tránh việc sót policy trong lúc thêm hoặc gỡ nhiều quyền cùng lúc với lượng User lớn.

  1. Kiểm thử quyền allow EC2 của Policy RegionRestrict tại region Singapore

    • Dùng thông tin vừa tải về để truy cập vào User mới tạo ở bước 2

    Signing in with the test user

    • Vì bạn đã chọn chức năng Users must create a new password at next sign-in - Recommended trong bước 3, nên AWS yêu cầu tạo password mới.

    Setting a new password

    • Tại AWS console, bạn kiểm tra và chắc chắn rằng bạn đang ở Region Singapore. Chọn EC2

    Accessing EC2 in Singapore region

    • Chọn Launch instance

    • Tại mục name, nhập EC2singapore

Launching an EC2 instance

- Tại mục Key pair (login), chọn biểu tưởng tam giác
- Chọn **Proceed without a key pair**
- Chọn **Launch instance**

ℹ️ Information Trong thực tế, để kết nối tới EC2 - bạn cần lựa chọn chức năng: create new key pair (tạo key pair mới) hoặc chọn các key đã có trong danh sách, tuy nhiên trong bài lab này, chúng ta chỉ cần test tính hiệu quả của policy nên không cần đăng nhập vào EC2.

Accessing key pair options

- **Kết quả**: EC2 được tạo thành công

Successfully created EC2 instance

  1. Kiểm tra quyền deny EC2 của Policy RegionRestrict tại region Tokyo

    • Chọn Region Tokyo
    • Tại mục name, nhập EC2tokyo

    Attempting to create an instance in Tokyo

    • Tại mục Key pair (login), chọn biểu tưởng tam giác

    • Chọn Proceed without a key pair

    • Chọn Launch instance

    • Kết quả: AWS không thể tạo EC2 -> bạn kiểm tra trong giao diện và thấy các thông tin tham chiếu như: AMI ID, instance type, VPC, subnet - đều không thể hiện được các giá trị cần thiết để AWS căn cứ vào đó mà tạo lập instance - vì bạn đang không được ủy quyền để thực hiện các hành động trên

    EC2 creation failure in Tokyo

    Permission error details

    Switching to Singapore region

  2. Kiểm tra quyền deny dịch vụ S3 của Policy RegionRestrict tại region Singapore

    • Chọn Region Singapore

    • Tại khung search, nhập s3, chọn S3

    • Chọn biểu tượng ☰ góc trái màn hình

    • Chọn General purpose buckets

    • Kết quả: hệ thống thể hiện: bạn không có quyền để list các bucket hiện có trong S3

    S3 access denied message

    • Chúc mừng bạn đã hoàn tất bài lab: với việc dùng User admin tạo policy cho User member chỉ được phép sử dụng dịch vụ EC2 tại Region Singapore