Giới hạn sử dụng EBS volume storage type

Giới hạn sử dụng EBS volume storage type

EBS volume type restriction implementation

  • Amazon Elastic Block Store (Amazon EBS) cung cấp block level storage volumes dùng cho EC2 instance, giúp cho việc chạy các ứng dụng của bạn với các block volume có tĩnh sẵn sàng 99.999%.

  • AWS cung cấp ổ SSD, HDD cho các volume: General Purpose SSD volumes, Provisioned IOPS SSD volumes, Throughput Optimized HDD volumes, Cold HDD volumes. Tìm hiểu thêm qua tài liệu: Amazon EBS volume types

EBS volume types comparison

  • Giả sử team dev, với nhu cầu sử dụng một cách đa năng, General Purpose SSD volumes thường xuyên được sử dụng với 2 loại là gp3gp2. Trong đó gp3 mới mức baseline IOPS là 3000 với chi phí chỉ 9,6 USD/100GB, rẻ hơn 2,4 USD/100GB so với gp2 mà baseline IOPS chỉ 300. AWS Pricing Calculator

EBS pricing comparison

  1. Tạo IAM Policy chỉ cho phép user khởi tạo EC2 với EBS volume: gp3

    • 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
    • Tại khung search 🔍, nhập EC2_InstanceTypeRestrict, Chọn EC2_InstanceTypeRestrict

    Locating the existing policy

    • Chọn Edit

    Editing the policy

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

    Clearing the policy 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 có quyền tạo EC2 với instance type: t3.small, t3.large với EBS volume gp3
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ec2:*",
                "Resource": "*"
            },
            {
                "Effect": "Deny",
                "Action": "ec2:RunInstances",
                "Resource": "arn:aws:ec2:*:148922931563:volume/*",
                "Condition": {
                    "StringNotLike": {
                        "ec2:VolumeType": "gp3"
                    }
                }
            },
            {
                "Effect": "Deny",
                "Action": "ec2:RunInstances",
                "Resource": "arn:aws:ec2:*:148922931563:instance/*",
                "Condition": {
                    "StringNotLike": {
                        "ec2:VolumeType": "gp3",
                        "ec2:InstanceType": [
                            "t3.small",
                            "t3.large"
                        ]
                    }
                }
            }
        ]
    }
    

    Policy JSON editor

    • Chọn Save changes

    Saving policy changes

  2. Kiểm tra Permissions policies cho Instance Type: t3.small và EBS volume gp3

    • Đăng nhập vào TestUser bằng thông tin mà bạn đã tạo ở bài lab 8.1, bước 4
    • Đảm bảo, bạn đang ở Region Singapore
    • Tại khung search 🔍, nhập EC2
    • Tại giao diện EC2, giữa trang, chọn Launch instance
    • Tại mục Name, nhập EC2_t3.small_gp3

    Naming EC2

    • Tại mục Architecture, giữ nguyên giá trị 64-bit (x86)

    • Tại mục Instance type, chọn ký hiệu tam giác, nhập t3.small

    • Tại mục key pair name, chọn ký hiệu tam giác, chọn Proceed without a key pair (Not recommended)

    Selecting instance type and key pair

    • Tại mục Configure storage, chọn gp3
    • Chọn launch instance
    • Noted: bạn có thể thấy IOPS đang là 3000 - với IOPS là một đơn vị đo biểu thị các hoạt động input/output mỗi giây

    Configuring storage with gp3

    • Chọn Instance ID vừa được tạo thành công

    Selecting the new instance

    • Chọn Storage, chọn volume ID

    Successful instance creation

    • Chúc mừng bạn đã tạo thành công EC2 với instance type là t3.small và EBS volume: gp3

    Volume details confirmation

  3. Kiểm tra Permissions policies cho Instance Type: t3.small và EBS volume gp2

    • Tại khung search 🔍, nhập EC2
    • Tại giao diện EC2, giữa trang, chọn Launch instance
    • Tại mục Name, nhập EC2_t3.small_gp2

    Launching another instance

    • Tại mục Architecture, giữ nguyên giá trị 64-bit (x86)

    • Tại mục Instance type, chọn ký hiệu tam giác, nhập t3.small

    • Tại mục key pair name, chọn ký hiệu tam giác, chọn Proceed without a key pair (Not recommended)

    Selecting instance configuration

    • Tại mục Configure storage, Chọn ký hiệu tam giác, chọn gp2
    • Chọn Advanced để xem chi tiết volume

    Selecting gp2 volume type

    • Chọn launch instance
    • Noted: bạn có thể thấy IOPS đang là 100/3000 - với IOPS là một đơn vị đo biểu thị các hoạt động input/output mỗi giây

    Launch attempt with gp2

    • Bạn đã nhận được phản hồi Instance launch failed (khởi tạo instance thất bại) - vì bạn không được ủy quyền. Điều này thỏa với permission policy: EC2_InstanceTypeRestrict mà bạn đã thay đổi ở bước 1.

    Launch failure confirmation

    ⚠️ Warning Policy này cũng sẽ chặn việc khởi chạy instance sử dụng các loại volume khác như io1 hoặc io2, mặc dù chúng cung cấp hiệu năng cao hơn, vì chi phí của chúng cao hơn đáng kể so với volume gp3..

  4. Bạn có thể tiến hành thực hiện lại bước 3, tạo EC2 với instance type t3.small và EBS volume: io1, io2. Để kiểm tra tính hiệu quả permission policy: EC2_InstanceTypeRestrict

    🔒 Security Note Việc triển khai IAM policy này thể hiện nguyên tắc quyền tối thiểu (least privilege) bằng cách chỉ cho phép sử dụng các tài nguyên có chi phí tối ưu cần thiết cho mục đích phát triển, đồng thời ngăn chặn việc vô tình khởi tạo các tài nguyên đắt tiền hơn.