Tambahkan pernyataan Deny dengan elemen condition ke dalam kebijakan RAM untuk memblokir operasi ECS yang tidak aman, seperti penugasan alamat IP publik, logon berbasis password, atau eksposur port berisiko tinggi.
Risiko keamanan dari kebijakan Allow-only
Pernyataan kebijakan RAM standar menggunakan efek Allow untuk memberikan izin. Sebagai contoh, kebijakan berikut mengizinkan pengguna membuat instans ECS dengan aksi ecs:RunInstances:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Resource": "acs:ecs:*:*:instance/*",
"Action": [
"ecs:RunInstances"
]
}
}
Pendekatan ini memberikan izin yang terlalu luas sehingga dapat menghasilkan resource yang tidak sesuai kebijakan. Contohnya:
-
Permukaan serangan yang terbuka: Server database yang seharusnya hanya digunakan secara internal diberi Elastic IP Address (EIP).
-
Kredensial lemah: Instans ECS yang menggunakan logon berbasis password rentan terhadap serangan brute-force.
-
Pelanggaran kepatuhan: Resource dibuat tanpa menggunakan image yang telah diperkeras dan disetujui perusahaan.
Praktik terbaik
Prinsip inti
Tambahkan pernyataan Deny dengan condition ke dalam kebijakan Allow:
-
Deny memiliki prioritas lebih tinggi: RAM memeriksa semua kebijakan yang berlaku. Jika ada pernyataan yang menghasilkan
Deny, permintaan akan ditolak, meskipun pernyataan lain menghasilkanAllow. -
Batasan tepat dengan kondisi: Pernyataan
Denydapat mencakup blokcondition. EfekDenyhanya berlaku jika permintaan sesuai denganAction,Resource, danconditiondalam kebijakan.
Sebagai contoh, kebijakan berikut menolak ("Effect": "Deny") aksi ecs:RunInstances pada resource instans apa pun (acs:ecs:*:*:instance/*) ketika alamat IP publik dikaitkan ("ecs:AssociatePublicIpAddress": "true").
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Resource": "acs:ecs:*:*:instance/*",
"Action": [
"ecs:RunInstances"
],
"Condition": {
"Bool": {
"ecs:AssociatePublicIpAddress": "true"
}
}
}
]
}
Strategi "Allow + Deny with Condition" ini memberikan izin yang luas sekaligus menambahkan Deny bersyarat sebagai pembatas untuk memblokir tindakan yang melanggar garis dasar keamanan Anda. Dengan demikian, panduan keamanan diubah menjadi aturan yang ditegakkan oleh platform.
Prosedur
Sambungkan dua kebijakan ke pihak yang berwenang (RAM user, kelompok pengguna, atau role): kebijakan Allow seperti AliyunECSFullAccess, dan kebijakan Deny khusus. Kebijakan Allow memberikan izin, sedangkan kebijakan Deny menolak permintaan yang tidak sesuai kebijakan.
-
Identifikasi operasi dan kondisi yang perlu dibatasi
Identifikasi aturan keamanan yang akan ditegakkan dan temukan RAM Action serta Condition Key yang sesuai. Condition Key adalah parameter yang diekspos oleh API layanan cloud kepada RAM untuk evaluasi. Sebagai contoh, lihat bagian "Authorization Information" pada RunInstances untuk semua Condition Key yang didukung oleh
ecs:RunInstances. -
Buat kebijakan Deny bersyarat
-
Masuk ke Konsol RAM. Di panel navigasi kiri, pilih .
-
Di halaman Policies, klik Create Policy.
-
Di halaman Create Policy, klik tab JSON Editor. Masukkan isi kebijakan lalu klik OK.
Contoh berikut menunjukkan kebijakan Deny umum:
-
Masukkan Policy Name dan Description, lalu klik OK. Selesaikan verifikasi keamanan.
-
-
Lampirkan Kebijakan Deny
Sambungkan kebijakan tersebut ke RAM user, kelompok pengguna, atau role yang dituju.
-
Masuk ke Konsol RAM. Di panel navigasi kiri, pilih .
-
Di halaman Users, temukan RAM user yang dituju lalu klik Attach Policy di kolom Actions.
-
Di panel Attach Policy, pilih kebijakan Deny lalu klik OK.
-