全部产品
Search
文档中心

Container Registry:Gunakan komponen tanpa kata sandi untuk menarik gambar dari instans Container Registry (ACR) Edisi Perusahaan dalam akun yang sama

更新时间:Feb 07, 2026

Komponen tanpa kata sandi mengotomatiskan otentikasi untuk menarik gambar kontainer, sehingga menghilangkan kebutuhan untuk berulang kali mengonfigurasi imagePullSecrets. Topik ini menjelaskan cara menginstal, mengonfigurasi, dan menggunakan komponen tersebut, serta pertimbangan penting terkaitnya.

Cara kerja

Saat Anda menggunakan Container Registry (ACR) sebagai sumber gambar tanpa mengaktifkan penarikan anonim publik, kluster ACK harus menyediakan nama pengguna dan kata sandi untuk otentikasi setiap kali menarik gambar. Solusi umum adalah menyimpan kredensial tersebut dalam Secret. Namun, pendekatan ini memiliki kelemahan berikut:

  • Secret merupakan teks biasa yang dikodekan Base64, sehingga menimbulkan ancaman keamanan.

  • Anda harus menambahkan imagePullSecrets secara manual ke setiap beban kerja.

  • Secret tidak dapat digunakan lintas namespace.

Komponen tanpa kata sandi bekerja sebagai berikut:

  1. Komponen memperoleh kredensial sementara dari instans ACR.

  2. Komponen menyimpan kredensial tersebut dalam Secret.

  3. Komponen mengaitkan Secret tersebut dengan akun layanan yang ditentukan dalam konfigurasinya.

  4. Beban kerja yang menggunakan akun layanan tersebut secara otomatis menarik gambar menggunakan kredensial sementara yang tersimpan dalam Secret.

Komponen tanpa kata sandi dapat mengelola akun layanan di beberapa namespace sekaligus dan secara berkala memperbarui kredensial sementara sesuai konfigurasi. Hal ini mengurangi risiko kebocoran kredensial serta menghilangkan kebutuhan untuk menambahkan imagePullSecrets secara manual ke beban kerja. Komponen ini disediakan tanpa biaya tambahan.

image

Perbandingan komponen tanpa kata sandi

ACK menyediakan komponen aliyun-acr-credential-helper, yang tersedia dalam edisi managed dan self-managed. Anda hanya dapat menginstal satu edisi dalam satu waktu. Tabel berikut membandingkan kedua edisi tersebut.

Perbedaan

aliyun-acr-credential-helper (managed)

aliyun-acr-credential-helper (self-managed)

Versi kluster yang didukung

Kluster ACK yang dikelola, Kluster ACK Serverless, dan Kluster ACK Edge yang menjalankan Kubernetes 1.22 atau lebih baru

Kluster ACK yang dikelola dan Kluster khusus ACK yang menjalankan Kubernetes 1.20 atau lebih baru

Fitur

  • Tidak perlu pengelolaan mandiri

  • Mendukung penarikan gambar lintas akun menggunakan RRSA

  • Mendukung kueri log komponen

  • Mendukung penarikan gambar lintas akun menggunakan peran RAM worker, RRSA, atau Pasangan Kunci Akses

Untuk meningkatkan kluster, lihat Tingkatkan kluster secara manual.

Prasyarat

  • Versi kluster didukung oleh komponen tanpa kata sandi. Untuk informasi lebih lanjut, lihat tabel di atas.

  • Instans Container Registry (ACR) adalah instans Edisi Perusahaan.

    Penting
    • Komponen tanpa kata sandi hanya mendukung instans ACR Edisi Perusahaan dan instans ACR Edisi Personal yang dibuat pada atau sebelum 8 September 2024. Jika Anda tidak dapat menggunakan komponen tanpa kata sandi, lihat Bagaimana cara menggunakan imagePullSecrets?.

  • Anda telah memberikan izin kepada peran RAM yang digunakan oleh komponen tanpa kata sandi.

  • Konektivitas jaringan telah dibuat antara instans ACR Edisi Perusahaan dan kluster ACK.

    Konfigurasi konektivitas jaringan

    Sebelum menarik gambar, pastikan instans ACR Edisi Perusahaan dan kluster ACK dapat berkomunikasi serta nama domain terkait dapat diselesaikan dengan benar. Saat menarik gambar dari instans dalam akun yang sama, Anda dapat menggunakan salah satu metode berikut:

    • Kontrol akses VPC ACR: Jika instans ACR Edisi Perusahaan dan kluster ACK berada di wilayah yang sama, kluster ACK dapat mengakses instans ACR melalui VPC. Untuk informasi lebih lanjut, lihat Kontrol akses jaringan.

    • Koneksi peering VPC: Jika instans ACR dan kluster ACK tidak berada dalam VPC yang sama, Anda dapat membuat koneksi peering VPC untuk menghubungkan kedua VPC tersebut, sehingga memungkinkan kluster ACK mengakses instans ACR Edisi Perusahaan. Fitur koneksi peering VPC gratis jika VPC berada di wilayah yang sama dan dikenai biaya jika berada di wilayah berbeda. Untuk informasi lebih lanjut, lihat Penagihan. Untuk menggunakan fitur ini, Blok CIDR kedua VPC tidak boleh tumpang tindih. Jika tumpang tindih, Anda harus memodifikasi arsitektur jaringan yang ada.

      Prosedur koneksi peering VPC

      1. Hubungkan VPC ke instans ACR untuk resolusi titik akhir internal di wilayah yang sama

        Setelah Anda menghubungkan instans ACR Edisi Perusahaan ke VPC, Anda dapat mengakses instans tersebut dari VPC menggunakan nama domain internal. Setelah konfigurasi selesai, peroleh ID VPC dan alamat IP internal instans ACR Edisi Perusahaan.
      2. Peroleh nama domain dan alamat IP terkait instans ACR

        Peroleh nama domain dan alamat IP layanan otentikasi serta nama domain dan alamat IP Bucket OSS terkait yang digunakan untuk mengakses instans ACR Edisi Perusahaan.
      3. Buat koneksi peering VPC dan konfigurasi tabel rute

        Tambahkan entri rute yang mengarah ke VPC peer di masing-masing ujung koneksi peering VPC untuk mengaktifkan konektivitas privat antara VPC kluster ACK dan VPC instans ACR Edisi Perusahaan. Di ujung koneksi peering VPC kluster ACK, Anda juga perlu mengonfigurasi rute untuk alamat IP layanan otentikasi dan alamat IP Bucket OSS terkait.
      4. Selesaikan nama domain instans ACR untuk kluster ACK

        Gunakan metode seperti menambahkan resolusi DNS internal atau menggunakan skrip data kustom kelompok node untuk memodifikasi file /etc/hosts secara batch. Hal ini menyelesaikan nama domain instans ACR ke alamat IP internalnya untuk kluster ACK, sehingga lalu lintas dapat diteruskan melalui entri rute koneksi peering VPC ke VPC tempat instans ACR terhubung.
    • Internet: Jika instans ACR Edisi Perusahaan dan kluster ACK memiliki akses Internet, Anda dapat mentransfer gambar melalui Internet. Untuk informasi lebih lanjut, lihat Konfigurasi kontrol akses publik untuk instans ACR dan Aktifkan akses Internet untuk kluster.

Menggunakan Komponen tanpa kata sandi terkelola

Langkah 1: Instal komponen

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, klik Add-ons.

  3. Pada halaman Add-ons, pilih tab Security. Temukan kartu aliyun-acr-credential-helper (Managed) lalu klik Install.

  4. Pada halaman Install aliyun-acr-credential-helper, Anda dapat melihat konfigurasi AcrInstanceInfo dan opsi lainnya. AcrInstanceInfo berisi konfigurasi untuk setiap instans ACR yang dikaitkan dengan komponen. Opsi lainnya merupakan pengaturan umum komponen. Jika Anda tidak perlu mengubah namespace atau akun layanan yang dipantau komponen, pertahankan pengaturan default.

    Setelah instalasi, Anda dapat memperbarui konfigurasi komponen. Pada halaman Add-ons, klik Configuration pada kartu aliyun-acr-credential-helper (Managed).

    image

    Konfigurasi instans ACR terkait:

    AcrInstanceInfo

    Deskripsi

    InstanceId

    ID instans ACR. Anda dapat memperoleh ID tersebut di Konsol Container Registry.

    Penting

    Biarkan parameter ini kosong untuk instans ACR Edisi Personal. Parameter ini wajib diisi untuk instans ACR Edisi Perusahaan.

    regionId

    ID wilayah instans ACR. Anda dapat memperoleh ID wilayah tersebut di Konsol Container Registry.

    Penting

    Parameter ini wajib diisi saat Anda menarik gambar lintas wilayah.

    domains

    Nama domain yang digunakan plug-in tanpa kata sandi untuk mengakses instans ACR. Secara default, semua nama domain (publik dan VPC) dari instans ACR yang ditentukan akan digunakan. Untuk menentukan nama domain tertentu, pisahkan dengan koma (,).

    Konfigurasi untuk menarik gambar lintas akun

    Berlaku untuk skenario penarikan gambar lintas akun. Jika Anda tidak memiliki kebutuhan ini, biarkan bidang kosong.

    assumeRoleARN

    Tidak diperlukan untuk menarik gambar dalam akun yang sama. Untuk menarik gambar lintas akun, lihat Tarik gambar lintas akun.

    expireDuration

    rrsaRoleARN

    rrsaOIDCProviderRoleARN

    Konfigurasi komponen

    Item konfigurasi

    Deskripsi

    Enable RRSA

    Pilih opsi ini untuk mengaktifkan RRSA. Ini tidak diperlukan untuk menarik gambar dalam akun yang sama. Untuk menarik gambar lintas akun, lihat Tarik gambar lintas akun.

    watchNamespace

    Namespace tempat Anda ingin menarik gambar tanpa kata sandi. Nilai default adalah default. Nilai all berarti semua namespace. Untuk menentukan beberapa namespace, pisahkan dengan koma (,). Kami menyarankan Anda mengonfigurasi namespace bisnis Anda. Hindari mengonfigurasi all atau namespace yang terkait dengan komponen sistem untuk mencegah masalah saat menarik gambar komponen sistem.

    serviceAccount

    Akun layanan yang diterapkan oleh komponen tanpa kata sandi versi managed. Nilai default adalah Default. Nilai Default berlaku untuk akun layanan default di semua namespace yang ditentukan. Tanda bintang (*) berlaku untuk semua akun layanan di namespace yang ditentukan. Untuk mengonfigurasi beberapa akun layanan, pisahkan dengan koma (,).

    expiringThreshold

    Ambang batas kedaluwarsa kredensial komponen. Nilai default adalah 15m.

    notifyEmail

    Tidak perlu dikonfigurasi.

Langkah 2: Tarik gambar

Setelah menginstal dan mengonfigurasi komponen tanpa kata sandi, tentukan akun layanan yang dikaitkan dengan komponen tersebut saat membuat beban kerja untuk menarik gambar tanpa kata sandi.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      serviceAccountName: my-service-account # Tentukan akun layanan yang dikaitkan dengan komponen tanpa kata sandi.
      containers:
      - name: nginx
        image: "******.cn-hangzhou.cr.aliyuncs.com/nginx/nginx:latest" # Tentukan alamat gambar ACR.
        ports:
        - containerPort: 80

Gunakan komponen tanpa kata sandi versi self-managed

Langkah 1: Instal komponen

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, klik Add-ons.

  3. Pada halaman Add-ons, klik tab Security. Temukan aliyun-acr-credential-helper lalu klik Install.

  4. Pada halaman Parameter Settings, pilih mode izin untuk komponen dari daftar drop-down tokenMode, lalu klik OK. Setelah instalasi, konfigurasikan komponen sebelum menarik gambar. Untuk informasi lebih lanjut, lihat Langkah 2: Ubah konfigurasi komponen (tambahkan instans ACR).

    tokenMode

    Deskripsi

    auto

    (Direkomendasikan) Komponen mendeteksi waktu pembuatan kluster dan secara otomatis menentukan mode izin. Untuk kluster yang dibuat sebelum 3 April 2023, digunakan mode workerRole. Untuk kluster yang dibuat pada atau setelah 3 April 2023, digunakan mode managedRole.

    Penting

    Versi aliyun-acr-credential-helper yang dirilis setelah 3 April 2023 menyediakan item konfigurasi untuk menyesuaikan peran RAM yang digunakan komponen. Untuk informasi lebih lanjut, lihat [Perubahan Produk] Pengumuman tentang perubahan izin yang digunakan aliyun-acr-credential-helper.

    managedRole

    Komponen menggunakan peran AliyunCSManagedAcrRole, yang diberikan izin di bagian Prasyarat, untuk memperoleh izin.

    workerRole

    Komponen menggunakan peran RAM worker kluster untuk memperoleh izin. Anda harus memberikan izin tertentu kepada peran RAM worker tersebut.

    Pilih workerRole sebagai mode komponen

    Saat Anda memilih workerRole sebagai mode izin, peran RAM worker kluster harus memiliki izin berikut. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Kelola izin untuk peran RAM.

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "cr:GetAuthorizationToken",
                    "cr:ListInstanceEndpoint",
                    "cr:PullRepository"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
    Penting

    Pilih mode ini untuk menarik gambar lintas akun menggunakan asumsi peran.

Langkah 2: Ubah konfigurasi komponen (tambahkan instans ACR)

Setelah menginstal komponen tanpa kata sandi, Anda harus mengonfigurasi ConfigMap acr-configuration untuk menambahkan instans ACR sebelum menarik gambar. Anda dapat melakukannya melalui konsol atau menggunakan kubectl.

Konsol

  1. Pada halaman Clusters, klik nama kluster yang ingin diubah. Di panel navigasi kiri, pilih Configurations > ConfigMaps.

  2. Pada halaman ConfigMaps, pilih kube-system dari daftar drop-down Namespace. Lalu, klik ConfigMap acr-configuration dan modifikasi konfigurasi sesuai tabel berikut.

    Konfigurasi komponen

    Deskripsi

    watch-namespace

    Namespace tempat Anda ingin menarik gambar tanpa secret. Nilai default adalah default. Nilai all memungkinkan Anda menarik gambar dari semua namespace tanpa secret. Untuk mengonfigurasi beberapa namespace, pisahkan dengan koma (,). Kami menyarankan Anda menentukan namespace bisnis Anda. Hindari menentukan all atau namespace yang terkait dengan komponen sistem kluster untuk mencegah masalah saat menarik gambar komponen sistem kluster.

    acr-api-version

    Pertahankan nilai default.

    expiring-threshold

    Ambang batas kedaluwarsa kredensial komponen. Nilai default adalah 15m (15 menit).

    acr-registry-info

    Array informasi instans untuk gambar kontainer, dalam format string YAML multi-baris. Setiap instans dikonfigurasi sebagai tripel.

    • instanceId: ID instans ACR. Anda dapat memperoleh ID tersebut di Konsol Container Registry.

      Penting

      Biarkan parameter ini kosong untuk instans ACR Edisi Personal. Parameter ini wajib diisi untuk instans ACR Edisi Perusahaan.

    • regionId: ID wilayah instans ACR. Anda dapat memperoleh ID wilayah tersebut di Konsol Container Registry.

      Penting

      Parameter ini wajib diisi saat Anda menarik gambar lintas wilayah. Lihat contoh konfigurasi di bawah.

    • domains: Nama domain yang digunakan plug-in tanpa kata sandi untuk mengakses instans ACR. Secara default, semua nama domain instans ACR di instanceId dimasukkan. Untuk menentukan nama domain tertentu, pisahkan dengan koma (,).

    Contoh konfigurasi untuk penarikan lintas wilayah

    Saat Anda menggunakan beberapa instans ACR di wilayah berbeda, Anda harus menentukan ID dan wilayah untuk setiap instans ACR.

    data:
        service-account: "default"
        watch-namespace: "all"
        expiring-threshold: "15m"
        notify-email: "c*@aliyuncs.com"
        acr-registry-info: |
          - instanceId: "cri-instanceId"
            regionId: "cn-beijing"
          - instanceId: "cri-instanceId"
            regionId: "cn-hangzhou"      

    service-account

    Akun layanan yang dikaitkan dengan komponen tanpa kata sandi. Pisahkan beberapa akun layanan dengan koma (,). Nilai default mengaitkan komponen dengan akun layanan default di setiap namespace yang ditentukan. Nilai "*" mengaitkan komponen dengan semua akun layanan di namespace yang ditentukan.

kubectl

  1. Jalankan perintah berikut untuk mengedit acr-configuration berdasarkan deskripsi konfigurasi di bawah.

    kubectl edit cm acr-configuration -n kube-system

    Kunci konfigurasi

    Kunci item konfigurasi

    Nilai konfigurasi

    service-account

    Menerapkan komponen tanpa kata sandi ke akun layanan yang ditentukan.

    Nilai default adalah default.

    Catatan

    Untuk menentukan beberapa akun layanan, pisahkan dengan koma (,). Tanda bintang ("*") berlaku untuk semua akun layanan di namespace yang ditentukan.

    acr-registry-info

    Array informasi instans untuk gambar kontainer, diformat sebagai string YAML multi-baris. Setiap instans dikonfigurasi sebagai tripel.

    Catatan

    Informasi instans tripel mencakup:

    • instanceId: ID instans. Wajib diisi untuk instans Edisi Perusahaan.

    • regionId: Opsional. Nilai default adalah wilayah lokal.

    • domains: Opsional. Secara default, semua nama domain instans digunakan. Untuk menentukan nama domain tertentu, pisahkan dengan koma (,).

    Contoh konfigurasi untuk instans ACR Edisi Perusahaan:

    - instanceId: <cri-instanceId>
      regionId: "cn-hangzhou"
      domains: "xxx.com,yyy.com"

    watch-namespace

    Namespace tempat Anda ingin menarik gambar tanpa kata sandi.

    Nilai default adalah default. Nilai all berarti semua namespace. Untuk menentukan beberapa namespace, pisahkan dengan koma (,).

    Catatan

    Kami menyarankan Anda hanya mengonfigurasi namespace bisnis Anda. Hindari mengonfigurasi all atau namespace yang terkait dengan komponen sistem untuk mencegah masalah saat menarik gambar komponen sistem.

    expiring-threshold

    Ambang batas kedaluwarsa kredensial yang di-cache secara lokal.

    Nilai default adalah 15m (15 menit).

Langkah 3: Tarik gambar

Setelah menginstal dan mengonfigurasi komponen tanpa kata sandi, tentukan akun layanan yang dikaitkan dengan komponen tersebut saat membuat beban kerja untuk menarik gambar tanpa kata sandi.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      serviceAccountName: my-service-account # Tentukan akun layanan yang dikaitkan dengan komponen tanpa kata sandi.
      containers:
      - name: nginx
        image: "******.cn-hangzhou.cr.aliyuncs.com/nginx/nginx:latest" # Tentukan alamat gambar ACR.
        ports:
        - containerPort: 80

FAQ

Bagaimana cara mengaktifkan fitur untuk menggunakan akun layanan segera setelah pembuatan?

Penting

Untuk mengaktifkan penggunaan akun layanan segera setelah pembuatan, Anda harus meningkatkan komponen tanpa kata sandi ke v23.02.06.1-74e2172-aliyun atau lebih baru.

Saat diaktifkan, komponen tanpa kata sandi memantau perubahan akun layanan di kluster menggunakan webhook. Saat akun layanan baru dibuat, komponen segera menyuntikkan Secret tanpa kata sandi ke dalamnya. Fitur ini berguna dalam skenario di mana akun layanan harus digunakan segera setelah pembuatan, seperti saat menerapkan Helm Chart yang membuat akun layanan dan deployment secara bersamaan. Karena fitur ini memengaruhi kinerja komponen, kami tidak merekomendasikan mengaktifkannya dalam skenario lain.

Komponen managed

Anda harus menginstal komponen acr-credential-helper-webhook di kluster:

  1. Pada halaman Clusters ACK, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.

  2. Pada halaman Add-ons, pilih tab Security. Temukan kartu acr-credential-helper-webhook (Managed) lalu klik Install.

Komponen self-managed

Untuk mengaktifkan fitur ini, tambahkan bidang berikut ke acr-configuration:

data:
  webhook-configuration: |
    enable: true
    failure-policy: Ignore
    timeout-seconds: 10

Item konfigurasi

Deskripsi

enable

Menentukan apakah akan mengaktifkan fitur webhook.

  • true: Aktifkan.

  • false: Jangan aktifkan.

failure-policy

Kebijakan penanganan akun layanan saat fitur ini mengalami pengecualian.

  • Ignore: Mengabaikan pengecualian. Akun layanan dibuat secara normal, tetapi Secret untuk menarik gambar mungkin tidak dilampirkan.

  • Fail: Menghentikan pembuatan akun layanan jika terjadi pengecualian. Ini tidak direkomendasikan karena dapat menyebabkan deployment bisnis gagal.

Penting

Karena keterbatasan API Server kluster, jika timeout-seconds diatur ke 15, failure-policy diatur ke Fail, dan 10 akun layanan dibuat terus-menerus per detik, pembuatan akun layanan mungkin gagal.

timeout-seconds

Periode timeout untuk permintaan pembuatan akun layanan tunggal untuk fitur ini. Jika periode timeout terlampaui, sistem merespons berdasarkan konfigurasi failure-policy. Nilai default adalah 10. Satuan adalah detik (s).

Mengapa penarikan gambar masih gagal setelah komponen tanpa kata sandi dikonfigurasi?

Kemungkinan penyebabnya adalah konfigurasi komponen tanpa kata sandi yang salah, seperti:

  • Informasi instans dalam komponen tanpa kata sandi tidak sesuai dengan instans ACR.

  • Alamat gambar yang digunakan untuk menarik tidak sesuai dengan nama domain dalam informasi instans komponen.

Ikuti langkah-langkah dalam topik ini untuk memecahkan masalah tersebut.

Jika komponen telah dikonfigurasi dengan benar tetapi penarikan tetap gagal, masalahnya mungkin berasal dari konflik antara bidang imagePullSecrets yang ditentukan secara manual dalam YAML beban kerja dan komponen tanpa kata sandi. Untuk mengatasinya, hapus bidang imagePullSecrets secara manual, lalu hapus dan buat ulang pod tersebut.

Bagaimana cara menggunakan imagePullSecrets?

Instans ACR Edisi Personal yang dibuat pada atau setelah 9 September 2024 tidak mendukung komponen tanpa kata sandi. Untuk instans ACR Edisi Personal baru, kami menyarankan menyimpan nama pengguna dan kata sandi logon dalam Secret dan mereferensikannya di bidang imagePullSecrets.

Penting
  • Komponen tanpa kata sandi tidak dapat digunakan secara bersamaan dengan bidang imagePullSecrets yang ditentukan secara manual.

  • Secret harus berada di namespace yang sama dengan beban kerja.

Contoh penggunaan imagePullSecrets

Jalankan perintah berikut dan ganti parameter dengan milik Anda sendiri untuk membuat Secret dari nama pengguna dan kata sandi.

kubectl create secret docker-registry image-secret-1 \
  --docker-server=<registry-server> \
  --docker-username=<name> \
  --docker-password=<password> \
  --docker-email=<email>

Menggunakan kunci dalam beban kerja

apiVersion: apps/v1
kind: Deployment 
metadata:
  name: nginx-test
  namespace: default 
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx 
    spec:
      imagePullSecrets:
      - name: image-secret-1  # Gunakan Secret yang dibuat pada langkah sebelumnya.
      containers:
      - name: nginx 
        image: <acrID>.cr.aliyuncs.com/<repo>/nginx:latest  # Ganti dengan tautan ACR.

Referensi