Tandai citra yang disetujui dan terapkan kebijakan RAM untuk memblokir peluncuran instans dari citra yang tidak ditag.
Risiko keamanan
| Risk | Description |
|---|---|
| Malicious images | Citra publik dari sumber tidak dikenal mungkin berisi malware, program penambangan, atau backdoor, sehingga memungkinkan penyerang mengambil alih instans ECS Anda. |
| Vulnerable images | Citra internal yang tidak dikelola menjadi vektor serangan. Citra yang kedaluwarsa atau belum dipatch mungkin mengandung kerentanan seperti Log4j atau Heartbleed. |
| Improperly configured images | Citra dengan konfigurasi default yang tidak aman—seperti port terbuka yang tidak perlu atau kata sandi lemah—akan membawa risiko tersebut ke setiap instans yang diluncurkan darinya. |
Buat dan tag citra emas
Buat citra garis dasar yang telah diperkuat dan diperbarui secara berkala, lalu tandai sebagai disetujui. Contohnya:
-
status: approved -
security-level: trusted -
environment: production
Setelah menandai citra yang disetujui, lindungi tag tersebut. Tolak ecs:DeleteTags, ecs:UntagResources, ecs:CreateTags, dan ecs:TagResources pada resource Citra ECS untuk mencegah pengguna mengubah tag. Contoh kebijakan RAM di bawah mencakup pernyataan deny ini.
Cari citra dengan tag yang disetujui
Sebelum membuat instans, temukan ImageId dari citra yang disetujui.
Konsol
-
Buka ECS console - images.
-
Pada daftar citra, gunakan filter tag untuk menemukan citra dengan tag tertentu.
-
Pada kolom Actions, klik Create Instance.
API
-
Panggil DescribeImages dengan
Tag.KeydanTag.Valuediatur sesuai tag yang disetujui untuk mendapatkan ID citra yang sesuai. -
Gunakan
ImageIdyang dikembalikan ke RunInstances atau CreateInstance untuk membuat instans.
Terapkan kebijakan RAM
Gunakan kebijakan RAM untuk memblokir pembuatan instans atau penggantian disk sistem jika citra tidak ditag sebagai disetujui. Terapkan kebijakan ini bersama dengan izin ECS yang sudah dimiliki pengguna. Kebijakan berikut menggunakan tiga pernyataan deny:
-
Deny on wrong tag value: Memblokir
ecs:CreateInstance,ecs:RunInstances, danecs:ReplaceSystemDiskketika nilai tagenvironmentpada citra bukanproduction(StringNotEquals). -
Deny on missing tag: Memblokir aksi yang sama ketika citra tidak memiliki tag
environmentsama sekali (Null). Tanpa aturan ini, citra yang tidak ditag tidak akan diblokir. -
Deny on tag operations: Memblokir semua operasi tag (
ecs:DeleteTags,ecs:UntagResources,ecs:CreateTags,ecs:TagResources) pada resource Citra ECS untuk mencegah bypass berbasis tag.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ecs:CreateInstance",
"ecs:RunInstances",
"ecs:ReplaceSystemDisk"
],
"Resource": "acs:ecs:*:*:image/*",
"Condition": {
"StringNotEquals": {
"acs:ResourceTag/environment": "production"
}
}
},
{
"Effect": "Deny",
"Action": [
"ecs:CreateInstance",
"ecs:RunInstances",
"ecs:ReplaceSystemDisk"
],
"Resource": "acs:ecs:*:*:image/*",
"Condition": {
"Null": {
"acs:ResourceTag/environment": "true"
}
}
},
{
"Effect": "Deny",
"Action": [
"ecs:DeleteTags",
"ecs:UntagResources",
"ecs:CreateTags",
"ecs:TagResources"
],
"Resource": "acs:ecs:*:*:image/*"
}
]
}
Untuk pengguna perusahaan
-
Masuk ke Resource Directory console. Di menu kiri, klik Control Policies, lalu buat kebijakan kustom dengan JSON di atas.
-
Di direktori sumber daya, pilih node target dan sambungkan kebijakan tersebut. Kebijakan ini berlaku untuk semua akun di bawah node tersebut.
Untuk pengguna non-perusahaan
-
Masuk ke RAM console. Di menu kiri, klik Policies, lalu buat kebijakan kustom dengan JSON yang sama.
-
Sambungkan kebijakan tersebut ke RAM user, Grup pengguna RAM, atau Peran RAM. Lihat Manage policy-based authorization.
Perbaiki instans yang tidak sesuai
Jika instans telah diluncurkan sebelum kebijakan diterapkan, sesuaikan instans tersebut agar memenuhi kebijakan.
-
Jika citra masih ada dan Anda mengontrolnya: tambahkan tag yang diperlukan.
-
Jika citra telah dihapus atau berasal dari sumber eksternal yang tidak dapat ditag: ganti atau hentikan instans yang terdampak.