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

        Lần đầu sử dụng AWS IAM

Bạn nên thiết lập hết những biểu tượng chấm than ở hình trên.

Đâ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:

    Đổi link đăng nhập vào AWS IAM

 Sau khi đổi:

    Đổi link đăng nhập AWS IAM

 

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.

       Thiết lập MFA trong AWS IAM

        Thiết lập MFA trong AWS IAM

 

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.

        Thiết lập MFA trong AWS IAM

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:

       Cài đặt MFA cho AWS IAM

2.3. Create individual IAM users

       Tạo IAM user trong aws

       Tạo IAM user trong aws

Chọn Add user :

     Tạo IAM user trong aws

Đ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 IAM trong aws

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.

        Tạo group IAM trong aws

Next liên tục và tạo user thành công:

       Tạo IAM user trong aws

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.

      Tạo IAM user trong aws

 

2.4. Apply an IAM password policy

Thiết đặt password policy:

     Thiết đặt password policy trong IAM aws

       Thiết đặt IAM aws

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:

        Xoá access key trong aws IAM

 

3. Tạo IAM Role

Ví dụ mình muốn tạo role là có thể sử dụng S3 trong EC2:

    Tạo role trong IAW aws

 

   Tạo role trong IAW aws

 

    Tạo role trong IAW aws

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.