EN: Read in English
Dunia A2: Kunci & Pengawal
OIDC dari GitHub Actions
Anda akan belajar: benarkan satu workflow GitHub pinjam role AWS, tanpa kunci disimpan.
Teks BM belum disemak oleh penutur asli.
Disemak dengan AWS 2026-11 pada 1 Nov 2026
Masalahnya
Workflow GitHub Kedai Kancil mesti push image ke AWS. Anda sudah jumpa jawapannya dalam CI/CD Dunia C3: pas pelawat, OIDC (OpenID Connect): Runner tunjuk pas pelawat untuk satu job. Cloud semak pas itu dan pinjamkan kunci yang luput bila job tamat.. Kenapa ia lebih baik daripada kunci yang disimpan?
Pilih satu jawapan.
Tengok
Di pihak AWS ada tiga bahagian. Susun keseluruhan persediaan.
Langkah pertama di atas. Susun ikut turutan. Guna anak panah, atau seret.
- Dalam workflow, benarkan id-token: write
- Beri role itu polisi kebenaran yang kecil
- Buat role yang trust policynya namakan repo anda
- Tambah GitHub sebagai OIDC identity provider dalam IAM
- configure-aws-credentials tukar pas itu kepada kunci
Tengok
trust policy: Nota pada role yang kata siapa boleh pinjam: satu servis, pengguna, atau GitHub Actions. role itu semak pas. Ketik baris yang kata repo mana boleh pinjam role itu.
Ketik baris yang namakan repo.
0 daripada 1 dijumpai
Cuba
Setiap baris ialah nilai sub yang mungkin. Selamat untuk role deploy production, atau perlu dibaiki?
Leret ke kanan untuk bagus, ke kiri untuk perlu baiki. Atau guna butang.
repo:kedai-kancil/shop:environment:productionTeka
Anda cuba simpan trust policy yang subnya hanya *. Apa IAM buat?
Pilih satu jawapan.
Semak
Workflow sudah masuk, memakai role ci-deployer. Ia cuba padam seluruh rak image. Ramalkan.
Baca permintaan dan policy-nya. AWS akan kata Allow atau Deny?
Permintaan
- Siapa
- ci-deployer (sesi role)
arn:aws:sts::111122223333:assumed-role/ci-deployer/run-42 - Mahu buat
ecr:DeleteRepository- Pada
arn:aws:ecr:ap-southeast-5:111122223333:repository/kedai
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload", "ecr:PutImage" ], "Resource": "arn:aws:ecr:ap-southeast-5:111122223333:repository/kedai" } ]}Anda berjaya!
Kini anda boleh benarkan satu workflow GitHub pinjam role AWS, tanpa kunci disimpan.
Nak tahu lebih (pilihan)
Repo GitHub yang dibuat selepas 15 Julai 2026 letak id dalam nilai sub, seperti repo:kedai-kancil@123/shop@456:…. Salin format tepat dari dokumentasi repo anda.
Latihan sebenar (IAM percuma; pasang penggera bajet dahulu). Senarai bersihkan: role dan provider.
Misi sebenar
aws sts get-caller-identity
0 daripada 5 langkah siap · Tanda anda disimpan.
English
Kedai Kancil’s GitHub workflow must push an image to AWS. You met the answer in CI/CD World C3: a visitor badge, OIDC. Why is it better than a stored key?
On the AWS side there are three parts. Put the whole setup in order.
The role’s trust policy checks the badge. Tap the line that says which repo may borrow the role.
Each line is a possible sub value. Safe for a production deploy role, or needs work?
You try to save a trust policy whose sub is just *. What does IAM do?
The workflow is in, wearing role ci-deployer. It tries to delete the whole image shelf. Predict.
You can now let one GitHub workflow borrow an AWS role, with no stored keys.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Create a role for OIDC (GitHub) · Create an OIDC identity provider in IAM · GitHub: OIDC in Amazon Web Services · GitHub: OIDC reference (sub claim) · Pushing an image to Amazon ECR
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?