Giả sử, sau một thời gian monitoring EC2 cho môi trường dev/test - được phép khởi tạo các Instance Family: T3, T4g, M5! Bạn thấy rằng, team dev thường xuyên sử dụng Instance Family là T3 với Instance Type là t3.small và t3.large.
Sau khi hội ý với Tech lead, với tinh thần cost optimization bằng least-privilege permissions, bạn tiếp tục tạo ra một Permissions policies mới cho môi trường dev/test, tránh các lỗi human-error trong việc tạo ra các instance có cấu hình như m5.4xlarge(16 vCPU, 64 GiB ram) mà có thể không dùng hết hiệu năng - gây lãng phí.
Tạo IAM Policy chỉ cho phép user khởi tạo EC2 với instance type: t3.small và t3.large
IAM
Policies
JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:148922931563:instance/*",
"Condition": {
"StringNotLike": {
"ec2:InstanceType": [
"t3.small",
"t3.large"
]
}
}
}
]
}
EC2_InstanceTypeRestrict
Restrict to all, except t3.small & t3.large
Thêm policy EC2_InstanceTypeRestrict vào group CostTest
EC2_InstanceTypeRestrict
.Kiểm tra policy của User
Lúc này, tại IAM User: TestUser, trong mục Policy Name bạn thấy có sự xuất hiện của policy EC2_InstanceTypeRestrict
Tại mục Attached via - Group CostTest, có nghĩa là các policy này được gán vào User thông qua group, chứ không phải được gán trực tiếp vào User.
-> Điều này thỏa Best pratice của AWS về việc quản lý quyền tập trung thông qua Group
Kiểm tra Permissions policies cho Instance Type: t3.small
EC2
Tại mục Name, nhập EC2_InstanceTypeRestrict
Tại mục Architecture, giữ nguyên giá trị 64-bit (x86)
t3.small
Kiểm tra Permissions policies cho Instance type: m5.4xlarge
EC2_m5.4xlarge
m5.4xlarge
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.large để kiểm tra tính hiệu quả permission policy: EC2_InstanceTypeRestrict