全部产品
Search
文档中心

Container Compute Service:Tarik citra dari instans ACR tanpa menggunakan rahasia

更新时间:Nov 09, 2025

Container Compute Service (ACS) memungkinkan Anda menarik gambar dari Container Registry (ACR) tanpa menggunakan rahasia. Hal ini meningkatkan efisiensi dan keamanan. Topik ini menjelaskan cara menarik gambar dari instans ACR dalam kluster ACS tanpa menggunakan rahasia.

Informasi Latar Belakang

Container Registry (ACR) menyediakan hosting yang aman dan distribusi yang efisien untuk artefak cloud native standar. ACR tersedia dalam berbagai edisi, seperti Edisi Personal dan Edisi Perusahaan. Untuk informasi lebih lanjut, lihat Apa itu Container Registry?. ACS menyediakan metode terpadu untuk mengonfigurasi penarikan gambar tanpa kata sandi untuk berbagai edisi ACR.

Saat Anda mengonfigurasi layanan tanpa kata sandi untuk kluster ACS, ACS secara otomatis menyediakan kredensial otentikasi untuk menarik gambar dari ACR. Ini menyederhanakan proses pembuatan Pod, mencegah kebocoran kata sandi, dan meningkatkan keamanan.

Catatan

Penarikan gambar tanpa kata sandi tidak didukung untuk gambar dari repositori selain ACR, seperti Docker Hub atau repositori yang dikelola sendiri.

Prasyarat

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

  1. Buat sebuah kluster ACS. Untuk informasi lebih lanjut, lihat Buat sebuah kluster ACS.

  2. Buat sebuah instans ACR dan konfigurasikan repositori citra dan citranya.

  3. Jika Anda menggunakan sebuah instans ACR Edisi Perusahaan, konfigurasikan metode aksesnya.

    Secara default, sebuah instans baru ACR Edisi Perusahaan tidak terhubung ke jaringan apa pun. Anda harus mengonfigurasi Daftar Kontrol Akses (ACL) untuk mengizinkan akses ke instans tersebut melalui internet atau virtual private cloud (VPC).

    • Akses jaringan publik: Setelah Anda mengaktifkan akses jaringan publik, Anda dapat mengakses citra dalam instans Edisi Perusahaan melalui internet menggunakan titik akhir publik. Anda dapat mengakses citra lintas wilayah. Untuk informasi lebih lanjut, lihat Konfigurasikan akses melalui Internet.

    • Akses VPC: Untuk mengakses sebuah instans ACR Edisi Perusahaan melalui VPC, Anda harus memberikan izin yang diperlukan. Untuk informasi lebih lanjut, lihat Konfigurasikan akses melalui VPC.

Cara kerjanya

Komponen bebas kata sandi membaca konfigurasi Anda dari Konsol untuk menarik citra pribadi. Setelah Anda mengonfigurasi komponen, ia secara otomatis membuat rahasia di dalam kluster. Komponen kemudian mengaitkan rahasia tersebut dengan akun layanan yang Anda tentukan di dalam konfigurasi. Secara default, setiap Pod yang menggunakan akun layanan ini akan menggunakan rahasia yang dihasilkan untuk menarik citra. Hal ini memungkinkan Anda menarik citra tanpa kata sandi.

Instal dan konfigurasikan komponen bebas kata sandi

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

  2. Di halaman Clusters, temukan kluster target dan klik ID-nya. Di panel navigasi kiri, pilih Operations > Add-ons.

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

    image

  4. Di kotak dialog Parameters, klik Add di sebelah kanan AcrInstanceInfo untuk menambahkan informasi tentang satu atau lebih instans ACR. Konfigurasikan parameter seperti yang dijelaskan dalam contoh berikut dan klik Confirm.

    1. Tambahkan AcrInstanceInfo.

      Catatan

      Konfigurasi untuk skenario default adalah sebagai berikut:

      • Untuk menyinkronkan dengan instans ACR Edisi Personal, gunakan konfigurasi default untuk AcrInstanceInfo.

      • Untuk menyinkronkan dengan instans ACR Edisi Perusahaan, tentukan instanceID dan gunakan konfigurasi default untuk item AcrInstanceInfo lainnya.

      Kunci

      Deskripsi

      Nilai

      instanceID

      ID dari instans ACR.

      Temukan instans yang telah dibuat di Konsol Container Registry.

      • Edisi Perusahaan: Di halaman Instance Information, Anda dapat menemukan Instance ID. Nilainya adalah string yang dimulai dengan cri-.

      • Edisi Personal: Untuk mengonfigurasi penarikan bebas kata sandi untuk instans Edisi Personal, biarkan parameter ini kosong.

      Nilai defaultnya kosong. Ini mengonfigurasi instans Edisi Personal di wilayah saat ini.

      regionID

      ID wilayah dari instans ACR.

      ID wilayah tempat instans ACR berada. Sebagai contoh, ID wilayah untuk instans di wilayah China (Hangzhou) adalah cn-hangzhou.

      Nilai defaultnya adalah wilayah dari kluster ACS. Jika instans ACR berada di wilayah yang sama dengan kluster ACS, biarkan parameter ini kosong.

      domains

      Nama domain yang digunakan untuk mengakses instans ACR.

      Nama domain yang digunakan untuk mengakses citra. Pisahkan beberapa nama domain dengan koma (,).

      Nilai default mencakup semua nama domain yang sesuai dengan instanceID dari instans ACR. Ini termasuk titik akhir publik (registry.*), titik akhir VPC (registry-vpc.*), dan titik akhir internal wilayah yang sama (registry-internal.*).

      assumeRoleARN

      (Opsional) ARN dari peran RAM pemilik repositori citra, yang dapat Anda peroleh di Langkah 4 dari Konfigurasikan penarikan citra lintas akun. Biarkan parameter ini kosong jika Anda tidak menarik citra lintas akun.

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

      Nilai defaultnya kosong.

      expireDuration

      (Opsional) Periode validitas kredensial sementara dalam skenario lintas akun. Biarkan parameter ini kosong jika Anda tidak menarik citra lintas akun.

      Penting

      Nilai dari expireDuration harus kurang dari atau sama dengan Maximum Session Duration dari peran pemilik repositori citra yang Anda atur di Langkah 4 dari Konfigurasikan penarikan citra lintas akun.

      Nilai defaultnya adalah 3600.

      rrsaRoleARN

      (Opsional) ARN dari peran RAM kluster ACS, yang dapat Anda peroleh di Langkah 3 dari Konfigurasikan penarikan citra lintas akun. Biarkan parameter ini kosong jika Anda tidak menarik citra lintas akun.

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

      Nilai defaultnya kosong.

      rrsaOIDCProviderRoleARN

      (Opsional) RRSA OpenID Connect (OIDC) Provider ARN dari kluster ACS, yang dapat Anda peroleh di Langkah 2 dari Konfigurasikan penarikan citra lintas akun. Biarkan parameter ini kosong jika Anda tidak menarik citra lintas akun.

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

      Nilai defaultnya kosong.

    2. Konfigurasikan parameter lainnya.

      Kunci

      Deskripsi

      Nilai

      Aktifkan RRSA

      Pilih kotak centang ini untuk mengaktifkan RAM Roles for Service Accounts (RRSA). Anda harus menyelesaikan konfigurasi terkait RRSA.

      Opsi ini tidak dipilih secara default. Setelah Anda mengonfigurasi parameter terkait RRSA dan memilih kotak centang ini, Anda dapat menarik citra lintas akun.

      watchNamespace

      Namespace tempat Anda ingin menarik citra tanpa kata sandi.

      Nilai defaultnya adalah default. Jika Anda mengatur nilainya menjadi all, Anda dapat menarik citra tanpa kata sandi dari semua namespace. Untuk menentukan beberapa namespace, pisahkan mereka dengan koma (,).

      Catatan

      Tentukan namespace bisnis Anda. Jangan tentukan semua atau namespace komponen sistem untuk mencegah kegagalan penarikan citra untuk komponen sistem.

      serviceAccount

      Akun layanan yang diterapkan oleh komponen bebas kata sandi.

      Nilai defaultnya adalah default.

      Catatan

      Untuk menentukan beberapa akun layanan, pisahkan mereka dengan koma (,). Jika Anda mengatur parameter ini ke asterisk (*), semua akun layanan di namespace yang ditentukan didukung.

      expiringThreshold

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

      Nilai defaultnya adalah 15m.

      Catatan

      Kami sarankan Anda menggunakan 15m. Ini berarti kredensial diperbarui 15 menit sebelum kedaluwarsa.

      notifyEmail

      Tag email di rahasia yang dihasilkan oleh komponen bebas kata sandi.

      Nilai defaultnya adalah xxx@aliyun.com.

Konfigurasikan penarikan gambar lintas akun

Gunakan RRSA untuk menarik gambar lintas akun

Fitur RAM Roles for Service Accounts (RRSA) menyediakan isolasi izin tingkat pod dalam kluster ACS. Dengan mengaktifkan fitur RRSA untuk kluster ACS dan mendistribusikan ARN dari peran yang berwenang kepada pemilik repositori gambar yang berbeda, komponen tanpa kata sandi dapat menarik gambar ACR lintas akun.

Fitur RRSA hanya didukung untuk menarik gambar dari instance ACR Enterprise Edition (Basic, Standard, dan Premium).

Penting
  • Setelah Anda mengaktifkan RRSA, kredensial yang dihasilkan oleh komponen tidak mendukung penarikan gambar pribadi dari instance Edisi Personal. Metode autentikasi lain yang dijelaskan dalam topik ini juga tidak didukung.

  • Anda harus mengaktifkan RRSA untuk kluster sebelum mengonfigurasi pengaturan RRSA untuk add-on tanpa kata sandi. Jika Anda melakukan langkah-langkah ini dengan urutan yang salah, Anda harus menghapus pod add-on setelah konfigurasi selesai untuk memastikan bahwa fitur RRSA berlaku.

  1. Aktifkan fitur RRSA untuk kluster ACS. Untuk informasi lebih lanjut, lihat Aktifkan fitur RRSA.

  2. ACS secara otomatis membuat penyedia OpenID Connect (OIDC) RRSA untuk kluster. Di halaman detail kluster di Konsol ACS, pilih Basic Information > Security And Auditing > RRSA OIDC untuk melihat Provider URL dan Provider ARN.

    image

  3. Pemilik kluster menggunakan penyedia OIDC untuk mengonfigurasi peran RAM dan memberikan izin untuk mengasumsikan peran tersebut.

    1. Buat peran RAM menggunakan penyedia OIDC atau hubungkan penyedia OIDC dengan peran RAM yang ada. Ini memungkinkan komponen tanpa kata sandi menggunakan izin peran untuk mengakses OpenAPI.

      Buat peran RAM menggunakan penyedia OIDC

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

      2. Di panel navigasi di sebelah kiri, pilih Identity Management > Roles. Pada halaman Roles, klik Create Role.

      3. Di halaman Create Role, klik Switch To Editor. Atur Principal menjadi Identity Provider. Konfigurasikan informasi peran seperti yang dijelaskan dalam tabel berikut dan klik Confirm.

      4. Contoh ini menggunakan konfigurasi berikut.

        Parameter

        Deskripsi

        Identity Provider Type

        OIDC.

        Select Identity Provider

        acs-rrsa-<cluster_id>. <cluster_id> adalah ID kluster Anda.

        Condition

        • oidc:iss: Pertahankan nilai default.

        • oidc:aud: Pertahankan nilai default.

        • oidc:sub: Atur operator kondisi menjadi StringEquals. Atur nilainya dalam format system:serviceaccount:<namespace>:<serviceAccountName>.

          • <namespace>: Namespace tempat aplikasi berada.

          • <serviceAccountName>: Nama akun layanan.

          Sesuai persyaratan add-on tanpa kata sandi, Anda harus memasukkan system:serviceaccount:kube-system:aliyun-acr-credential-helper.

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

      Hubungkan penyedia OIDC dengan peran RAM yang ada

      1. Masuk ke Konsol RAM menggunakan Akun Alibaba Cloud.

      2. Di panel navigasi di sebelah kiri, pilih Identity Management > Roles dan klik nama peran RAM target.

      3. Di tab Trust Policy, klik Edit Trust Policy. Untuk informasi lebih lanjut, lihat Ubah kebijakan kepercayaan peran RAM.

      4. Tambahkan konten 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 Anda peroleh di Langkah 2.

    2. Berikan kebijakan AliyunSTSAssumeRoleAccess kepada peran RAM. Ini memungkinkan komponen tanpa kata sandi untuk mengasumsikan peran tersebut. Untuk informasi lebih lanjut, lihat Berikan izin kepada peran RAM.

    3. Di halaman detail peran, pilih Basic Information > ARN untuk melihat ARN peran RAM.

      image

  4. Konfigurasikan peran RAM untuk pemilik repositori gambar yang mempercayai peran RAM pemilik kluster dan memberikan izin penarikan gambar.

    1. Buat peran RAM. Untuk informasi lebih lanjut, lihat Buat peran RAM untuk akun Alibaba Cloud yang dipercaya.

    2. Percayai peran RAM kluster ACS dan izinkan untuk mengasumsikan peran pemilik repositori. Untuk informasi lebih lanjut, lihat Ubah kebijakan kepercayaan peran RAM. Kode berikut menunjukkan contoh dokumen kebijakan:

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

      Ganti <acs_role_arn> dengan ARN peran RAM kluster ACS yang Anda peroleh di Langkah 3.

    3. Berikan izin penarikan gambar kepada peran RAM.

      1. Buat kebijakan kustom dalam mode edit skrip menggunakan dokumen kebijakan berikut. Kami merekomendasikan Anda mengatur Name kebijakan menjadi AliyunACRBasicAccess. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.

        {
            "Version": "1",
            "Statement": [
                {
                    "Action": [
                        "cr:GetAuthorizationToken",
                        "cr:ListInstanceEndpoint",
                        "cr:PullRepository"
                    ],
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
      2. Berikan izin AliyunACRBasicAccess kepada peran RAM. Untuk informasi lebih lanjut, lihat Berikan izin kepada peran RAM.

    4. [Opsional] Atur Maximum Session Duration untuk peran RAM. Nilainya berkisar antara 3600 hingga 43200 detik. Jika Anda mengatur Maximum Session Duration, Anda juga harus mengatur parameter expireDuration saat mengonfigurasi AcrInstanceInfo di Langkah 5.

    5. Di halaman detail peran, pilih Basic Information > ARN untuk melihat ARN peran RAM.

      image

  5. Dalam konfigurasi komponen tanpa kata sandi, pilih Aktifkan RRSA dan konfigurasikan AcrInstanceInfo.

    Ubah parameter di bagian AcrInstanceInfo seperti yang dijelaskan dalam tabel berikut.

    Kunci

    Deskripsi

    Nilai

    Aktifkan RRSA

    Pilih kotak centang ini untuk mengaktifkan RRSA. Anda harus menyelesaikan konfigurasi terkait RRSA.

    Dipilih

    rrsaRoleARN

    ARN peran RAM kluster ACS yang Anda peroleh di Langkah 3.

    <acs_role_arn>

    rrsaOIDCProviderRoleARN

    Provider ARN penyedia OIDC RRSA untuk kluster ACS yang Anda peroleh di Langkah 2.

    oidc_provider_arn

    assumeRoleARN

    ARN peran RAM pemilik repositori gambar yang Anda peroleh di Langkah 4.

    <acr_role_arn>

    expireDuration

    Periode validitas kredensial sementara yang dihasilkan oleh komponen tanpa kata sandi.

    Penting

    Nilai expireDuration harus kurang dari atau sama dengan Maximum Session Duration peran RAM pemilik repositori gambar yang Anda atur di Langkah 4.

    Nilai defaultnya adalah 3600. Nilainya harus dalam rentang [3600, 43200]. Satuan: detik.

Referensi