1. Mở đầu
AWS SSO là dịch vụ giúp các user đăng nhập chỉ một lần để sử dụng nhiều dịch vụ khác nhau như AWS, Jenkins,…
Với việc chỉ đăng nhập một lần duy nhất, user cũng như người quản lý sẽ không phải quản lý nhiều user và mật khẩu khác nhau, giảm đi gánh nặng cho việc quản lý trong doanh nghiệp.
Thay vì sử dụng IAM User chỉ quản lý được các user trong AWS, bạn nên sử dụng AWS SSO để có thể quản lý được mọi dịch vụ khác nữa bên ngoài AWS.
Ví dụ công ty bạn có sử dụng CI-CD là jenkins, có sử dụng Slack, sử dụng Gmail thì bạn chỉ cần tạo một tài khoản duy nhất trên AWS SSO cho user là đủ.
AWS SSO hoàn toàn miễn phí như AWS Organization.
2. Cách cấu hình AWS SSO
- Vào AWS SSO và bật tính năng AWS SSO lên, khi sử dụng AWS SSO, yêu cầu bạn cũng phải bật tính năng sử dụng AWS Organization:
- Sau khi vào màn hình AWS SSO, bạn chọn tab Setting để xem cấu hình, mặc định Idp của bạn sẽ là
AWS SSO
, bạn có thể chọn sử dụngActive Directory (AD)
hoặcIdp SAML của bên thứ 3
nếu muốn:
- AWS SSO sẽ có các tab như sau:
Trong đó:
- Tab
AWS Accounts
là root account trong AWS Organization, chú ý là AWS organization có thể có nhiều root account, hình dưới đây liệ t kê tất cả các root account trong AWS Organization của mình khi chọn tabAWS Accounts
:
- Tab
Applications
là nơi chứa các dịch vụ của bạn như là Jenkins, Slack, Chatwork,…
- Tab
Users
là nơi chứa các user sử dụng AWS, Jenkins, Slack,… của bạn. Nếu chỉ sử dụng mỗi AWS thôi thì tab này cũng giống như nơi chứa IAM User vậy. - Tab
Groups
là nơi chứa các groups để nhóm các user với nhau, nếu chỉ sử dụng mỗi AWS thôi thì tab này cũng giống như nơi chứa IAM Group vậy.
Ví dụ mình muốn tạo một tài khoản cho Alice để có thể sử dụng Chatwork và Jenkins mà không cho sử dụng Jenkins:
- Vào tab
Users
tạo một tài khoản cho Alice
- Ấn Next: Groups để chọn Group cho user Alice, nếu chưa có group nào thì tạo group mới tại đây, ví dụ mình tạo group QA:
- Nhấn Add user để tới màn hình thành công, ở màn hình này bạn copy lại những nội dung đó để đưa cho Alice sử dụng:
- Alice sẽ vào
User portal URL
và đăng nhập vớiUsername
vàOne-time password
được cung cấp, lần đầu đăng nhập Alice sẽ phải đổi mật khẩu. Dù đăng nhập thành công nhưng Alice vẫn chưa thể sử dụng Slack và Chatwork được vì ta chưa add Alice vào bất kỳ AWS Account nào. - Vào tab
AWS Accounts
và chọn AWS account mà Alice sẽ thuộc về:
- Nhấn Assign users sau đó chọn user hoặc group, mình sẽ chọn group QA mà Alice đang nằm trong đó:
- Nhấn Next: permission set để thiết lập quyền cho group QA này, nếu chưa có permission thì ấn vào Create new permission để tạo mới. Mình sẽ tạo permission tên là QA-permissions và chỉ cho phép group QA này quyền S3ReadOnly:
Session duration
là thời gian session của Alice, sau khoảng thời gian đó, Alice sẽ bị logout ra và phải login lại.
- Nếu tạo permission mới như trên, bạn sẽ phải vào lại tab
AWS Accounts
để Assign User lại. - Sau khi Assign User thành công, Alice có thể vào và sử dụng AWS với quyền S3ReadOnly:
- Để Alice có thể sử dụng Chatwork và Slack, bên Chatwork và Slack bạn phải cấu hình cho chúng có thể sử dụng AWS SSO. Bài viết này chỉ trong khuôn khổ cấu hình AWS SSO nên cách cấu hình từng application để sử dụng AWS SSO thì bạn tìm hiểu thêm trên google.
Khi Alice muốn sử dụng AWS sẽ có 2 lựa chọn là Management console và Command line or programmatic access như hình trên.
Management console sẽ đưa Alice tới AWS console trên giao diện và sử dụng như bình thường. Còn khi chọn Command line or programmatic access, hướng dẫn sẽ đưa ra cho Alice cách thêm session key vào local máy để sử dụng:
Cứ sau 12 tiếng đồng hồ, là Alice sẽ phải lấy lại các token trên để có thể sử dụng CLI trên local máy.
Alice cũng có thể sử dụng AWS SSO CLI để tích hợp các token đó một cách dễ dàng mà không cần phải vào lấy các token trên, cách làm này thì bạn tham khảo ở https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html
Link tham khảo:
https://aws.amazon.com/single-sign-on/
Nguồn: Internet