Hướng dẫn cài đặt AWS Temporary Credential với MFA

Lời nói đầu

Bạn là một người quản lý môi trường AWS của nhiều công ty, và nhiều tài khoản khác nhau. Tuy nhiên, số tài khoản bạn được khách hàng đưa cho có hạn và không thể chia sẻ qua lại giữa nhiều thành viên phát triển khác nhau. Việc tạo thêm cũng như cung cấp thông tin tài khoản là không cần thiết đối với việc phát triển phần mềm hay đơn giản chỉ là chạy ứng dụng có kết nối với AWS để test một vài module. Bên cạnh đó, việc chia sẻ thông tin Access Key và Security Key cho nhiều người là việc cấm kị trong bảo mật thông tin.

Nếu bạn đang gặp rơi vào trong hoàn cảnh này thì hãy sử dụng AWS Temporary Credentials. Chỉ bằng một câu lệnh đơn giản, bạn đã có trong tay AWS Temporary Credentials (Access Key và Secret Key) với thời gian hiệu lực được giới hạn mà không lo về lộ thông tin chính của tài khoản khách hàng cấp.

Bài viết lần này sẽ hướng dẫn cách cài đặt AWS Temporary Credential đối với tài khoản có sử dụng MFA để dễ dàng chia sẻ cho Team hoặc đối tượng cần sử dụng mà vẫn đảm bảo bảo mật thông tin tài khoản.

Nội dung bài bao gồm:

  • Cài đặt MFA cho User
  • Tạo AWS Credential tạm thời thông qua AWS-STS
  • Thực hiện cài đặt AWS Credential tạm thời
  • Thực hiện kiểm tra cài đặt

Để xem cách cài đặt môi trường trước khi thực hiện xin tham khảo bài Hướng dẫn cài đặt AWS Credential cơ bản.

Cài đặt MFA cho User

Tại thời điểm bài viết, AWS cung cấp cho người dùng 3 hình thức cài đặt MFA.

  • Virtual MFA devices : dùng phần mềm hoặc chương trình sinh có chức năng tương tự thiết bị MFA vật lý, có khả năng tạo ra 6 kí tự bảo mật theo thuật toán password dùng một lần hay a time-synchronized one-time password algorithm. Phần mềm liên quan đến hình thái này có thể nhắc tới là Google Authenticator, LastPass Authenticator và một số loại khác.
  • FIDO security key : thiết bị chuyên dụng được gắn qua công USB của máy tính. FIFO2 là một chuẩn chứng thực được tổ chức FIDO Alliance cung cấp.
  • Hardware MFA device : thiết bị phần cứng tạo có khả năng tạo ra 6 kí tự bảo mật theo thuật toán password dùng một lần hay a time-synchronized one-time password algorithm. Điển hình như Yubikey (do Ubico sản xuất), Tamper-evident (do Gemalto cung cấp) và một số loại khác.

Thông qua service IAM, người dùng có thể dễ dàng thực hiện cài đặt MFA (Multi-Factor Authentication).

Sau khi thực hiện cài đặt, để kiểm tra người dùng có thể truy cập lại vào AWS Console thông qua tài khoản vừa được cài đặt.

Tạo AWS Credential tạm thời thông qua AWS-STS

Thực hiện câu lệnh dưới đây để tạo AWS Temporary Credentials

aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

arn-of-the-mfa-device

Thông tin về thiết bị MFA đã được đính với tài khoản có dạng arn:aws:iam::<aws_acc_id>:mfa/<tài_khoản>. Người dùng có thể vào trong IAM Console để lấy thông tin này.

code-from-token

Là đoạn code bao gồm 6 kí tự được sinh ra trên thiết bị MFA đã được dính với tài khoản.

Kết quả câu lệnh

Sau khi thực hiện câu lệnh trên, AWS STS (Security Token Service) sẽ trả về kết quả như dưới đây.:

{
    "Credentials": {
        "SecretAccessKey": "secret-access-key",
        "SessionToken": "temporary-session-token",
        "Expiration": "expiration-date-time",
        "AccessKeyId": "access-key-id"
    }
}

Kết quả này chính là AWS Temporary Credentials được tạo ra bởi AWS STS. Theo mặc định thông tin này có hiệu lực trong vòng 12 giờ. Để điều chỉnh hay kéo dài thời hạn hiệu thực hãy sử dụng thêm option --duration-seconds với đơn vị đo là giây và phải nằm trong khoảng giá trị từ 900 (15 phút) - 129600 (36 tiếng).

Thực hiện cài đặt AWS Credential tạm thời

Để cài đặt AWS Credential tạm thời, người dùng có thể cài đặt ngay biến môi trường:

Với Windows:

set AWS_ACCESS_KEY_ID=<access key được sinh ra bới STS>
set AWS_SECRET_ACCESS_KEY=<secret key được sinh ra bởi STS>
set AWS_SESSION_TOKEN=<session token được sinh ra bởi STS>

Với Linux:

export AWS_ACCESS_KEY_ID=<access key được sinh ra bởi STS>
export AWS_SECRET_ACCESS_KEY=<secret key được sinh ra bởi STS>
export AWS_SESSION_TOKEN=<session token được sinh ra bởi STS>

Trong trường hợp đã cài đặt biến môi trường, có thể dùng lệnh "unset" (Linux) để xóa biến môi trường và "set" (Windows) giá trị về rỗng để xóa thông tin đã được cài đặt.

Ngoài ra, có thể dùng aws configuration --profile <tên profile> để đặt một profile chuyên dụng cho AWS Temporary Credential. Sau khi thực hiện câu lệnh, trong file credentials chỉ có thông tin Access Key và Secret Key, nên cần phải thêm thông tin AWS Session Token. Hãy chỉnh sửa file credentials như phía dưới.

[<tên_profile>]
aws_access_key_id = <access key được sinh ra bởi STS>
aws_secret_access_key = <secret key được sinh ra bởi STS>
aws_session_token = <session token được sinh ra bởi STS>

Thực hiện kiểm tra cài đặt

Để thực hiện kiểm tra cài đặt đã đúng, hãy thực hiện câu lệnh dưới đây

aws s3 ls

Trong trường hợp có sử dụng phương pháp tạo profile, hãy thực hiện câu lệnh dưới đây

aws s3 ls --profile <tên profile>

Tham khảo mở rộng

Để hiểu rõ hơn về AWS Security Token Service hay AWS STS hãy tham khảo tại đây.

Để hiểu rõ hơn về cơ chế GetSessionToken hãy tham khảo tại đây.

Leave a Reply

Your email address will not be published. Required fields are marked *