All Products
Search
Document Center

Container Compute Service:Pull ACR images without a password

Last Updated:Jun 21, 2026

Container Compute Service (ACS) mendukung penarikan gambar dari Container Registry (ACR) tanpa kata sandi untuk meningkatkan efisiensi dan keamanan. Topik ini menjelaskan cara menarik gambar ACR tanpa kata sandi di kluster ACS.

Informasi latar belakang

Container Registry (ACR) menyediakan hosting aman dan distribusi efisien artefak cloud native di berbagai edisi, termasuk ACR Personal Edition dan ACR Enterprise Edition. Untuk informasi selengkapnya, lihat Pengenalan Container Registry (ACR). ACS menyediakan metode konfigurasi terpadu untuk menarik gambar ACR tanpa kata sandi di semua edisi ACR.

Dengan mengonfigurasi akses tanpa kata sandi untuk kluster ACS, ACS secara otomatis menyuntikkan informasi autentikasi untuk gambar ACR saat membuat instans. Hal ini menyederhanakan proses pembuatan instans dan mengurangi risiko eksposur kata sandi, sehingga meningkatkan keamanan.

Catatan

Gambar Docker, repositori yang di-host sendiri, dan gambar non-ACR lainnya tidak mendukung penarikan tanpa kata sandi.

Prasyarat

Sebelum mengonfigurasi penarikan gambar ACR tanpa kata sandi di kluster ACS, selesaikan tugas-tugas berikut:

  1. Buat kluster ACS. Untuk informasi selengkapnya, lihat Buat kluster ACS.

  2. Anda telah membuat instans ACR dan mengonfigurasi repositori serta gambarnya.

  3. Jika Anda menggunakan instans ACR Enterprise Edition, konfigurasikan metode aksesnya.

    Instans ACR Enterprise Edition yang baru dibuat secara default dalam keadaan terputus. Anda harus mengonfigurasi kebijakan ACL yang sesuai sebelum mengakses instans melalui Internet atau virtual private cloud (VPC).

    • Akses Internet: Setelah mengaktifkan akses jaringan publik, Anda dapat langsung mengakses gambar instans ACR Enterprise Edition menggunakan nama domain publik (lintas domain didukung). Untuk informasi selengkapnya, lihat Konfigurasi kontrol akses jaringan publik.

    • Akses VPC: Untuk mengakses instans ACR Enterprise Edition melalui VPC, aktifkan otorisasi yang diperlukan. Untuk informasi selengkapnya, lihat Konfigurasi kontrol akses VPC.

Cara kerja

Komponen tanpa kata sandi menarik gambar privat dengan membaca konfigurasi konsol Anda. Setelah Anda mengonfigurasi komponen tersebut, komponen secara otomatis membuat Secret di kluster dan mengaitkannya dengan ServiceAccount yang ditentukan dalam konfigurasi. Pod apa pun yang menggunakan ServiceAccount ini secara otomatis menggunakan Secret yang dihasilkan oleh komponen tanpa kata sandi untuk menarik gambar, sehingga mencapai penarikan gambar tanpa kata sandi.

Instal dan konfigurasi komponen tanpa password

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

  2. Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.

  3. Di halaman Add-ons, pilih tab Security. Temukan aliyun-acr-credential-helper dan klik Install.

  4. Di kotak dialog Parameters, klik Add di samping AcrInstanceInfo untuk menambahkan beberapa entri instans ACR. Gunakan contoh konfigurasi berikut, lalu klik OK.

    1. Tambahkan AcrInstanceInfo.

      Catatan

      Skenario default dikonfigurasi sebagai berikut:

      • Untuk menyinkronkan instans ACR Personal Edition, gunakan konfigurasi default AcrInstanceInfo.

      • Untuk menyinkronkan instans ACR Enterprise Edition, masukkan instanceID dan biarkan bidang lain pada nilai default-nya.

      Parameter key

      Configuration Item Key Description

      Value

      instanceID

      ACR instance ID.

      Temukan instans Anda di Container Registry.

      • Enterprise Edition: Di Instance , temukan Instance ID. Nilainya adalah string yang dimulai dengan cri-.

      • Personal Edition: Biarkan bidang ini kosong untuk mengaktifkan penarikan tanpa kata sandi untuk Personal Edition.

      Nilai default: kosong (mengonfigurasi instans Personal Edition di wilayah saat ini).

      regionID

      Region ID of the ACR instance.

      Region ID tempat instans ACR Anda berada. Misalnya, region ID untuk Hangzhou adalah cn-hangzhou.

      Nilai default: wilayah kluster ACS Anda. Biarkan kosong jika instans ACR berada di wilayah yang sama.

      domains

      Domain names used to access the ACR instance.

      Nama domain untuk menarik gambar. Pisahkan beberapa domain dengan koma (,).

      Nilai default: semua domain yang terkait dengan instans ACR yang ditentukan oleh instanceID (domain publik registry.*, domain VPC registry-vpc.*, domain internal registry-internal.*).

      assumeRoleARN

      (Opsional) ARN dari role RAM pemilik repositori gambar yang diperoleh pada langkah 4 di Konfigurasi penarikan gambar lintas akun. Biarkan kosong jika tidak menarik lintas akun.

      Contoh: acs:ram::123456789012****:test-rrsa-acr

      Nilai default: kosong.

      expireDuration

      (Opsional) Masa berlaku kredensial sementara dalam skenario lintas akun. Biarkan kosong jika tidak menarik lintas akun.

      Penting

      Nilai expireDuration harus kurang dari atau sama dengan Max Session Duration yang ditetapkan untuk role pemilik repositori gambar pada langkah 4 di Konfigurasi penarikan gambar lintas akun.

      Nilai default: 3600.

      rrsaRoleARN

      (Opsional) ARN dari role RAM kluster ACS yang diperoleh pada langkah 3 di Konfigurasi penarikan gambar lintas akun. Biarkan kosong jika tidak menarik lintas akun.

      Contoh: acs:ram::987654321012****:demo-role-for-rrsa

      Nilai default: kosong.

      rrsaOIDCProviderRoleARN

      (Opsional) ARN dari provider OIDC RRSA kluster ACS yang diperoleh pada langkah 2 di Konfigurasi penarikan gambar lintas akun. Biarkan kosong jika tidak menarik lintas akun.

      Contoh: acs:ram::987654321012**:oidc-provider/ack-rrsa-abcd1234**

      Nilai default: kosong.

    2. Konfigurasikan parameter lainnya.

      Parameter key

      Configuration Item Key Description

      Configuration Item Value

      Enable RRSA

      Pilih opsi ini untuk mengaktifkan RRSA (konfigurasi terkait RRSA harus diselesaikan terlebih dahulu).

      Secara default tidak dipilih. Setelah mengonfigurasi parameter RRSA dan memilih opsi ini, Anda dapat pull images across accounts.

      watchNamespace

      Namespace tempat fitur pull image tanpa kata sandi diaktifkan.

      Nilai default-nya adalah default. Jika nilainya diatur ke all, artinya semua Namespace harus mendukung pull image tanpa kata sandi. Untuk mengonfigurasi multiple Namespace, pisahkan dengan koma (,).

      Catatan

      Disarankan hanya menentukan namespace aplikasi Anda. Hindari mengatur nilai ini ke all atau namespace komponen sistem untuk mencegah kegagalan dalam menarik gambar komponen sistem.

      serviceAccount

      Terapkan komponen tanpa kata sandi ke akun layanan yang ditentukan.

      Nilai default: default.

      Catatan

      Untuk menentukan beberapa ServiceAccount, pisahkan dengan koma (,). Gunakan * untuk menerapkan ke semua ServiceAccount dalam namespace yang ditentukan.

      expiringThreshold

      Ambang batas kedaluwarsa untuk kredensial yang di-cache secara lokal.

      Nilai default: 15m.

      Catatan

      Disarankan menggunakan 15m, yang memperbarui kredensial 15 menit sebelum masa berlakunya habis.

      notifyEmail

      Label email dalam Secret yang dihasilkan oleh komponen tanpa kata sandi.

      Nilai default: xxx@aliyun.com.

Konfigurasi penarikan gambar lintas akun

Gunakan RRSA untuk penarikan lintas akun

RAM Roles for Service Accounts (RRSA) memungkinkan isolasi izin tingkat pod di kluster ACS. Dengan mengaktifkan RRSA untuk kluster ACS Anda dan membagikan ARN role yang diotorisasi kepada pemilik repositori gambar, komponen tanpa kata sandi dapat menarik gambar ACR lintas akun.

RRSA saat ini hanya mendukung penarikan gambar dari instans ACR Enterprise Edition (Basic, Standard, dan Pro).

Penting
  • Setelah mengaktifkan RRSA, kredensial yang dihasilkan oleh komponen tidak dapat menarik gambar privat dari Personal Edition atau menggunakan metode autentikasi lain yang dijelaskan dalam topik ini.

  • Untuk mengaktifkan RRSA untuk plug-in tanpa kata sandi, pertama aktifkan RRSA, lalu konfigurasikan parameter terkait RRSA untuk plug-in tersebut. Jika urutannya dibalik, hapus pod plug-in tanpa kata sandi setelah konfigurasi agar RRSA berlaku.

  1. Aktifkan RRSA untuk kluster ACS Anda. Untuk informasi selengkapnya, lihat Aktifkan RRSA.

  2. ACS secara otomatis membuat provider OIDC RRSA untuk kluster. Di konsol kluster, buka Informasi Dasar > Keamanan dan Audit > RRSA > OIDC untuk melihat Provider URL dan Provider ARN.

  3. Pemilik kluster mengonfigurasi role RAM menggunakan provider OIDC dan memberikan izin asumsi role.

    1. Buat role RAM menggunakan provider OIDC atau kaitkan role RAM yang sudah ada dengan provider OIDC agar komponen tanpa kata sandi dapat menggunakan role tersebut untuk mengakses OpenAPI.

      Buat role RAM menggunakan provider OIDC

      1. Masuk ke Konsol Resource Access Management (RAM) dengan Akun Alibaba Cloud Anda.

      2. Di panel navigasi kiri, pilih Identities > Roles. Di halaman Roles, klik Create Role.

      3. Di halaman Create Role, klik Switch to Policy Editor. Atur Principal ke Identity Provider. Konfigurasikan role seperti berikut, lalu klik OK.

      4. Gunakan contoh konfigurasi berikut.

        configuration item

        Description

        IdP Type

        OIDC.

        Select IdP

        acs-rrsa-<cluster_id>. Ganti <cluster_id> dengan ID kluster Anda.

        Condition

        • oidc:iss: Pertahankan nilai default.

        • oidc:aud: Pertahankan nilai default.

        • oidc:sub: Atur operator kondisi ke StringEquals. Gunakan format system:serviceaccount:<namespace>:<serviceAccountName>.

          • <namespace>: Namespace aplikasi Anda.

          • <serviceAccountName>: Nama service account.

          Untuk plug-in tanpa password, Anda harus menggunakan system:serviceaccount:kube-system:aliyun-acr-credential-helper.

      5. Di kotak dialog Create Role, atur Role Name menjadi demo-role-for-rrsa. Klik OK.

      Kaitkan role RAM yang sudah ada dengan provider OIDC

      1. Masuk ke Konsol Resource Access Management (RAM) dengan Akun Alibaba Cloud Anda.

      2. Di panel navigasi kiri, pilih Identities > Roles. Klik nama role RAM target Anda.

      3. Di tab Trust Policy, klik Edit Trust Policy. Untuk informasi selengkapnya, lihat Ubah kebijakan kepercayaan role RAM.

      4. Tambahkan entri contoh berikut ke daftar Statement dalam kebijakan kepercayaan.

        {
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "oidc:aud": "sts.aliyuncs.com",
                    "oidc:iss": "<oidc_issuer_url>",
                    "oidc:sub": "system:serviceaccount:kube-system:aliyun-acr-credential-helper"
                }
            },
            "Effect": "Allow",
            "Principal": {
                "Federated": [
                    "<oidc_provider_arn>"
                ]
            }
        }
        Penting

        Ganti <oidc_issuer_url> dan <oidc_provider_arn> dengan Provider URL dan Provider ARN yang diperoleh pada langkah 2.

    2. Lampirkan kebijakan izin AliyunSTSAssumeRoleAccess ke role RAM agar komponen tanpa kata sandi dapat mengasumsikan role tersebut. Untuk informasi selengkapnya, lihat Kelola izin role RAM.

    3. Di halaman Basic Information > ARN, lihat ARN dari role RAM tersebut.

  4. Konfigurasikan role RAM untuk pemilik repositori gambar, percayai role RAM pemilik kluster, dan berikan izin penarikan gambar.

    1. Buat role RAM. Untuk informasi selengkapnya, lihat Buat role RAM dengan Akun Alibaba Cloud sebagai entitas tepercaya.

    2. Percayai role RAM kluster ACS agar dapat mengasumsikan role pemilik repositori. Untuk informasi selengkapnya, lihat Ubah kebijakan kepercayaan role RAM. Gunakan contoh isi kebijakan berikut:

      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Principal": {
                      "RAM": [
                          "<acs_role_arn>"
                      ]
                  }
              }
          ],
          "Version": "1"
      }
      Penting

      Ganti <acs_role_arn> dengan ARN role RAM kluster ACS yang diperoleh pada langkah 3.

    3. Berikan izin penarikan gambar ke role RAM.

      1. Buat kebijakan kustom dalam mode edit skrip. Isi dokumen kebijakan adalah sebagai berikut. Kami menyarankan Anda memberi nama kebijakan Name AliyunACRBasicAccess. Untuk informasi selengkapnya, lihat Membuat kebijakan kustom.

        {
            "Version": "1",
            "Statement": [
                {
                    "Action": [
                        "cr:GetAuthorizationToken",
                        "cr:ListInstanceEndpoint",
                        "cr:PullRepository"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
      2. Berikan izin AliyunACRBasicAccess ke role RAM. Untuk informasi selengkapnya, lihat Kelola izin role RAM.

    4. [Opsional] Atur Max Session Duration untuk role RAM. Nilai yang valid berkisar antara 3600 hingga 43200 detik. Jika Anda mengatur Max Session Duration, atur juga parameter expireDuration saat mengonfigurasi AcrInstanceInfo di langkah 5.

    5. Di halaman Basic Information > ARN, lihat ARN dari role RAM tersebut.

  5. Di konfigurasi komponen tanpa kata sandi, pilih Enable RRSA dan konfigurasikan AcrInstanceInfo.

    Ubah AcrInstanceInfo sebagai berikut.

    Parameter key

    Description

    configuration item value

    Enable RRSA

    Pilih untuk mengaktifkan RRSA (memerlukan penyelesaian konfigurasi terkait RRSA).

    Selected

    rrsaRoleARN

    ARN role RAM kluster ACS yang diperoleh pada langkah 3.

    <acs_role_arn>

    rrsaOIDCProviderRoleARN

    provider ARN OIDC RRSA kluster ACS yang diperoleh pada langkah 2.

    oidc_provider_arn

    assumeRoleARN

    ARN role RAM pemilik repository gambar yang diperoleh pada langkah 4.

    <acr_role_arn>

    expireDuration

    Masa berlaku kredensial temporary yang dihasilkan oleh komponen tanpa password.

    Penting

    Nilai expireDuration harus kurang dari atau sama dengan Max Session Duration yang ditetapkan untuk role pemilik repository gambar pada langkah 4.

    Default: 3600. Rentang valid: [3600, 43200]. Satuan: detik.

Referensi