AWS Identity and Access Management (IAM)

Policy

Định nghĩa các action được cho phép, bị từ chối đối với các resource cụ thể bằng Policy document (JSON). Tất cả các action mặc định đều là từ chối (Denied).

  • Inline Policy: Được tạo cùng User, Group hoặc Role (Identity). Không thể sử dụng chung với bất kì Identity khác. Một khi xoá Identity, Policy cũng bị xoá theo.
  • Managed Policy: Ngược lại với Inline.
  • Resource-based Policy: là 1 JSON policy document mà được attach vào resource. Có thể attach vào 1 IAM role.

Policy Evaluation

Role

Role là 1 định danh mà có (các) Policy cụ thể được gán, và được sử dụng cho application, service mà không cần tới định danh như 1 User. Khi acess bằng role, nó sử dụng security token service. và khi kết hợp với 1 role, security token service tao ra 1 credential ngắn hạn, và sẽ được gia hạn tự động. Role cũng có thể được sử dụng (assume) giữa các account AWS khác nhau.

Một role có Trust policy và Permissions Policy.

  • Sử dụng iam:PassRole để cấp quyền cho Principal hiện tại có quyền cấp Role cho Service, nhưng Service cũng cần có quyền AssumeRole trong Trust policy

Permissions Boundaries

Là giới hạn tối đa mà Role hoặc User có thể thực hiện được, chủ yếu là để hạn chế lại quyền của một user/role. Ví dụ như 1 user X có full quyền với IAM, nhưng lại không có quyền với các resource khác, khi đó user X có thể tạo ra các user khác và gán quyền admin, và login được. Permissions Boundaries trong trường hợp này có thể giới hạn quyền của các user tạo ra bởi user X chỉ có quyền bằng hoặc thấp hơn user X.

Security Token Service (STS)

Là service tạo ra 1 access ngắn hạn bằng cách sử dụng Role và Trust Policies. Khi service, application được cho phép trong Trust Policies của Role, 1 access token ngắn hạn sẽ được cấp phép cho sercice, application đó. STS sẽ tự động gia hạn token này trước khi hết hạn.

  • AssumeRole: Sử dụng role cùng/khác account 15-60 phút
  • AssumeRoleWithSAML: tạo credential cho user login bằng SAML
  • AssumeRoleWithWebIdentity: tạo credential cho user login bằng IdP (FB, Google, OpenID Connect, nhưng recommend sử dụng Cognito
  • GetSessionToken: Tạo credential cho user có MFA
    • Sử dụng điều kiện aws:MultiFactorAuthPresent:true trong policy nếu cần bắt buộc source call API có MFA
  • GetFederationToken: tạo Credential cho user Federation
  • GetCallerIdentity: Lấy thông tin IAM User/Role đang call
  • DecodeAuthorizationMessage

User

User có thể đăng nhập vào console, và thực hiện các thao tác khác thông qua access key, ssh key…

User có quyền truy cập các resource thông qua policy được attach cho user, hoặc thông qua policy của (các) group mà user được thêm vào.

Để user có thể đăng nhập và thực hiện thao tác trên AWS Management Console, cần cung cấp username, password, MFA token (optional)

Để user có thể sử dụng AWS CLI hoặc call API thông qua các Application, cần cung cấp Access key id, Secret access key

Một số authen khác

  • Signing Certificate: dùng cho EC2 SOAP
  • SSH key/ HTTPS Git credentials: dùng cho AWS CodeCommit
  • Keyspaces Credentials: dùng cho Amazon Keyspaces

Multi-Factor Authentication (MFA)

Có thể sử dụng Virtual MFA hoặc Physical MFA

Group

Là một group các user. Group có thể chứa các policy. Khi đó, tất cả các user trong group đều được apply policy đó.

Access Control Methods – RBAC & ABAC

Role-Based Access Controll (RBAC)

Một số job function policy mà AWS tạo sẵn:

  • Administrator
  • Billing
  • Database administrator
  • Data scientist
  • Developer power user
  • Network administrator
  • Security auditor
  • Support user
  • System administrator
  • View-only user

Attribute-Based Access Controll (ABAC)

Sử dụng attribute (tag…) để define access với resource.

Bài viết này được đăng trong AWS và được gắn thẻ , , .

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *