Anda dapat mengonfigurasi konteks keamanan untuk menyesuaikan izin dan kontrol akses pada Pod atau kontainer.
Informasi latar belakang
Konteks keamanan menentukan pengaturan izin dan kontrol akses untuk instans Elastic Container Instance atau kontainer. Contoh pengaturannya mencakup Discretionary Access Control, Security Enhanced Linux (SELinux), dan Linux Capabilities. Untuk informasi selengkapnya, lihat Configure a Security Context for a Pod or Container.
Anda dapat mengonfigurasi konteks keamanan pada tingkat berikut:
Konteks keamanan Pod
ECI memungkinkan Anda memodifikasi parameter sysctl dengan mengonfigurasi konteks keamanan tingkat Pod (tingkat instans). Pengaturan ini berlaku untuk semua kontainer dan volume dalam instans tersebut.
Konteks keamanan kontainer
ECI memungkinkan Anda memodifikasi parameter runAsUser dan capabilities dengan mengonfigurasi konteks keamanan tingkat kontainer. Pengaturan ini hanya berlaku untuk kontainer yang ditentukan.
Mengonfigurasi konteks keamanan untuk instans
Deskripsi fitur
Pada sistem Linux, Anda dapat memodifikasi parameter kernel waktu proses melalui antarmuka sysctl. Untuk melihat parameter kernel dari instans Elastic Container Instance, jalankan perintah berikut. Informasi selengkapnya tersedia di sysctl.sh.
sysctl -aAnda dapat memodifikasi parameter sysctl dan runAsUser dengan mengonfigurasi konteks keamanan untuk Pod.
Untuk menghindari ketidakstabilan sistem operasi, pastikan Anda memahami sepenuhnya dampak modifikasi parameter sysctl sebelum melanjutkan. Informasi selengkapnya tersedia di sysctl.
Parameter sysctl berikut dapat dimodifikasi di Elastic Container Instance:
kernel.shm*
kernel.msg*
kernel.sem
fs.mqueue.*
net.* (kecuali net.ipv4.tcp_syncookies)
vm.min_free_kbytes
Kami menyarankan agar nilai vm.min_free_kbytes tidak melebihi 20% dari ukuran memori total.
Deskripsi konfigurasi
Saat memanggil operasi CreateContainerGroup untuk membuat instans ECI, Anda dapat mengonfigurasi konteks keamanan instans menggunakan parameter SecurityContext.Sysctl atau HostSecurityContext.Sysctl. SecurityContext.Sysctl digunakan untuk memodifikasi parameter sysctl aman, sedangkan HostSecurityContext.Sysctl digunakan untuk memodifikasi parameter sysctl tidak aman. Tabel berikut menjelaskan parameter tersebut. Informasi selengkapnya tersedia di CreateContainerGroup.
Nama | Tipe | Contoh | Deskripsi |
SecurityContext.Sysctl.N.Name | string | net.ipv4.ping_group_range | Nama sysctl aman saat Anda memodifikasi sysctl dengan mengonfigurasi konteks keamanan. Nilai yang valid:
|
SecurityContext.Sysctl.N.Value | string | 1 | Nilai sysctl aman saat Anda memodifikasi sysctl dengan mengonfigurasi konteks keamanan. |
HostSecurityContext.Sysctl.N.Name | string | kernel.msgmax | Nama sysctl tidak aman saat Anda memodifikasi sysctl dengan mengonfigurasi konteks keamanan. Nilai yang valid:
|
HostSecurityContext.Sysctl.N.Value | string | 65536 | Nilai sysctl tidak aman saat Anda memodifikasi sysctl dengan mengonfigurasi konteks keamanan. |
Mengonfigurasi konteks keamanan untuk kontainer
Deskripsi fitur
Pada tingkat kontainer, Anda dapat mengonfigurasi konteks keamanan untuk kontainer tertentu. Tabel berikut menjelaskan parameter yang didukung oleh ECI.
Parameter | Deskripsi |
runAsUser | ID pengguna yang menjalankan kontainer. Pengaturan parameter ini menggantikan perintah USER dalam Dockerfile. |
runAsGroup | Kelompok pengguna yang menjalankan kontainer. |
runAsNonRoot | Menentukan apakah pengguna menjalankan kontainer sebagai pengguna non-root. Nilai yang valid: true atau false. Nilai default: false. |
privileged | Menentukan apakah kontainer dijalankan dalam mode istimewa. Nilai true menentukan bahwa kontainer dijalankan dalam mode istimewa. Nilai default: false. Catatan Fitur kontainer istimewa sedang dalam pratinjau internal. Untuk menggunakan fitur ini, kirimkan tiket. |
capabilities | Izin yang diberikan kepada proses dalam kontainer. Untuk informasi selengkapnya, lihat Linux capabilities. Anda dapat mengonfigurasi izin berikut:
Catatan Anda tidak dapat memberikan izin SYS_RAWIO kepada proses. Untuk menggunakan SYS_RAWIO, kirimkan tiket. |
Tabel berikut menjelaskan beberapa parameter yang tidak didukung beserta nilai defaultnya.
Parameter yang tidak didukung | Deskripsi |
AllowedProcMountTypes | Jenis pemasangan proc yang diizinkan untuk kontainer. Nilai default: DefaultProcMount. |
readOnlyRootFilesystem | Menentukan apakah sistem file root tempat kontainer berjalan bersifat read-only. Nilai default: true. |
Deskripsi konfigurasi
Saat memanggil operasi API CreateContainerGroup untuk membuat instans Elastic Container Instance, Anda dapat menggunakan parameter terkait Container.N.SecurityContext untuk mengonfigurasi konteks keamanan kontainer. Tabel berikut menjelaskan parameter terkait tersebut. Informasi selengkapnya tersedia di CreateContainerGroup.
Nama | Tipe | Contoh | Deskripsi |
Container.N.SecurityContext.Capability.Add.N | array | NET_ADMIN | Izin yang diberikan kepada proses dalam kontainer. |
Container.N.SecurityContext.ReadOnlyRootFilesystem | boolean | true | Menentukan apakah sistem file root tempat kontainer berjalan bersifat read-only. Tetapkan nilainya ke true. |
Container.N.SecurityContext.RunAsUser | long | 1000 | ID pengguna yang menjalankan kontainer. |
Container.N.SecurityContextRunAsGroup | long | 3000 | Kelompok pengguna yang menjalankan kontainer. |
Container.N.SecurityContextRunAsNonRoot | boolean | true | Menentukan apakah akan menjalankan kontainer sebagai pengguna non-root. Nilai default: false. Nilai yang valid:
|
Container.N.SecurityContextPrivileged | boolean | true | Menentukan apakah akan mengaktifkan mode istimewa untuk kontainer. Artinya, apakah kontainer dijalankan dalam mode istimewa. Nilai default: false. Nilai yang valid:
Catatan Fitur kontainer istimewa sedang dalam pratinjau internal. Untuk menggunakan fitur ini, kirimkan tiket. |
Anda juga dapat mengonfigurasi konteks keamanan untuk init container. Parameter-parameternya mirip dengan yang ada pada tabel di atas, tetapi SecurityContextRunAsGroup dan SecurityContextRunAsNonRoot tidak didukung.