Jika kebijakan sistem Resource Management Service (RAM) tidak memenuhi kebutuhan bisnis Anda, Anda dapat membuat kebijakan kustom untuk menerapkan prinsip hak istimewa minimal. Kebijakan kustom memungkinkan pengelolaan izin secara detail dan meningkatkan keamanan akses terhadap sumber daya. Topik ini menjelaskan cara mengonfigurasi kebijakan kustom untuk Elastic Compute Service (ECS) serta menyediakan contoh-contohnya.
Latar Belakang
Untuk informasi tentang cara membuat kebijakan kustom, lihat Buat kebijakan kustom.
Sebelum membuat kebijakan kustom, kami menyarankan agar Anda memahami elemen dasar dan sintaksis kebijakan. Untuk informasi selengkapnya, lihat Elemen kebijakan dan Struktur dan sintaksis kebijakan.
Untuk informasi tentang cara beberapa kebijakan diterapkan, lihat Proses evaluasi kebijakan.
Contoh kebijakan kustom
Kebijakan kustom yang memberikan Pengguna RAM izin untuk membuat instans ECS pay-as-you-go
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeImages",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups",
"ecs:DescribeKeyPairs",
"ecs:DescribeTags",
"ecs:RunInstances"
],
"Resource": "*"
}
],
"Version": "1"
}
Kebijakan kustom yang memberikan Pengguna RAM izin untuk membuat instans ECS subscription
Anda dapat memanggil operasi API yang terkait bss untuk melakukan kueri dan membayar pesanan subscription. Kebijakan sistem yang sesuai adalah AliyunBSSOrderAccess.
Jika Anda menyetel autoPay ke true saat memanggil operasi RunInstances untuk membuat instans ECS subscription, Anda tidak memerlukan izin untuk memanggil operasi API yang terkait bss.
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeImages",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups",
"ecs:DescribeKeyPairs",
"ecs:DescribeTags",
"ecs:RunInstances",
"bss:DescribeOrderList",
"bss:DescribeOrderDetail",
"bss:PayOrder",
"bss:CancelOrder"
],
"Resource": "*"
}
],
"Version": "1"
}
Kebijakan kustom yang memberikan Pengguna RAM izin untuk restart instans ECS
Kebijakan berikut menunjukkan bahwa Pengguna RAM yang diotorisasi dapat merestart instans ECS. Instans ECS hanya dapat direstart ketika MFA diaktifkan untuk Pengguna RAM tersebut dan Pengguna RAM tersebut menggunakan MFA untuk login. Dalam kasus ini, kunci kondisi acs:MFAPresent dalam elemen Condition disetel ke true.
{
"Statement": [
{
"Action": "ecs:RebootInstance",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}Kebijakan kustom yang memberikan Pengguna RAM izin untuk mengelola instans ECS tertentu
Kebijakan berikut menunjukkan bahwa Pengguna RAM yang diotorisasi dapat melihat semua instans ECS di bawah Akun Alibaba Cloud, tetapi hanya dapat mengelola instans ECS i-001.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "acs:ecs:*:*:instance/i-001"
},
{
"Action": "ecs:Describe*",
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "1"
}Kebijakan kustom yang memberikan Pengguna RAM izin untuk terhubung ke instans ECS tertentu menggunakan Workbench
Kebijakan berikut menunjukkan bahwa Pengguna RAM yang diotorisasi dapat melihat semua instans ECS dan sumber daya dalam Akun Alibaba Cloud, tetapi hanya diizinkan terhubung ke instans ECS i-001 menggunakan Workbench.
{
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ecs-workbench:LoginInstance",
"Resource": "acs:ecs-workbench:*:*:workbench/i-001"
}
],
"Version": "1"
}Kebijakan kustom yang melarang Pengguna RAM terhubung ke instans ECS menggunakan VNC
Kebijakan berikut mencegah penggunaan Virtual Network Computing (VNC) untuk terhubung ke semua instans ECS:
{
"Statement": [
{
"Effect": "Deny",
"Action": "ecs:DescribeInstanceVncUrl",
"Resource": "*"
}
],
"Version": "1"
}Kebijakan kustom yang memberikan Pengguna RAM izin untuk melihat instans ECS di wilayah tertentu
Kebijakan berikut menunjukkan bahwa Pengguna RAM yang diotorisasi dapat melihat instans ECS di wilayah China (Qingdao), tetapi tidak dapat melihat disk atau Snapshot di wilayah tersebut.
{
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:Describe*",
"Resource": "acs:ecs:cn-qingdao:*:instance/*"
}
],
"Version": "1"
}Kebijakan kustom yang memberikan Pengguna RAM izin untuk mengelola grup keamanan dalam Akun Alibaba Cloud
Kebijakan berikut menentukan bahwa Pengguna RAM yang diotorisasi dapat mengelola Grup keamanan ECS dalam Akun Alibaba Cloud.
{
"Version": "1",
"Statement": [
{
"Action": "ecs:*SecurityGroup*",
"Resource": "*",
"Effect": "Allow"
}
]
}Kebijakan kustom yang memberikan Pengguna RAM izin untuk membuat peran RAM instans
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs: CreateInstance",
"ecs: AttachInstanceRamRole",
"ecs: DetachInstanceRAMRole"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*"
}
]
}
Kebijakan kustom yang memberikan Pengguna RAM izin untuk melakukan kueri informasi tentang instans ECS dan perangkat penyimpanan blok yang ada
{
"Statement": [
{
"Effect": "Allow",
"Action": ["ecs:DescribeInstances", "ecs:DescribeDisks"],
"Resource": "*"
}
],
"Version": "1"
}
Kebijakan kustom yang memberikan Pengguna RAM izin untuk membeli rencana penghematan
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "bssapi:CreateSavingsPlansInstance",
"Resource": "*"
}
]
}Kebijakan kustom yang menolak Pengguna RAM izin untuk membuat VPC default saat Pengguna RAM tersebut membuat instans ECS
ECS memungkinkan Anda menggunakan Pengguna RAM untuk mengisolasi operasi antar bisnis yang berbeda. Secara default, Pengguna RAM yang diberikan izin AliyunECSFullAccess dapat melakukan operasi pada sumber daya ECS, seperti membuat, melihat, dan merestart instans ECS. Jika Anda ingin menolak Pengguna RAM izin untuk membuat virtual private cloud (VPC) default di wilayah yang tidak memiliki VPC saat Pengguna RAM tersebut membuat instans ECS, tetapi tetap mempertahankan izin lainnya, Anda dapat mengonfigurasi kebijakan kustom.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"vpc:CreateDefaultVpc": ["true"]
}
}
}
]
}
Kebijakan kustom yang memberikan Pengguna RAM izin untuk menggunakan daftar awalan
{
"Statement": [
{
"Action": [
"ecs:CreatePrefixList",
"ecs:ModifyPrefixList",
"ecs:DescribePrefixLists",
"ecs:DescribePrefixListAssociations",
"ecs:DescribePrefixListAttributes",
"ecs:DeletePrefixList"
],
"Resource": "*",
"Effect": "Allow"
}
],
"Version": "1"
}
Kebijakan kustom yang memberikan Pengguna RAM izin untuk menggunakan Cloud Assistant
Untuk informasi selengkapnya, lihat bagian contoh kebijakan kustom spesifik Agen Asisten Cloud pada topik "Berikan Pengguna RAM izin untuk menggunakan Asisten Cloud".
Kebijakan kustom yang memberikan Pengguna RAM izin untuk membaca Bucket OSS
{
"Version": "1",
"Statement": [
{
"Action": ["oss:GetObject", "oss:GetBucketLocation", "oss:GetBucketInfo"],
"Resource": "*",
"Effect": "Allow"
}
]
}
Kebijakan kustom yang memberikan Pengguna RAM izin untuk membaca dan menulis Bucket OSS
{
"Version": "1",
"Statement": [
{
"Action": [
"oss:GetObject",
"oss:GetBucketLocation",
"oss:GetBucketInfo",
"oss:PutObject",
"oss:DeleteObject",
"oss:AbortMultipartUpload",
"oss:ListMultipartUploads",
"oss:ListParts"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Kebijakan kustom yang memberikan Pengguna RAM izin untuk mengakses sumber daya ECS hanya melalui HTTPS
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:SecureTransport": "true"
}
}
}
],
"Version": "1"
}Kebijakan kustom yang memberikan Pengguna RAM izin untuk membuat hanya disk terenkripsi
Untuk perusahaan tertentu yang memiliki persyaratan kepatuhan keamanan tinggi, semua Pengguna RAM dalam Akun Alibaba Cloud perusahaan tersebut wajib menerapkan enkripsi data guna memastikan kerahasiaan informasi. Anda dapat menyambungkan kebijakan kustom ke Pengguna RAM untuk memberikan izin membuat hanya disk terenkripsi untuk instans ECS.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:IsDiskEncrypted": "*false*"
}
},
"Effect": "Deny"
},
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ecs:IsSystemDiskEncrypted": "false"
}
},
"Effect": "Deny"
},
{
"Action": "ecs:CreateDisk",
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:IsDiskEncrypted": "*false*"
}
},
"Effect": "Deny"
}
]
}Kebijakan kustom yang memberikan Pengguna RAM izin untuk membuat hanya disk yang dienkripsi menggunakan CMK
Saat membeli instans ECS atau membuat disk data, Anda dapat mengonfigurasi kebijakan kustom berikut untuk memberikan Pengguna RAM izin membuat hanya disk terenkripsi yang menggunakan customer master keys (CMK). Setelah kebijakan kustom disambungkan ke Pengguna RAM, Anda hanya dapat memilih CMK untuk mengenkripsi disk tersebut.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:IsDiskByokEncrypted": "*false*"
}
},
"Effect": "Deny"
},
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ecs:IsSystemDiskByokEncrypted": "false"
}
},
"Effect": "Deny"
},
{
"Action": "ecs:CreateDisk",
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:IsDiskByokEncrypted": "*false*"
}
},
"Effect": "Deny"
}
]
}Kebijakan kustom yang memberikan Pengguna RAM izin untuk membuat instans ECS hanya menggunakan gambar kustom
Saat membeli instans ECS, Anda dapat membuat kebijakan kustom berikut untuk memberikan Pengguna RAM izin hanya menggunakan gambar kustom dalam pembuatan instans ECS.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Effect": "Deny",
"Resource": "acs:ecs:<Region ID>:*:instance/*",
"Condition": {
"StringNotEquals": {
"ecs:ImageSource": "Custom"
}
}
}
]
}Kebijakan kustom yang melarang Pengguna RAM login ke instans ECS sebagai pengguna root
Saat membeli instans ECS, mengganti disk sistem instans ECS, menyambungkan disk sistem ke instans ECS, atau mengatur ulang kata sandi instans ECS secara online, Anda dapat membuat kebijakan kustom berikut yang melarang Pengguna RAM login ke instans ECS sebagai pengguna root. Setelah kebijakan kustom disambungkan ke Pengguna RAM, login sebagai pengguna root ke instans ECS tidak lagi dimungkinkan.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:CreateOrder",
"ecs:ReplaceSystemDisk",
"ecs:AttachDisk",
"ecs:InvokeCommand"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:LoginAsNonRoot": [
"false"
]
}
},
"Effect": "Deny"
}
]
}Kebijakan kustom yang melarang Pengguna RAM menggunakan username dan password untuk login ke instans ECS
Saat membeli instans ECS, mengganti disk sistem instans ECS, menyambungkan disk sistem ke instans ECS, atau mengatur ulang kata sandi instans ECS secara online atau offline, Anda dapat membuat kebijakan kustom berikut yang melarang Pengguna RAM menggunakan username dan password untuk login ke instans ECS. Setelah kebijakan kustom disambungkan ke Pengguna RAM, Anda hanya dapat menggunakan pasangan kunci atau Session Manager untuk login ke instans ECS tanpa menyediakan username dan password.
Anda dapat mengonfigurasi parameter ecs:ImagePlatform dalam elemen Condition pernyataan kebijakan untuk membatasi cakupan instans yang dapat Anda login dengan memasukkan username dan password. Misalnya, jika Anda menyetel parameter ecs:ImagePlatform ke linux, Anda dapat memasukkan username dan password untuk login ke instans Windows, tetapi tidak ke instans Linux.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:CreateOrder",
"ecs:ReplaceSystemDisk"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:PasswordCustomized": [
"true"
]
},
"StringEquals": {
"ecs:ImagePlatform": "linux"
}
},
"Effect": "Deny"
},
{
"Action": [
"ecs:ModifyInstanceAttribute",
"ecs:InvokeCommand",
"ecs:AttachDisk"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:PasswordCustomized": [
"true"
]
}
},
"Effect": "Deny"
}
]
}Kebijakan kustom yang melarang Pengguna RAM menggunakan password yang telah ditetapkan dalam citra instans ECS untuk login ke instans tersebut
Saat membeli instans ECS atau mengganti disk sistem instans ECS, Anda dapat mengonfigurasi kebijakan kustom berikut untuk melarang Pengguna RAM menggunakan password yang telah ditetapkan dalam citra instans tersebut untuk login ke instans tersebut. Setelah kebijakan kustom disambungkan ke Pengguna RAM, Anda tidak dapat menggunakan password yang telah ditetapkan dalam citra instans ECS untuk terhubung ke instans tersebut.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:CreateOrder",
"ecs:ReplaceSystemDisk"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:PasswordInherit": [
"true"
]
}
},
"Effect": "Deny"
}
]
}Kebijakan kustom yang melarang Pengguna RAM membuat aturan grup keamanan yang berisi 0.0.0.0/0 sebagai objek otorisasi
Jika aturan inbound dalam grup keamanan mengizinkan 0.0.0.0/0, semua alamat IP eksternal dapat mengakses instans ECS dalam grup keamanan tersebut, sehingga meningkatkan risiko keamanan. Kami menyarankan agar Anda mengonfigurasi kebijakan kustom yang melarang Pengguna RAM membuat aturan grup keamanan yang berisi 0.0.0.0/0 sebagai objek otorisasi dan melarang penggunaan grup keamanan default saat membuat instans ECS.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ecs:AuthorizeSecurityGroup",
"ecs:ConfigureSecurityGroupPermissions",
"ecs:ModifySecurityGroupRule"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringLike": {
"ecs:SecurityGroupIpProtocols": [
"TCP"
]
},
"ForAnyValue:CIDRInRange": {
"ecs:SecurityGroupSourceCidrIps": [
"0.0.0.0/0"
]
}
}
},
{
"Effect": "Deny",
"Action": [
"ecs:CreateInstance",
"ecs:RunInstances"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:NotSpecifySecureGroupId": [
"true"
]
}
}
}
]
}Kebijakan kustom yang mengizinkan Pengguna RAM hanya menggunakan mode penguatan keamanan untuk mengakses metadata instans
Anda dapat menggunakan kebijakan izin untuk mengizinkan semua Pengguna RAM di bawah Akun Alibaba Cloud Anda mengakses metadata instans only in security hardening mode saat memanggil operasi RunInstances atau CreateInstance untuk membuat instans ECS, atau operasi ModifyInstanceMetadataOptions untuk memodifikasi metadata instans ECS yang sudah ada. Contoh kode berikut menunjukkan isi kebijakan tersebut:
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:ModifyInstanceMetadataOptions"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ecs:SecurityHardeningMode": ["false"]
}
}
}
]
}