Elastic Container Instance (ECI) dapat menarik gambar dari Container Registry (ACR) tanpa rahasia, sehingga meningkatkan efisiensi dan keamanan. Topik ini menjelaskan cara mengaktifkan akses bebas rahasia tersebut.
Informasi latar belakang
Alibaba Cloud Container Registry (ACR) tersedia dalam Edisi Personal dan Edisi Enterprise. Edisi Enterprise merupakan platform tingkat perusahaan untuk mengelola artefak aplikasi cloud-native, menyediakan manajemen siklus hidup untuk gambar kontainer, Helm Chart, dan artefak yang sesuai dengan standar OCI. Layanan ini cocok untuk penerapan bisnis berskala besar serta membantu perusahaan mengurangi kompleksitas pengiriman. Untuk informasi selengkapnya, lihat Pengenalan Container Registry (ACR).
Saat membuat instans ECI atau cache gambar menggunakan gambar ACR, Anda dapat mengonfigurasi akses bebas rahasia. Pendekatan ini menyederhanakan proses, meningkatkan efisiensi, dan memperkuat keamanan dengan mencegah kebocoran kredensial.
Catatan
Penarikan bebas rahasia tidak didukung untuk gambar non-ACR, seperti gambar Docker.
Prasyarat
Sebelum menarik gambar ACR tanpa rahasia, selesaikan tugas-tugas berikut:
-
Buat instans ACR dan konfigurasikan repositori serta gambarnya.
-
Jika menggunakan instans ACR Edisi Enterprise, Anda harus mengonfigurasi kontrol akses jaringan.
Secara default, instans ACR Edisi Enterprise baru terputus dari semua jaringan. Anda harus mengonfigurasi daftar kontrol akses (ACL) untuk mengizinkan akses dari Internet atau Virtual Private Cloud (VPC).
Konfigurasi
Penarikan gambar bebas rahasia didukung secara berbeda tergantung pada tipe instans ACR dan apakah instans tersebut serta sumber daya ECI berada dalam Akun Alibaba Cloud yang sama.
|
Skenario akun
|
Tipe ACR
|
Dukungan
|
|
Akun sama
|
|
Diaktifkan secara default. Anda dapat mengonfigurasi peran RAM untuk membatasi cakupan akses bebas rahasia.
|
|
Akun sama
|
Edisi Enterprise (nama domain kustom)
|
Tidak diaktifkan secara default. Anda harus menentukan instans ACR untuk mengaktifkan akses bebas rahasia.
|
|
Lintas akun
|
-
Edisi Personal
-
Edisi Enterprise
|
Tidak diaktifkan secara default. Anda harus mengonfigurasi peran RAM untuk mengaktifkan akses bebas rahasia.
|
Pilih konfigurasi yang sesuai dengan pengaturan akun dan instans ACR Anda.
Batasi akses dengan peran RAM
Saat instans ACR dan sumber daya ECI berada dalam Akun Alibaba Cloud yang sama, akses bebas rahasia diaktifkan secara default untuk instans Edisi Personal dan untuk instans Edisi Enterprise yang menggunakan nama domain default. Anda dapat secara opsional mengonfigurasi peran Resource Access Management (RAM) untuk membatasi akses ini, misalnya hanya mengizinkan penarikan dari instans ACR tertentu.
Catatan
Secara default, ECI menggunakan peran terkait layanan AliyunServiceRoleForECI untuk mengakses layanan cloud lain saat membuat sumber daya ECI. Peran ini mencakup izin untuk menarik gambar dari semua instans ACR Edisi Personal dan instans ACR Edisi Enterprise yang menggunakan nama domain default dalam akun yang sama, namun tidak memungkinkan kontrol detail halus.
Konfigurasi ini terdiri dari dua langkah.
Langkah 1: Buat dan otorisasi peran RAM
-
Buat peran RAM untuk layanan Alibaba Cloud tepercaya. Untuk informasi selengkapnya, lihat Buat peran RAM untuk layanan Alibaba Cloud tepercaya.
Perhatikan parameter berikut:
-
Tipe prinsipal: Cloud Service
-
Nama prinsipal: Elastic Container Instance
-
Nama peran: acr-test (contoh)
-
Buat kebijakan izin kustom. Untuk informasi selengkapnya, lihat Buat kebijakan izin kustom.
Kebijakan berikut hanya mengizinkan penarikan gambar dari instans ACR yang ditentukan. Untuk informasi selengkapnya tentang cara menulis kebijakan izin, lihat Elemen kebijakan.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cr:Get*",
"cr:List*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cr:Pull*"
],
"Resource": [
"acs:cr:cn-hangzhou:1609982529******:instance/cri-nwj395hgf6f3****"
]
}
]
}
-
Sambungkan kebijakan izin kustom ke peran RAM. Untuk informasi selengkapnya, lihat Berikan izin kepada peran RAM.
-
Temukan peran acr-test yang baru dibuat dan klik namanya untuk membuka halaman detail. Verifikasi izin dan dapatkan ARN-nya.
Di bagian Informasi Dasar, temukan bidang ARN (berformat acs:ram::<AccountID>:role/acr-test) dan klik tombol salin di sebelahnya. Di tab Permissions, verifikasi bahwa kebijakan kustom acr telah disambungkan.
Langkah 2: Tentukan peran RAM
Saat memanggil operasi CreateContainerGroup untuk membuat instans ECI atau operasi CreateImageCache untuk membuat cache gambar, atur parameter AcrRegistryInfo.N.ArnService guna menentukan peran RAM yang akan digunakan saat membuat sumber daya. Parameter ini dijelaskan dalam tabel berikut. Untuk informasi selengkapnya, lihat CreateContainerGroup dan CreateImageCache.
|
Parameter
|
Type
|
Contoh
|
Deskripsi
|
|
AcrRegistryInfo.N.ArnService
|
string
|
acs:ram::1609982529******:role/acr-test
|
ARN dari peran RAM di Akun Alibaba Cloud yang memiliki sumber daya ECI.
|
Contoh berikut menunjukkan cara pass parameter melalui OpenAPI untuk membuat instans ECI:
ContainerGroupName=test-acr
#Container
Container.1.Name=test
Container.1.Image=test****-registry.cn-hangzhou.cr.aliyuncs.com/eci_test/nginx:1.0
#AcrRegistryInfo
AcrRegistryInfo.1.ArnService=acs:ram::1609982529******:role/acr-test
Tentukan instans ACR Enterprise
Jika instans ACR Edisi Enterprise menggunakan nama domain kustom dan berada dalam Akun Alibaba Cloud yang sama dengan sumber daya ECI, Anda harus menentukan instans ACR untuk mengaktifkan akses bebas rahasia.
API
Saat memanggil API CreateContainerGroup untuk membuat instans ECI atau API CreateImageCache untuk membuat cache gambar, Anda dapat mengatur parameter terkait AcrRegistryInfo untuk menentukan instans ACR. Tabel berikut menjelaskan parameter tersebut. Untuk informasi selengkapnya, lihat CreateContainerGroup dan CreateImageCache.
|
Parameter
|
Tipe
|
Contoh
|
Deskripsi
|
|
AcrRegistryInfo.N.RegionId
|
string
|
cn-beijing
|
Wilayah instans ACR Edisi Enterprise.
Parameter ini wajib jika instans ACR Edisi Enterprise dan sumber daya ECI berada di wilayah yang berbeda.
|
|
AcrRegistryInfo.N.InstanceId
|
string
|
cri-nwj395hgf6f3****
|
ID instans ACR Edisi Enterprise.
Parameter ini wajib jika instans ACR Edisi Enterprise menggunakan nama domain kustom.
|
Contoh berikut menunjukkan cara pass parameter melalui OpenAPI untuk membuat instans ECI:
-
Contoh 1: Tentukan hanya ID instans ACR
ContainerGroupName=test
#Container
Container.1.Name=c1
Container.1.Image=test****-registry.example.com/eci_test/nginx:1.0
#AcrRegistryInfo
AcrRegistryInfo.1.InstanceId=cri-nwj395hg********
-
Contoh 2: Tentukan wilayah dan ID instans ACR
ContainerGroupName=test
#Container
Container.1.Name=c1
Container.1.Image=test****-registry.example.com/eci_test/nginx:1.0
Container.2.Name=c2
Container.2.Image=test****-registry.example.com/eci_test/busybox:1.0
Container.2.Command=sleep
Container.2.Arg=3600
#AcrRegistryInfo
AcrRegistryInfo.1.RegionId=cn-beijing
AcrRegistryInfo.1.InstanceId=cri-nwj395hg********
Konsol
Saat membuat instans ECI dari halaman pembelian ECI, navigasikan ke bagian Konfigurasi Kontainer. Dari sana, pilih gambar untuk kontainer dan gunakan tab Enterprise Image untuk menentukan gambar dari instans ACR Edisi Enterprise.
Di kotak dialog Enterprise Image, konfigurasikan informasi instans Container Registry (CRI), termasuk Region dan Instance Name. Lalu, pilih Image Repository dan Domain Name, kemudian klik OK.
Catatan
Anda tidak dapat menentukan gambar dari instans ACR Edisi Enterprise saat membuat cache gambar di konsol.
Akses lintas akun dengan peran RAM
Jika instans ACR dan sumber daya ECI berada dalam akun Alibaba Cloud yang berbeda, Anda harus mengonfigurasi dan mengotorisasi peran RAM di kedua akun untuk mengaktifkan akses bebas rahasia.
Langkah 1: Buat dan otorisasi peran RAM
-
Di Akun A, yang memiliki sumber daya ECI, buat dan otorisasi peran RAM.
-
Buat peran RAM untuk layanan Alibaba Cloud tepercaya. Untuk informasi selengkapnya, lihat Buat peran RAM untuk layanan Alibaba Cloud tepercaya.
Perhatikan parameter berikut:
-
Tipe prinsipal: Cloud Service
-
Nama prinsipal: Elastic Container Instance
-
Nama peran: role-assume (contoh)
-
Berikan izin kepada peran role-assume untuk memanggil operasi AssumeRole Layanan Token Keamanan (STS). Untuk informasi selengkapnya, lihat Berikan izin kepada peran RAM.
Sambungkan kebijakan sistem AliyunSTSAssumeRoleAccess.
-
Temukan peran role-assume yang baru dibuat, klik namanya untuk membuka halaman detail, lalu verifikasi izin dan kebijakan kepercayaan serta dapatkan ARN-nya.
-
Izin dan ARN
ARN dari peran RAM adalah acs:ram::<AccountID>:role/role-assume. Peran ini diberikan kebijakan sistem AliyunSTSAssumeRoleAccess, yang mengizinkannya memanggil operasi STS AssumeRole.
-
Kebijakan kepercayaan
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"eci.aliyuncs.com"
]
}
}
],
"Version": "1"
}
-
Di Akun B, yang memiliki instans ACR, buat dan otorisasi peran RAM.
-
Buat peran RAM untuk akun Alibaba Cloud tepercaya. Untuk informasi selengkapnya, lihat Buat peran RAM untuk akun Alibaba Cloud tepercaya.
Perhatikan parameter berikut:
-
Tipe prinsipal: Alibaba Cloud Account
-
Nama prinsipal: Other Alibaba Cloud Account. Masukkan ID Akun A, yang memiliki sumber daya ECI.
-
Nama peran: role-acr (contoh)
-
Berikan izin kepada peran role-acr untuk menarik gambar ACR. Untuk informasi selengkapnya, lihat Berikan izin kepada peran RAM.
Sambungkan kebijakan sistem AliyunContainerRegistryFullAccess.
-
Ubah kebijakan kepercayaan untuk mengizinkan peran role-assume mengasumsikan peran role-acr. Untuk informasi selengkapnya, lihat Ubah kebijakan kepercayaan peran RAM.
Secara default, peran role-acr dapat diasumsikan oleh pengguna RAM atau peran RAM mana pun yang diotorisasi di Akun A. Kami menyarankan agar Anda mengubah kebijakan kepercayaan untuk otorisasi yang tepat.
Di bagian Principal, ubah nilai bidang RAM menjadi ARN dari peran role-assume. Hal ini memastikan hanya peran role-assume yang dapat mengasumsikan peran role-acr. Contoh:
"Principal": {
"RAM": [
"acs:ram::1609982529******:role/role-assume"
]
}
-
Verifikasi izin dan kebijakan kepercayaan, lalu dapatkan ARN-nya.
-
Izin dan ARN
ARN dari peran role-acr adalah acs:ram::<AccountID>:role/role-acr. Anda dapat mengklik tombol salin untuk menyalin nilainya. Di tab Permissions, verifikasi bahwa kebijakan sistem AliyunContainerRegistryFullAccess telah disambungkan dan cakupan sumber dayanya berada di tingkat akun.
-
Kebijakan kepercayaan
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"RAM": ["acs:ram::10051309xxxx:role/role-assume"]
}
}
],
"Version": "1"
}
Langkah 2: Tentukan peran RAM
Saat memanggil operasi CreateContainerGroup atau CreateImageCache, Anda dapat mengatur parameter AcrRegistryInfo untuk menentukan instans ACR dari akun Alibaba Cloud lain. Perhatikan hal berikut:
-
Jika instans ACR dimiliki oleh akun Alibaba Cloud lain, Anda harus mengatur parameter ArnService dan ArnUser untuk menentukan peran RAM guna konfigurasi izin.
-
Jika instans ACR Edisi Enterprise menggunakan nama domain kustom, Anda juga harus mengatur parameter InstanceId.
Untuk informasi selengkapnya, lihat CreateContainerGroup dan CreateImageCache.
|
Parameter
|
Tipe
|
Contoh
|
Deskripsi
|
|
AcrRegistryInfo.N.ArnService
|
string
|
acs:ram::1609982529******:role/role-assume
|
ARN dari peran RAM di akun yang memiliki sumber daya ECI.
|
|
AcrRegistryInfo.N.ArnUser
|
string
|
acs:ram::1298452580******:role/role-acr
|
ARN dari peran RAM di akun yang memiliki instans ACR.
|
|
AcrRegistryInfo.N.RegionId
|
string
|
cn-beijing
|
Wilayah instans ACR Edisi Enterprise.
Parameter ini wajib jika instans ACR Edisi Enterprise dan sumber daya ECI berada di wilayah yang berbeda.
|
|
AcrRegistryInfo.N.InstanceId
|
string
|
cri-nwj395hgf6f3****
|
ID instans ACR Edisi Enterprise.
Parameter ini wajib jika instans ACR Edisi Enterprise menggunakan nama domain kustom.
|
Contoh berikut menunjukkan cara pass parameter melalui OpenAPI untuk membuat instans ECI:
ContainerGroupName=test-acr
#Container
Container.1.Name=test
Container.1.Image=test****-registry.cn-hangzhou.cr.aliyuncs.com/eci_test/nginx:1.0
#AcrRegistryInfo
AcrRegistryInfo.1.ArnService=acs:ram::1609982529******:role/role-assume
AcrRegistryInfo.1.ArnUser=acs:ram::1298452580******:role/role-acr