All Products
Search
Document Center

Container Registry:Menarik gambar lintas akun menggunakan komponen tanpa kata sandi

Last Updated:Apr 29, 2026

Ketika kluster ACK dan instans ACR Enterprise Edition dikelola oleh Akun Alibaba Cloud yang berbeda, Anda harus memastikan konektivitas jaringan dan memberikan izin agar kluster dapat menarik gambar kontainer serta menerapkan workload. Topik ini menjelaskan cara menggunakan komponen tanpa kata sandi aliyun-acr-credential-helper untuk menarik gambar lintas akun.

Strategi pemilihan

Pilih metode koneksi jaringan dan otorisasi akun yang paling sesuai dengan kebutuhan bisnis Anda, lalu pilih komponen tanpa kredensial yang mendukung metode otorisasi tersebut.

Untuk langkah-langkah detail, lihat Konfigurasikan konektivitas jaringan, Konfigurasikan otorisasi akun dan komponen tanpa kredensial, lalu verifikasi penarikan gambar lintas akun.
Catatan

Dalam topik ini, "cross-account" mengacu pada antar Akun Alibaba Cloud (akun utama) yang berbeda, bukan Pengguna RAM (sub-akun).

Prasyarat

  • Peran RAM untuk komponen tanpa kata sandi memiliki izin yang diperlukan.

  • Tersedia kluster ACK yang mendukung komponen tanpa kata sandi.

    • aliyun-acr-credential-helper (dikelola)

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

    • aliyun-acr-credential-helper (dikelola sendiri)

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

  • Tersedia instans ACR Enterprise Edition.

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

Prosedur

Langkah 1: Konfigurasikan konektivitas jaringan

Saat menarik gambar lintas akun, kluster ACK yang menarik gambar dan instans ACR Enterprise Edition yang menyimpannya berada di VPC yang berbeda di bawah Akun Alibaba Cloud terpisah, dan mungkin juga berada di wilayah yang berbeda. Sebelum menarik gambar, Anda harus membuat konektivitas jaringan dan memastikan nama domain yang diperlukan dapat diselesaikan. Anda dapat menggunakan salah satu metode berikut:

  • Koneksi publik: Konfigurasikan titik akhir publik untuk instans ACR Enterprise Edition dan aktifkan akses jaringan publik untuk kluster ACK. Gambar kemudian ditransfer melalui jaringan publik. Namun, metode ini kurang aman dan menimbulkan biaya untuk Alamat IP Elastis dan lalu lintas jaringan.

  • Koneksi peering VPC: Gunakan koneksi peering VPC untuk menghubungkan kedua VPC sehingga kluster ACK dapat mengakses instans ACR Enterprise Edition. Layanan ini gratis jika VPC berada di wilayah yang sama tetapi dikenai biaya jika berada di wilayah berbeda. Namun, blok CIDR kedua VPC tidak boleh tumpang tindih. Jika blok CIDR VPC memiliki tumpang tindih signifikan, Anda harus memodifikasi arsitektur jaringan yang ada.

  • Koneksi Cloud Enterprise Network: Instans Cloud Enterprise Network dapat berisi satu atau beberapa router transit. Anda dapat menggunakan koneksi antar-wilayah untuk menghubungkan beberapa router transit guna mengaktifkan komunikasi VPC antar-wilayah dan lintas akun.

Untuk perbandingan antara koneksi peering VPC dan Cloud Enterprise Network, lihat Apa perbedaan antara Cloud Enterprise Network dan Koneksi Peering VPC?

Item

Koneksi publik

Koneksi peering VPC

Cloud Enterprise Network

Jenis jaringan

Jaringan publik

Jaringan pribadi

Jaringan pribadi

Penagihan

Biaya dikenakan berdasarkan penagihan Alamat IP Elastis.

  • Tidak ada biaya jika VPC kluster ACK dan instans ACR Enterprise Edition berada di wilayah yang sama.

  • Jika VPC berada di wilayah berbeda, dikenai biaya Cloud Data Transfer (CDT) untuk lalu lintas keluar.

Biaya dikenakan berdasarkan aturan penagihan Cloud Enterprise Network.

Fitur utama

Anda tidak perlu memodifikasi arsitektur jaringan yang ada. Untuk keamanan, Anda harus mengonfigurasi aturan arah masuk dan keluar serta kebijakan kontrol akses.

  • Gambar ditransfer melalui jaringan pribadi untuk keamanan lebih tinggi. Tidak ada biaya jika VPC berada di wilayah yang sama.

  • Blok CIDR kedua VPC tidak boleh tumpang tindih. Jika terdapat tumpang tindih signifikan, Anda harus memodifikasi arsitektur jaringan yang ada.

  • Gambar ditransfer melalui jaringan pribadi untuk keamanan lebih tinggi.

  • Cloud Enterprise Network dirancang untuk lingkungan produksi perusahaan dengan persyaratan keamanan tinggi.

Prosedur konfigurasi

  1. Konfigurasikan titik akhir publik untuk instans ACR

    Konfigurasikan kebijakan kontrol akses publik untuk mengelola dan mengakses instans ACR Enterprise Edition secara jarak jauh dan aman.
  2. Aktifkan akses jaringan publik untuk kluster ACK

    Konfigurasikan kluster ACK agar dapat mengakses sumber daya publik eksternal dan menarik gambar dari instans ACR Enterprise Edition.
  1. Aktifkan resolusi nama domain pribadi untuk instans ACR

    Setelah Anda menghubungkan instans ACR Enterprise Edition ke VPC, Anda dapat mengakses instans tersebut dari dalam VPC menggunakan nama domain pribadi. Setelah konfigurasi, peroleh ID VPC dan alamat IP pribadi instans ACR Enterprise Edition.
  2. Peroleh nama domain dan alamat IP terkait instans ACR

    Peroleh nama domain dan alamat IP layanan otentikasi serta bucket OSS terkait yang digunakan untuk mengakses instans ACR Enterprise Edition.
  3. Buat koneksi peering VPC dan konfigurasikan tabel rute

    Anda perlu menambahkan entri rute yang mengarah ke VPC peer di kedua ujung koneksi peering VPC untuk mengaktifkan komunikasi pribadi antara VPC kluster ACK dan VPC instans ACR Enterprise Edition. Di sisi kluster ACK pada koneksi peering, Anda juga harus mengonfigurasi rute ke alamat IP layanan otentikasi dan alamat IP bucket OSS terkait.
  4. Konfigurasikan resolusi DNS untuk nama domain instans ACR di kluster ACK

    Gunakan metode seperti menambahkan rekaman DNS pribadi atau menggunakan skrip data kustom untuk kelompok node untuk memodifikasi file /etc/hosts secara batch. Hal ini akan menyelesaikan nama domain instans ACR ke alamat IP pribadinya untuk kluster ACK. Lalu lintas kemudian diteruskan ke VPC instans ACR melalui rute koneksi peering VPC.
  1. Aktifkan resolusi nama domain pribadi untuk instans ACR

    Setelah Anda menghubungkan instans ACR Enterprise Edition ke VPC, Anda dapat mengakses instans tersebut dari dalam VPC menggunakan nama domain pribadi. Setelah konfigurasi, peroleh ID VPC dan alamat IP pribadi instans ACR Enterprise Edition.
  2. Peroleh nama domain dan alamat IP terkait instans ACR

    Peroleh nama domain dan alamat IP layanan otentikasi serta bucket OSS terkait yang digunakan untuk mengakses instans ACR Enterprise Edition.
  3. Konfigurasikan komunikasi VPC lintas akun menggunakan CEN

    Hubungkan VPC instans ACR Enterprise Edition ke router transit di wilayahnya. Hubungkan VPC kluster ACK ke router transit di wilayahnya. Lalu, gunakan koneksi antar-wilayah untuk menghubungkan kedua router transit tersebut.
  4. Konfigurasikan tabel rute untuk VPC dan router transit

    Anda juga harus mengonfigurasi rute ke alamat IP layanan otentikasi dan alamat IP bucket OSS terkait untuk VPC dan router transit kluster ACK.
  5. Konfigurasikan resolusi DNS untuk nama domain instans ACR di kluster ACK

    Gunakan metode seperti menambahkan rekaman DNS pribadi atau menggunakan skrip data kustom untuk kelompok node untuk memodifikasi file /etc/hosts secara batch. Hal ini akan menyelesaikan nama domain instans ACR ke alamat IP pribadinya untuk kluster ACK. Lalu lintas kemudian diteruskan ke VPC instans ACR melalui rute CEN.

Langkah 2: Konfigurasikan otorisasi dan komponen tanpa kredensial

Tiga metode otorisasi berikut memungkinkan penarikan gambar tanpa kredensial lintas akun. Pilih metode yang paling sesuai dengan kebutuhan Anda.

Item

RRSA

Peran RAM worker

AccessKey Pengguna RAM

Jenis kluster yang didukung

Mendukung kluster managed dasar ACK, kluster managed Pro ACK, kluster ACK Edge, dan kluster ACK Serverless Pro yang menjalankan Kubernetes 1.22 atau lebih baru.

Mendukung kluster managed dasar ACK, kluster managed Pro ACK, dan kluster khusus ACK yang menjalankan Kubernetes 1.20 atau lebih baru.

Mendukung kluster managed dasar ACK, kluster managed Pro ACK, dan kluster khusus ACK yang menjalankan Kubernetes 1.20 atau lebih baru.

Komponen yang didukung

  • add-on aliyun-acr-credential-helper (Managed)

  • komponen aliyun-acr-credential-helper

    Anda harus meningkatkan komponen ke versi v23.02.06.1-74e2172-aliyun atau lebih baru.

Untuk informasi selengkapnya tentang perbedaan antar komponen ini, lihat Perbandingan komponen tanpa kredensial.

komponen aliyun-acr-credential-helper

komponen aliyun-acr-credential-helper

Granularitas izin

tingkat Pod (detail halus)

tingkat kluster (detail menengah)

tingkat akun (detail kasar)

Keamanan

Tinggi. Menyediakan kontrol dan isolasi izin detail halus. Menggunakan kredensial sementara dari Security Token Service (STS) tanpa pasangan AccessKey ID dan AccessKey Secret yang dikodekan secara keras.

Menengah. Semua Pod berbagi izin yang sama, yang dapat menimbulkan risiko izin berlebihan.

Rendah. Risiko tinggi kebocoran AccessKey.

Kasus penggunaan

Cocok untuk layanan yang sensitif terhadap keamanan dan lingkungan produksi yang memerlukan kontrol izin ketat.

Cocok untuk skenario yang memerlukan izin terpadu dan untuk lingkungan pengembangan serta pengujian yang memerlukan tingkat kontrol izin moderat.

Cocok untuk penyebaran cepat atau lingkungan demo.

RRSA

Di kluster ACK Akun A, konfigurasikan ServiceAccount tertentu untuk mengasumsikan peran RAM milik Akun B yang memiliki izin untuk menarik gambar tanpa kredensial. Hal ini memungkinkan kluster ACK mengakses dan menarik gambar pribadi dari Akun B.

Catatan

Untuk mengaktifkan fitur RRSA pada komponen tanpa kredensial, Anda harus terlebih dahulu mengaktifkan RRSA untuk kluster, lalu mengonfigurasi RRSA untuk komponen tanpa kredensial. Jika langkah-langkah ini dilakukan dalam urutan yang salah, Anda harus menghapus Pod komponen untuk mengaktifkan fitur RRSA.

  1. Di Akun A, aktifkan fitur RRSA untuk kluster ACK Anda dan buat peran RAM yang memiliki izin untuk mengasumsikan peran.

    1. Aktifkan fitur RRSA untuk kluster ACK Anda.

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

      2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.

      3. Di tab Basic Information, temukan bagian Security and Auditing, lalu di samping RRSA OIDC, klik Enable.image

      4. Di kotak dialog Enable RRSA, klik OK.

        Di bagian Basic Information, tunggu hingga status kluster berubah dari Updating menjadi Running. Saat status berubah menjadi Running, RRSA telah diaktifkan.

      5. Setelah RRSA diaktifkan untuk kluster, buka tab Basic Information. Di bagian Security and Auditing, arahkan kursor ke Enabled di sebelah kanan RRSA OIDC untuk melihat URL dan ARN penyedia OIDC.image

    2. Gunakan JSON berikut untuk mengedit kebijakan kepercayaan dan buat peran RAM untuk penyedia OIDC.

      • Ganti <oidc_issuer_url> dengan URL penyedia OIDC kluster Anda yang diperoleh pada langkah sebelumnya.

      • Ganti <oidc_provider_arn> dengan ARN penyedia OIDC kluster Anda yang diperoleh pada langkah sebelumnya.

      {
        "Statement": [
          {
            "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>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    3. Sambungkan kebijakan AliyunSTSAssumeRoleAccess ke peran RAM untuk memberikan izin mengasumsikan peran lain, lalu catat ARN peran RAM tersebut. Untuk informasi selengkapnya, lihat Memberikan izin ke peran RAM.

      1. Di halaman detail peran RAM, klik tab Authorization lalu klik Authorize.

      2. Di panel Authorize, di bagian Policies, temukan dan pilih kebijakan AliyunSTSAssumeRoleAccess, lalu klik OK.

      3. Di halaman detail peran RAM, buka bagian Basic Information untuk melihat dan mencatat ARN peran RAM. Untuk informasi selengkapnya, lihat Melihat ARN peran RAM.

  2. Di Akun B, buat peran RAM, berikan izin untuk menarik gambar pribadi, dan konfigurasikan kebijakan kepercayaannya agar memungkinkan peran RAM dari Akun A mengasumsikannya.

    1. Buat peran RAM untuk akun Alibaba Cloud tepercaya dan gunakan JSON berikut untuk mengedit kebijakan kepercayaan. Hal ini memungkinkan peran RAM di Akun A mengasumsikan peran ini.

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "<ARN of the RAM role created in Account A>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    2. Buat kebijakan kustom dengan konten berikut dan sambungkan kebijakan tersebut ke peran RAM untuk memberikan izin memperoleh informasi instans dan menarik gambar.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. Atur durasi sesi maksimum untuk peran RAM ke nilai antara 3.600 hingga 43.200 detik. Nilai default adalah 3.600 detik.

      Kami menyarankan Anda mengatur nilai ini sama dengan parameter expireDuration dalam konfigurasi komponen yang dijelaskan nanti. Nilai expireDuration tidak boleh melebihi durasi sesi maksimum.
    4. Di halaman detail peran RAM, buka bagian Basic Information untuk melihat dan mencatat ARN peran RAM.

  3. Di Akun A, instal komponen tanpa kredensial untuk kluster ACK dan modifikasi konfigurasinya.

    Untuk informasi selengkapnya tentang perbedaan antar komponen berikut, lihat Perbandingan komponen tanpa kredensial.

    Add-on managed

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

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

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

    4. Di kotak dialog Parameters, pilih Enable RRSA, klik Add, masukkan parameter berikut, lalu klik Confirm.

      791184c653f445f62c3387d88ad8bdcf

      Konfigurasi instans ACR Enterprise Edition terkait:

      Parameter

      Deskripsi

      Contoh

      instanceId

      ID instans ACR Enterprise Edition. Untuk menentukan beberapa ID, pisahkan dengan koma (,).

      cri-XXXXX

      regionId

      ID wilayah instans ACR Enterprise Edition.

      cn-hangzhou

      domains

      Nama domain akses (publik dan VPC) untuk instans ACR. Pisahkan beberapa nama domain dengan koma (,).

      XXXXX-registry.cn-hangzhou.cr.aliyuncs.com

      assumeRoleARN

      ARN peran RAM milik pemilik instans ACR. Masukkan ARN peran RAM yang Anda buat di Akun B.

      acs:ram::100XXXXXXXX9630:role/XXXX

      expireDuration

      Periode validitas kredensial sementara untuk akses lintas akun. Masukkan durasi sesi maksimum peran RAM yang Anda buat di Akun B.

      3600

      rrsaRoleARN

      ARN peran RAM milik pemilik kluster ACK. Masukkan ARN peran RAM yang Anda buat di Akun A.

      acs:ram::128XXXXXXXXXX09011:role/XXXX

      rrsaOIDCProviderRoleARN

      ARN penyedia OIDC untuk kluster ACK. Masukkan ARN penyedia OIDC fitur RRSA untuk kluster ACK di Akun A.

      acs:ram::128XXXXXXXXXX09011:oidc-provider/ack-rrsa-c8864XXXXXXXXXXXXXXXXXX99356a636

      Untuk informasi tentang parameter lainnya, lihat Konfigurasi komponen.

    Komponen

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

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

    3. Di halaman Add-ons, klik tab Security, temukan komponen aliyun-acr-credential-helper, lalu klik Install. Di kotak dialog yang muncul, atur tokenMode ke auto dan klik OK.

      04479cf3d9857845bf530ea2f0850a60

    4. Modifikasi ConfigMap komponen tanpa kredensial.

      1. Di panel navigasi kiri, pilih Configurations > ConfigMaps.

      2. Di halaman ConfigMaps, pilih kube-system dari daftar drop-down Namespace di bagian atas. Lalu, temukan acr-configuration dan klik Edit YAML di kolom Actions. Modifikasi konfigurasi berdasarkan contoh berikut.

        data:
          service-account: "default"
          watch-namespace: "all"
          expiring-threshold: "15m"
          notify-email: "c*@example.com"
          acr-registry-info: |
            - instanceId: "cri-xxx"                                   # ID instans ACR Enterprise Edition.
              regionId: "cn-hangzhou"                                 # ID wilayah instans ACR Enterprise Edition.
              domains: "xxxxx-registry.cn-hangzhou.cr.aliyuncs.com"   # Nama domain akses instans ACR Enterprise Edition.
              rrsaRoleARN: "<ARN of the RAM role created in Account A>"
              rrsaOIDCProviderRoleARN: "<OIDC provider ARN from the Basic Information page of the cluster in the ACK console for Account A>"
              assumeRoleARN: "<ARN of the RAM role created in Account B>"
              expireDuration: 3600                                    # Durasi sesi maksimum untuk peran RAM di Akun B. Nilai default adalah 3600.
          rrsa: |
            enable: true                                              # Aktifkan fitur RRSA untuk komponen tanpa kredensial.

Peran RAM worker

Di kluster ACK Akun A, konfigurasikan peran RAM worker default kluster untuk mengasumsikan peran RAM milik Akun B yang memiliki izin untuk menarik gambar tanpa kredensial. Hal ini memungkinkan kluster ACK mengakses dan menarik gambar pribadi dari Akun B.

  1. Di Akun A, lihat peran RAM worker kluster dan berikan izin untuk mengasumsikan peran lain.

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

    2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.

    3. Di halaman Cluster Information, klik tab Basic Information. Di bagian Cluster Resources, klik tautan di sebelah kanan Worker RAM Role.

    4. Sambungkan kebijakan AliyunSTSAssumeRoleAccess ke peran RAM untuk memberikan izin mengasumsikan peran lain, lalu catat ARN peran RAM tersebut. Untuk informasi selengkapnya, lihat Memberikan izin ke peran RAM.

      1. Di halaman detail peran RAM, klik tab Authorization lalu klik Authorize.

      2. Di panel Authorize, di bagian Policies, temukan dan pilih kebijakan AliyunSTSAssumeRoleAccess, lalu klik OK.

      3. Di halaman detail peran RAM, buka bagian Basic Information untuk melihat dan mencatat ARN peran RAM. Untuk informasi selengkapnya, lihat Melihat ARN peran RAM.

  2. Di Akun B, buat peran RAM, berikan izin untuk menarik gambar pribadi, dan konfigurasikan kebijakan kepercayaannya agar memungkinkan peran RAM worker kluster ACK di Akun A mengasumsikannya.

    1. Buat peran RAM untuk akun Alibaba Cloud tepercaya.

    2. Buat kebijakan kustom dengan konten berikut dan sambungkan kebijakan tersebut ke peran RAM untuk memberikan izin memperoleh informasi instans dan menarik gambar.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. Di halaman detail peran RAM, klik tab Trust Policy dan Edit Trust Policy dengan konten berikut. Hal ini memungkinkan peran RAM worker kluster ACK di Akun A mengasumsikan peran RAM di Akun B.

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "<ARN of the role created in Account A>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    4. Di halaman detail peran RAM, buka bagian Basic Information untuk melihat dan mencatat ARN peran RAM. Untuk informasi selengkapnya, lihat Melihat ARN peran RAM.

  3. Di Akun A, instal komponen tanpa kredensial untuk kluster ACK dan modifikasi konfigurasinya.

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

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

    3. Di halaman Add-ons, klik tab Security, temukan komponen aliyun-acr-credential-helper, lalu klik Install. Di kotak dialog yang muncul, atur tokenMode ke workerRole dan klik Confirm.

      100f8cde3395436575996fbbd290dc56

    4. Modifikasi ConfigMap komponen tanpa kredensial.

      1. Di panel navigasi kiri, pilih Configurations > ConfigMaps.

      2. Di halaman ConfigMaps, pilih kube-system dari daftar drop-down Namespace di bagian atas. Lalu, temukan acr-configuration dan klik Edit YAML di kolom Actions. Modifikasi konfigurasi berdasarkan contoh berikut.

        data:
            service-account: "default"
            watch-namespace: "all"
            expiring-threshold: "15m"
            notify-email: "c*@example.com"
            acr-registry-info: |
              - instanceId: "cri-xxx"                                    # ID instans ACR Enterprise Edition.
                regionId: "cn-hangzhou"                                  # ID wilayah instans ACR Enterprise Edition.
                domains: "xxxxx-registry.cn-hangzhou.cr.aliyuncs.com"    # Nama domain akses instans ACR Enterprise Edition.
                assumeRoleARN: "<ARN of the RAM role created in Account B>"
                expireDuration: 3600                                     # Durasi sesi maksimum untuk peran RAM di Akun B. Nilai default adalah 3600.

AccessKey Pengguna RAM

Di kluster ACK Akun A, komponen tanpa kredensial menyimpan AccessKey ID dan AccessKey Secret Pengguna RAM dari Akun B untuk menarik gambar pribadi dari Akun B. Meskipun metode ini mudah dikonfigurasi, metode ini menimbulkan risiko keamanan karena pasangan AccessKey disimpan dalam teks biasa, yang dapat menyebabkan kebocoran kredensial.

  1. Di Akun B, buat Pengguna RAM dan pastikan pengguna tersebut memiliki izin cr.* yang diperlukan.

    1. Buat Pengguna RAM.

    2. Buat kebijakan kustom dengan konten berikut dan sambungkan kebijakan tersebut ke Pengguna RAM untuk memberikan izin memperoleh informasi instans dan menarik gambar.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. Buat pasangan AccessKey dan catat AccessKey ID dan AccessKey Secret.

  2. Di Akun A, instal komponen bebas kredensial untuk kluster ACK dan sesuaikan konfigurasinya.

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

    2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.

    3. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Add-ons.

    4. Di halaman Add-ons, klik tab Security, temukan komponen aliyun-acr-credential-helper, lalu klik Install. Di kotak dialog yang muncul, atur tokenMode ke auto dan klik OK.

      04479cf3d9857845bf530ea2f0850a60

    5. Modifikasi ConfigMap komponen tanpa kredensial.

      1. Di panel navigasi kiri, pilih Configurations > ConfigMaps.

      2. Di halaman ConfigMaps, pilih kube-system dari daftar drop-down Namespace di bagian atas. Lalu, temukan acr-configuration dan klik Edit YAML di kolom Actions. Modifikasi konfigurasi berdasarkan contoh berikut.

      3. data:
            service-account: "default"
            watch-namespace: "all"
            expiring-threshold: "15m"
            notify-email: "c*@example.com"
            acr-registry-info: |
              - instanceId: ""                        # ID instans ACR Enterprise Edition.
                regionId: "cn-hangzhou"               # ID wilayah instans ACR Enterprise Edition.
                customAccessKey: "xxxxx"              # AccessKey ID Pengguna RAM di Akun B.
                customAccessKeySecret: "xxxxxx"       # AccessKey Secret Pengguna RAM di Akun B.

Langkah 3: Verifikasi penarikan gambar lintas akun

Catatan

Prosedur verifikasi ini hanya untuk tujuan demonstrasi. Untuk instruksi detail, lihat Membuat gambar dan Membuat workload.

  1. Di instans ACR Enterprise Edition milik Akun B, peroleh Public endpoint atau alamat VPC gambar kontainer sesuai kebutuhan.

    image

  2. Di kluster ACK milik Akun A, pilih Workloads > Deployments dan gunakan gambar kontainer untuk membuat workload.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment-basic
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: ******.cn-hangzhou.cr.aliyuncs.com/instance/instancetest:v1 # Tentukan alamat gambar ACR di Akun B.
            ports:
            - containerPort: 80
  3. Jika event Pod untuk workload berisi pesan serupa Successfully pulled image "XXX" in XXXs (XXXs including waiting). Image size: XXX bytes., berarti komponen tanpa kredensial berhasil menarik gambar lintas akun.

    ecb56ef14d98a537ebe64f6bd9fd883d

FAQ

Konflik IP di blok CIDR 100.0.0.0/8

Alamat IP untuk domain otentikasi dan OSS diselesaikan ke blok CIDR 100.0.0.0/8. Jika jaringan internal Anda juga menggunakan rentang ini, akan terjadi konflik alamat IP.

Konflik nama domain otentikasi

Anda dapat mengatasi konflik domain otentikasi dengan mengaktifkan instans untuk mengambil alih domain otentikasi. Hal ini memungkinkan Anda mengakses layanan hanya dengan menggunakan nama domain instans.

  1. Masuk ke Konsol Container Registry.

  2. Di bilah navigasi atas, pilih wilayah.

  3. Di halaman Instances, klik instans Edisi Perusahaan yang ingin Anda kelola.

  4. Di panel navigasi kiri halaman pengelolaan instans, pilih Repository > Domain. Di halaman Domain, aktifkan sakelar Instance Taking over Authentication Domain Name.

    Penting

    Untuk menggunakan fitur pengambilalihan instans untuk domain otentikasi, Anda harus mengajukan tiket untuk menambahkan instans Edisi Perusahaan Anda ke daftar izin.

  5. Di kotak dialog Confirm to Enable Instance Taking over Authentication Domain Name, klik Confirm.

Konflik nama domain OSS

Anda dapat mengakses sumber daya OSS melalui jaringan pribadi menggunakan PrivateLink, lalu mengarahkan nama domain OSS ke nama domain PrivateLink menggunakan rekaman CNAME.