Mục lục
1.Giới thiệu.
IAM viết tắt của dịch vụ Identity and Access Management.
IAM có 4 nhóm chính đó là:
- User là người dùng, ví dụ công ty bạn có 5 dev và bạn muốn tạo tài khoản cho 5 dev này sử dụng thì bạn có thể tạo ra 5 User khác nhau rồi đưa password và username cho họ đăng nhập.
- Group là nhóm để phân nhóm các user với nhau, vì dụ bạn muốn phân thành 2 nhóm là dev và designer, mỗi nhóm này có những quyền hạn khác nhau.
- Role là một tập hợp chứa các quyền, ví dụ bạn muốn tạo 2 role là development role và production role để gán cho các user hoặc group thích hợp.
- Policy là đơn vị quan trọng nhất trong IAM, nó là đơn vị tế bào của các quyền, ví dụ như có policy
Administrator Access
,AmazonS3FullAccess
.
Trong 4 nhóm trên thì User và Group được gọi là Authentication
(xác thực), Policy được gọi là Authorization
.
2. Thiết lập IAM
Bạn nên thiết lập hết những biểu tượng chấm than ở hình trên.
2.1. IAM users sign-in link
Đây là link mà account sẽ đăng nhập vào aws, mặc định là một dãy số. Bạn có thể đổi IAM users sign-in link cho phù hợp.
Ấn vào Customize
và đổi dãy số đó thành tên bạn muốn:
Sau khi đổi:
2.2. Active MFA on your root account
Bạn cần cài đặt Multi-Factor Authentication (MFA) để tránh bị hacker dù có đánh cắp email và password cũng không đăng nhập được vào AWS của bạn.
Bạn nên tải app Google Authenticator cài trong máy điện thoại trước, sau đó quét mã QR code hình dưới.
Show QR code
và quét bằng điện thoại của bạn, MFA sẽ được lưu trong app Google Authenticator trên máy bạn, mở app đó lên và điền 2 số hiện thị trong đó vào MFA code 1
và MFA code 2
.
Xong, click vào Dashboard
và xem đã được tick xanh:
2.3. Create individual IAM users
Chọn Add user
:
Điền tên user và chọn cả 2 loại Access types
: Programmatic access
là key để có thể truy cập vào aws từ trong code, API,…, còn AWS Management Console access
là quyền để truy cập vào aws từ browser.
Nếu bạn muốn tạo user chuyên để request API, command line, đặt access key trong code,… thì chỉ cần chọn Programmatic access
. Còn nếu bạn muốn tạo user chỉ để thao tác trên browser thì chỉ cần chọn AWS Management Console access
.
Tạo group mà user đó thuộc về, VD tạo group tên là developers và cấp quyền AdministratorAccess
. Nếu bạn không gán quyền gì cho user thì user đó sẽ chỉ đăng nhập và không có quyền để làm gì hết.
Next liên tục và tạo user thành công:
Bạn có thể download .csv
để xem thông tin chi tiết của user mới tạo, có thể Send email
để mời người đó đăng nhập vào AWS Console. Email chỉ chứa thông tin của link đăng nhập (chính là cái link mới đổi phía trên) và tên tài khoản đăng nhập, password phải gửi riêng cho user đó chứ không được vào trong mail, khi user đăng nhập lần đầu, họ sẽ phải đổi password.
Vào Dashboard và xem đã được tick xanh chưa: Lúc tạo user tạo luôn group nên 2 tick xanh sẽ được đánh vào cùng lúc.
2.4. Apply an IAM password policy
Thiết đặt password policy:
Nếu không cần thiết bạn nên xoá Access key
của user, access key này nhằm mục đích có thể sử dụng cái tài nguyên aws từ code, API chứ không phải từ Console trên browser:
3. Tạo IAM Role
Ví dụ mình muốn tạo role là có thể sử dụng S3 trong EC2:
4. Một số loại role trong IAM.
- ECS Service-Linked role (SLR) – This role enables Amazon ECS to manage a variety of AWS resources associated with your application on your behalf. When using a Service, this role allows Amazon ECS to manage the load balancer (Classic Load Balancers, Application Load Balancers, and Network Load Balancers) and service discovery (with Route 53) associated with your service. When using task networking, this role allows Amazon ECS to attach and detach Elastic Network Interfaces (ENIs) to your tasks. This role is required when using AWS Fargate.
- Service Scheduler IAM role – Prior to the introduction of the ECS Service-Linked role (SLR), this role was used in conjunction with a Service to enable Amazon ECS to manage the load balancer associated with your service. If you want to use an Elastic Load Balancer (whether a Classic Load Balancer, an Application Load Balancer, or a Network Load Balancer) with your ECS service, you can use this role. Now that the ECS SLR is available you can use either of the two roles, but you may still wish to use this role if you want to restrict the permissions that are granted to Amazon ECS to cover specific load balancer resources.
- Auto Scaling IAM role – This role is used in conjunction with a Service and allows the Application Auto Scaling service to scale the desired count of your Service in or out.
- Task IAM role – This role can be used with any Task (including Tasks launched by a Service). This role is very similar to an EC2 instance profile, but allows you to associate permissions with individual Tasks rather than with the underlying EC2 instance that is hosting those Tasks. If you are running a number of different applications across your ECS cluster with different permissions required, you can use the Task IAM role to grant specific permissions to each Task rather than ensuring that every EC2 instance in your cluster has the combined set of permissions that any application would need.
- Task execution role – This role is required when using AWS Fargate and replaces the Container Instance IAM role, which is unavailable for the
FARGATE
launch type. This role enables AWS Fargate to pull your container images from Amazon ECR and to forward your logs to Amazon CloudWatch Logs.