Cấu hình GitLab CI Runner sử dụng AWS OIDC

AWS OpenID Connect (OIDC) là một dịch vụ cho phép các ứng dụng của bên thứ ba sử dụng các thông tin chứng thực từ AWS Identity and Access Management (IAM) để đăng nhập vào các ứng dụng của bên thứ ba.

Để sử dụng AWS OIDC với GitLab CI, bạn cần cấu hình GitLab CI Runner để sử dụng AWS CLI để lấy mã thông báo (token) AWS OIDC. Sau đó, bạn có thể sử dụng mã thông báo này để đăng nhập vào GitLab CI và thực hiện các công việc như bình thường.

  1. Tạo một role IAM trên AWS và gán các quyền cần thiết cho role này để cho phép GitLab CI Runner lấy mã thông báo (token) AWS OIDC. Để làm điều này, bạn có thể làm theo các bước sau:
    • Truy cập vào trang IAM Console trên AWS.
    • Chọn “Roles” từ menu bên trái và nhấn nút “Create role”.
    • Chọn “Another AWS account” và nhập AWS account ID của GitLab CI.
    • Chọn “Next: Permissions” và chọn các quyền cần thiết cho role.
    • Chọn “Next: Tags” và nhập các tag nếu cần thiết.
    • Chọn “Next: Review” và nhập tên cho role, sau đó nhấn nút “Create role”.
  2. Tạo một Application Client trên AWS IAM và lấy Client ID của nó. Để làm điều này, bạn có thể làm theo các bước sau:
    • Truy cập vào trang IAM Console trên AWS.
    • Chọn “Identity providers” từ menu bên trái và chọn “Create Provider”.
    • Chọn “OpenID Connect” và nhập các thông tin cần thiết.
    • Nhập URL của GitLab CI vào “Audience”.
    • Sau khi tạo thành công, sao chép Client ID của provider.
  3. Thêm GitLab CI Runner vào Group AWS OIDC. Để làm điều này, bạn có thể làm theo các bước sau:
    • Truy cập vào trang IAM Console trên AWS.
    • Chọn “Identity providers” từ menu bên trái và chọn Identity provider bạn đã tạo trong bước 2.
    • Chọn “Add to group”.
    • Nhập tên của GitLab CI Runner vào trường “Search for groups” và chọn group cần thêm vào.
  4. Thêm một runner trên GitLab CI. Để làm điều này, bạn có thể làm theo các bước sau:
    • Truy cập vào trang GitLab CI và chọn project cần thêm runner.
    • Chọn “Settings” và chọn “CI/CD”.
    • Chọn “Runners” và nhấn nút “Set up a specific Runner manually”.
    • Nhập thông tin của runner và lưu lại.
  5. Trong file config.toml của runner, cấu hình AWS CLI để sử dụng role IAM và client ID vừa tạo. Bạn có thể sử dụng các biến môi trường của GitLab CI để chuyển đổi giá trị giữa các bước.
    • Thêm các thông tin IAM và client ID vào file config.toml của runner như sau:
[runners.aws]
access_key_id = "${AWS_ACCESS_KEY_ID}"
secret_access_key = "${AWS_SECRET_ACCESS_KEY}"
session_token = "${AWS_SESSION_TOKEN}"
region = "${AWS_REGION}"
role_arn = "${AWS_ROLE_ARN}"
web_identity_token_file = "/mnt"

Để lại một bình luận

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 *