CHƯƠNG 13 · AWS EKS & Terraform•BÀI 51 / 80

ECR, GitHub OIDC và IAM

CI publish image không cần lưu AWS key dài hạn.

Cloud◷ 4 phút đọc3/4 trong chương

Nắm bản chất

GitHub Actions có thể nhận OIDC token và assume scoped AWS IAM Role để push ECR. Trust policy phải giới hạn audience và subject/claims của đúng repository, branch hoặc environment. ECR repositories có thể bật immutable tags.

CI publish role chỉ cần quyền ECR tương ứng, không cần quyền deploy EKS, đọc RDS password hay quản trị VPC. Việc phân quyền theo bước làm giảm blast radius khi workflow bị sửa sai.

Luồng hoạt động

GitHub OIDC→AWS STS→ECR

Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?

Lệnh & cấu hình mẫu

permissions:
  id-token: write
  contents: read
steps:
  - uses: aws-actions/configure-aws-credentials@v6
    with:
      role-to-assume: ${{ vars.AWS_ECR_PUSH_ROLE_ARN }}
      aws-region: ap-southeast-1

Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.

Bài tập 10–20 phút

✳

Kiểm tra chính xác GitHub OIDC subject claim cho repository và AWS trust policy. Review permissions của role; xác minh pipeline chỉ push hai ECR repos dự kiến.

Lỗi dễ mắc

!

Đừng copy-paste trust policy repo:ORG/REPO:ref:refs/heads/main mà không xác minh claims hiện hành; repository subject formats có thể khác tùy cấu hình/thời điểm tạo.

Tự kiểm tra

Role push ECR có cần AdministratorAccess không?Xem đáp án ↗

Không. Chỉ cấp quyền upload/push cần thiết tới những ECR repositories xác định.

TÀI NGUYÊN ĐI KÈM

Học thêm qua lab

Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.

↓ Tải mã nguồn thực hành chương 13
NGUỒN CHÍNH THỨC

Đối chiếu tài liệu gốc

Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.

Mở tài liệu chính thức ↗