Quản lý IAM User và IAM Role
IAM User giúp cấp cho mỗi ứng dụng một Access Key riêng với đúng các quyền S3 cần thiết, định nghĩa trong policy JSON tương tự AWS IAM. Dùng IAM User khi vai trò của SubUser quá rộng so với nhu cầu.
IAM User và IAM Role chỉ khả dụng cho bucket trên cluster HCM-04. Trên các cluster khác, dùng SubUser để chia sẻ quyền truy cập giới hạn.
So sánh IAM User, Admin Access Key và SubUser
FPT Object Storage có ba nơi tạo thông tin xác thực S3. Các loại key này không thay thế được cho nhau, vì vậy hãy kiểm tra key được tạo từ đâu trước khi chia sẻ.
| Admin Access Key | IAM User Access Key | SubUser Access Key | |
|---|---|---|---|
| Cluster | Tất cả cluster | Chỉ HCM-04 | Tất cả cluster trừ HCM-04 |
| Phạm vi quyền | Toàn quyền trên tài khoản | Đúng những gì IAM Policy cho phép | Một vai trò (Read, Write, Read - Write hoặc Full) cho tất cả bucket, thu hẹp theo từng bucket bằng Bucket Policy |
| Giới hạn số key | 5 key mỗi Region | 2 key mỗi IAM User | 2 key mỗi SubUser |
Nếu project không nằm trên HCM-04 và bạn chỉ cần chia sẻ quyền truy cập giới hạn, SubUser dễ thiết lập hơn.
Xem danh sách IAM User
- Vào Object Storage, chọn Project và mở tab IAM User.
- Dùng nút chuyển phía trên để chuyển giữa hai chế độ xem IAM Users và IAM Roles. Tab mặc định mở ở IAM Users.
- Để tìm IAM User, nhập tên vào ô tìm kiếm.
Tab IAM User chỉ xuất hiện sau khi Project đã bật Object Storage trên HCM-04.
Tạo IAM User
- Ở chế độ xem IAM Users, nhấn Create IAM User.
- Nhập IAM User Name. Tên phải:
- dài 1–64 ký tự,
- chỉ chứa chữ cái, chữ số và
+ = , . @ _ -, - là duy nhất trong tài khoản. Tên không phân biệt chữ hoa chữ thường.
- Nhấn Create.
IAM User mới tạo chưa có quyền và chưa có Access Key. Gắn policy và tạo key trước khi sử dụng.
Gắn policy cho IAM User
Mỗi IAM User có đúng một policy JSON. Lưu policy mới sẽ thay thế hoàn toàn policy cũ và có hiệu lực ngay với mọi key của user đó.
-
Mở trang chi tiết của IAM User và chọn tab IAM Policy.
-
Nhấn Create IAM Policy. Trình soạn thảo mở ra với một mẫu có sẵn.
-
Chỉnh sửa policy. Ví dụ sau cấp quyền đọc và ghi trên một bucket:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowReadWriteOneBucket",
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject", "s3:ListBucket"],
"Resource": [
"arn:aws:s3:::YOUR_BUCKET_NAME",
"arn:aws:s3:::YOUR_BUCKET_NAME/*"
]
}
]
} -
Nhấn Save, rồi xác nhận thay đổi.
Một số quyền không thể cấp, bất kể policy khai báo gì:
- Bucket ngoài tài khoản luôn bị từ chối.
- Các thao tác quản lý định danh (
iam:*) bị chặn, kể cả qua action wildcard*. s3:PutBucketPolicy,s3:PutBucketAclvàs3:PutObjectAclluôn bị chặn.
Nếu một action cần dùng không hoạt động, có thể cluster chưa hỗ trợ action đó. Liên hệ bộ phận hỗ trợ FPT Cloud trước khi xử lý tiếp.
Để gỡ toàn bộ quyền của IAM User, mở tab IAM Policy và nhấn Delete Policy. User vẫn còn, nhưng mọi key của user mất quyền truy cập S3 ngay lập tức.
Tạo Access Key cho IAM User
Mỗi IAM User có tối đa 2 Access Key cùng lúc.
- Mở trang chi tiết của IAM User và chọn tab Access Key.
- Nhấn Generate Key. Hệ thống tạo Access Key và Secret Key.
- Sao chép cả hai giá trị và lưu ở nơi an toàn.
- Nhấn I've saved the secret key.
Secret Key chỉ hiển thị một lần. Nếu đóng panel trước khi sao chép, hãy xóa key và tạo key mới.
Key dùng được ngay với endpoint HCM-04. Mọi request đều bị từ chối cho đến khi IAM User có policy.
Xóa Access Key của IAM User
- Trong tab Access Key của IAM User, mở menu ở dòng của key và chọn Delete.
- Nhập
deletevà nhấn Delete.
Thao tác xóa có hiệu lực ngay và không thể hoàn tác. Nếu ứng dụng vẫn cần truy cập, hãy tạo key mới và cập nhật ứng dụng trước khi xóa key cũ.
Xóa IAM User
- Trong danh sách IAM User, mở menu ở dòng tương ứng và chọn Delete. Bạn cũng có thể dùng Delete IAM User ở mục Danger Zone trên trang chi tiết.
- Nhập
deletevà nhấn Delete. Hệ thống thu hồi mọi key của user, gỡ policy, rồi xóa user.
Bucket và dữ liệu không bị ảnh hưởng, vì chúng thuộc về tài khoản chứ không thuộc về một định danh.
Hệ thống không kiểm tra Bucket Policy trước khi xóa IAM User. Các statement khai báo user làm Principal sẽ không còn khớp. Nếu sau này tạo IAM User trùng tên, các statement cũ đó có thể áp dụng cho user mới. Dọn dẹp Bucket Policy trước khi dùng lại tên.
Quản lý IAM Role
IAM Role chứa một tập quyền dùng chung và danh sách IAM User được tin cậy để sử dụng role, nhờ đó không cần sao chép cùng một policy cho từng user.
Ở phiên bản này, Portal chưa hỗ trợ assume role hay lấy thông tin xác thực tạm thời từ role. Role chỉ dùng làm tham chiếu Principal: bạn có thể sao chép ARN của role vào Bucket Policy, nhưng bản thân role không cấp quyền truy cập S3 cho IAM User nào.
- Trong tab IAM User, chuyển sang chế độ xem IAM Roles và nhấn Create Role.
- Nhập Role Name, tuân theo cùng quy tắc như tên IAM User. Có thể chọn thêm các IAM Users được phép dùng role.
- Nhấn Create.
- Mở trang chi tiết của role, chọn tab Role Policy và gắn policy JSON. Định dạng và giới hạn giống policy của IAM User.
Để thay đổi danh sách user được tin cậy, mở tab Detail của role, đến thẻ IAM Users và nhấn Edit IAM Users. Lưu thay đổi sẽ thay thế toàn bộ danh sách.
Để xóa role, dùng Delete IAM Role ở mục Danger Zone trên trang chi tiết và nhập delete để xác nhận. Hệ thống gỡ role policy và quan hệ tin cậy, nhưng không xóa IAM User. Tương tự IAM User, bạn cần tự dọn dẹp các Bucket Policy khai báo ARN của role làm Principal.