- vừa được xem lúc

Cách thức hoạt động của IRSA trên AWS EKS

0 0 17

Người đăng: Jen

Theo Viblo Asia

Đọc thêm bài viết tại đây: https://pixta.vn/irsa-tren-aws-eks

Giới Thiệu

IRSA là cách chính thức của AWS EKS để cho phép các pod chạy trong EKS truy vấn AWS API, sử dụng các quyền được config trong AWS IAM role. Khả năng config quyền truy cập vào AWS API trên mỗi Service Account hướng tới tối thiểu quyền hạn cho từng pod và tạo hệ thống an toàn hơn. Bài viết này sẽ phân tích thêm về nguyên lý hoạt động cơ bản của IRSA, giúp chúng ta hiểu được cách thức hoạt động của service này.

Nguyên lý hoạt động

Đây là một cụm EKS được đơn giản hóa, bên trong chúng ta có:

  • Pod ‘A’ chạy ứng dụng
  • Service Account ‘SA’ được mô tả qua annotation rằng nó muốn sử dụng IAM Role ‘X’

Pod ‘A’ và Service Account ‘SA’ với annotation trỏ tới a IAM Role ‘X

IAM Role ‘X’ có Trust Relationship chỉ tới

  • K8s Service Account ‘SA’ cần assume role ‘X’
  • K8s OIDC Provider của the EKS Cluster

AWS IAM Trust Relationship trỏ tới K8s OIDC Provider và Service Account

Service Accounts và Service Accounts Tokens

Khi tạo Service Account trong EKS, nó đồng thời tạo một Service Account Token

  • Service Account Token này được lưu trong K8s Secret trong cùng namespace
  • Token định dạng JWT (Json Web Token)

Gắn Service Account vào pod

Khi config Pod sử dụng Service Account, EKS sẽ:

  • Mount service account token JWT được lưu trong secret vào trong Pod
  • Thêm các biến ENV VARs sau vào trong Pod
AWS_ROLE_ARN=<IAM ROLE ARN>
AWS_WEB_IDENTITY_TOKEN_FILE=<PATH TO SERVICE ACCOUNT TOKEN>

ENV Vars and Token ‘SA-T’ được gắn vào Pod ‘A’

Request assume role

AWS SDK chạy trong ứng dụng sẽ lấy những ENV VARs trên để config. Nó sẽ gửi request tới AWS STS để yêu cầu assume role ‘X’ với request chứa service account token trong đó. Pod ‘A’ requests AWS STS cấp quyền IAM Role ‘X’

Pod ‘A’ requests AWS STS cấp quyền IAM Role ‘X’
Request chứa:

  • ARN của IAM Role ‘X’
  • JWT của Service Account ‘SA’

AWS STS sẽ sử dụng config trong Trust Relationship của IAM Role ‘X’ để:

  • Lấy key và config trong OIDC Discovery endpoint để xác thực service account token
  • Đảm bảo Service Account ‘SA’ được trust để asume Role ‘X’
    AWS STS xác thực JWT

Khi xác thực thành công

STS sẽ cấp security credentials của role ‘X’ cho ứng dụng chạy trong Pod ‘A’ Khi này ứng dụng có thể call tới AWS API để sử dụng các dịch vụ của AWS với những quyền được cấp.

Kết luận

Bài viết trên đã phân tích cách thức IRSA hoạt động và cách tương tác giữa các thành phần của AWS và K8S. Những kiến thức trên sẽ hữu ích cho bạn trong việc hiểu cấu hình để sửa lỗi service này trong công việc.

Bài viết được dịch từ: https://medium.com/@ankit.wal/the-how-of-iam-roles-for-service-accounts-irsa-on-aws-eks-3d76badb8942

Tìm hiểu thêm về cơ hội làm việc tại Pixta Vietnam

🌐 Website |🏠 Facebook | 🔖 LinkedIn |✉️ Email: recruit.vn@pixta.co.jp

Bình luận

Bài viết tương tự

- vừa được xem lúc

PDF Export, cẩn thận với những input có thể truyền vào

Giới thiệu. Dạo gần đây mình tình cờ gặp rất nhiều lỗi XSS, tuy nhiên trang đó lại có sử dụng dữ liệu người dùng input vào để export ra PDF.

0 0 66

- vừa được xem lúc

Giới thiệu về AWS Batch

Khi sử dụng hệ thống cloud service, điều chúng ta thường phải quan tâm đến không chỉ là hiệu suất hoạt động (performance) mà còn phải chú ý đến cả chi phí bỏ ra để duy trì hoạt động của hệ thống. Chắn hẳn là hệ thống lớn hay nhỏ nào cũng đã từng phải dùng đến những instance chuyên để chạy batch thực

0 0 143

- vừa được xem lúc

Tìm hiểu về AWS KMS

1. AWS KMS là gì. Ở KMS bạn có thể lựa chọn tạo symetric key (khóa đối xứng) hoặc asymetric key (khóa bất đối xứng) để làm CMK (Customer Master Key). Sau khi tạo key thì có thể thiết đặt key policy để control quyền access và sử dụng key.

0 0 66

- vừa được xem lúc

AWS VPC cho người mới bắt đầu

Tuần này, tôi trình bày lại những gì tôi đã học được về Virtual Private Cloud (VPC) của Amazon. Nếu bạn muốn xem những gì tôi đã học được về AWS, hãy xem Tổng quan về DynamoDB và Tổng quan về S3. VPC là gì. Những điều cần lưu ý:.

0 0 84

- vừa được xem lúc

AWS Essentials (Phần 6): Guildline SNS Basic trên AWS

Tiếp tục với chuỗi bài viết về Basic AWS Setting, chúng ta tiếp tục tìm hiểu tiếp tới SNS (Simple Notification Service). Đây là một service của AWS cho phép người dùng setting thực hiện gửi email, text message hay push notification tự động tới mobile device dựa trên event người dùng setting phía AWS

0 0 145

- vừa được xem lúc

Sử dụng Amazon CloudFront Content Delivery Network với Private S3 Bucket — Signing URLs

Trong nhiều trường hợp, thì việc sử dụng CDN là bắt buộc. Mình đã trải nghiệm với một số CDN nhưng cuối cùng mình lựa chọn sử dụng AWS CloudFront.

0 0 117