Buat kebijakan RAM kustom untuk kontrol akses ECS tingkat detail halus ketika kebijakan sistem tidak memenuhi kebutuhan Anda.
Latar Belakang
-
Untuk membuat kebijakan kustom, lihat Buat kebijakan kustom.
-
Sebelum membuat kebijakan kustom, pelajari Elemen dasar kebijakan izin dan Struktur dan sintaksis kebijakan.
-
Untuk memahami cara beberapa kebijakan diterapkan, lihat Logika evaluasi kebijakan.
Contoh kebijakan kustom
Buat 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"
}
Buat instans ECS subscription
Untuk mengkueri dan membayar pesanan subscription, panggil operasi API yang terkait bss. Kebijakan sistem yang sesuai adalah AliyunBSSOrderAccess.
Jika Anda mengatur autoPay ke true saat memanggil RunInstances untuk membuat instans ECS subscription, izin untuk operasi API yang terkait bss tidak diperlukan.
{
"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"
}
Restart instans ECS dengan MFA
Kebijakan berikut menunjukkan bahwa RAM user yang diizinkan dapat merestart instans ECS. Instans ECS hanya dapat direstart jika MFA diaktifkan untuk RAM user tersebut dan RAM user menggunakan MFA untuk login. Dalam kasus ini, kunci kondisi acs:MFAPresent dalam elemen Condition diatur ke true.
{
"Statement": [
{
"Action": "ecs:RebootInstance",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}
Mengelola instance ECS tertentu
Kebijakan berikut menunjukkan bahwa RAM user yang diizinkan 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"
}
Hubung ke instans ECS tertentu dengan Workbench
RAM user yang diizinkan dapat melihat semua instans ECS dan resource dalam Akun Alibaba Cloud, tetapi hanya dapat terhubung ke instans 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"
}
Tolak koneksi VNC ke instans ECS
Kebijakan ini menolak koneksi VNC ke semua instans ECS:
{
"Statement": [
{
"Effect": "Deny",
"Action": "ecs:DescribeInstanceVncUrl",
"Resource": "*"
}
],
"Version": "1"
}
Lihat instans ECS di wilayah tertentu
Kebijakan berikut menunjukkan bahwa RAM user yang diizinkan dapat melihat instans ECS di wilayah China (Qingdao), tetapi tidak dapat melihat disk atau Snapshot di wilayah ini.
{
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:Describe*",
"Resource": "acs:ecs:cn-qingdao:*:instance/*"
}
],
"Version": "1"
}
Manage security group
Kebijakan berikut mengizinkan RAM user untuk mengelola semua security group ECS dalam Akun Alibaba Cloud.
{
"Version": "1",
"Statement": [
{
"Action": "ecs:*SecurityGroup*",
"Resource": "*",
"Effect": "Allow"
}
]
}
Buat peran RAM instans
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:CreateInstance",
"ecs:AttachInstanceRamRole",
"ecs:DetachInstanceRAMRole"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*"
}
]
}
Kueri Instance ECS dan perangkat penyimpanan blok
{
"Statement": [
{
"Effect": "Allow",
"Action": ["ecs:DescribeInstances", "ecs:DescribeDisks"],
"Resource": "*"
}
],
"Version": "1"
}
Beli rencana penghematan
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "bssapi:CreateSavingsPlansInstance",
"Resource": "*"
}
]
}
Tolak pembuatan VPC default saat pembuatan instans
Secara default, RAM user dengan AliyunECSFullAccess dapat membuat, melihat, dan merestart instans ECS. Jika RAM user membuat instans di wilayah yang tidak memiliki Virtual Private Cloud (VPC), VPC default akan dibuat secara otomatis. Gunakan kebijakan ini untuk menolak pembuatan VPC default sambil mempertahankan izin lainnya.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"vpc:CreateDefaultVpc": ["true"]
}
}
}
]
}
Gunakan daftar awalan
{
"Statement": [
{
"Action": [
"ecs:CreatePrefixList",
"ecs:ModifyPrefixList",
"ecs:DescribePrefixLists",
"ecs:DescribePrefixListAssociations",
"ecs:DescribePrefixListAttributes",
"ecs:DeletePrefixList"
],
"Resource": "*",
"Effect": "Allow"
}
],
"Version": "1"
}
Gunakan Cloud Assistant
Baca Bucket OSS
{
"Version": "1",
"Statement": [
{
"Action": ["oss:GetObject", "oss:GetBucketLocation", "oss:GetBucketInfo"],
"Resource": "*",
"Effect": "Allow"
}
]
}
Baca dan tulis 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"
}
]
}
Akses resource ECS hanya melalui HTTPS
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:SecureTransport": "true"
}
}
}
],
"Version": "1"
}
Buat hanya disk terenkripsi
Untuk perusahaan dengan persyaratan kepatuhan keamanan yang ketat, lampirkan kebijakan ini ke RAM user untuk mewajibkan enkripsi disk pada semua 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"
}
]
}
Buat hanya disk terenkripsi CMK
Kebijakan ini membatasi pembuatan disk hanya pada disk yang dienkripsi dengan CMK. Setelah kebijakan ini dilampirkan ke RAM user, pengguna harus memilih customer master key (CMK) untuk mengenkripsi disk saat membuat instans atau disk data.
{
"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"
}
]
}
Buat instans ECS hanya dengan gambar kustom
Kebijakan ini mengizinkan RAM user untuk membuat instans ECS hanya dengan gambar kustom.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance"
],
"Effect": "Deny",
"Resource": "acs:ecs:<Region ID>:*:instance/*",
"Condition": {
"StringNotEquals": {
"ecs:ImageSource": "Custom"
}
}
}
]
}
Tolak login root ke instans ECS
Kebijakan ini menolak login root saat membuat instans, mengganti disk sistem, menyambungkan disk sistem, atau mengatur ulang password secara online.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:CreateOrder",
"ecs:ReplaceSystemDisk",
"ecs:AttachDisk",
"ecs:InvokeCommand"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:LoginAsNonRoot": [
"false"
]
}
},
"Effect": "Deny"
}
]
}
Tolak login berbasis password ke instans ECS
Kebijakan ini menolak login berbasis password saat membuat instans, mengganti disk sistem, menyambungkan disk sistem, atau mengatur ulang password. Setelah kebijakan ini dilampirkan, RAM user hanya dapat menggunakan pasangan kunci atau Session Manager untuk login ke instans ECS.
Atur ecs:ImagePlatform dalam elemen Condition untuk membatasi cakupan. Misalnya, mengatur ecs:ImagePlatform ke linux mengizinkan login password untuk instans Windows tetapi menolaknya untuk 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"
}
]
}
Tolak login dengan password yang telah ditetapkan dalam gambar
Kebijakan ini menolak login dengan password yang telah ditetapkan dalam gambar saat membuat instans atau mengganti disk sistem.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:CreateOrder",
"ecs:ReplaceSystemDisk"
],
"Resource": "*",
"Condition": {
"Bool": {
"ecs:PasswordInherit": [
"true"
]
}
},
"Effect": "Deny"
}
]
}
Tolak aturan security group dengan 0.0.0.0/0
Aturan inbound dengan 0.0.0.0/0 mengizinkan semua alamat IP eksternal untuk mengakses instans ECS dalam security group, yang meningkatkan risiko keamanan. Gunakan kebijakan ini untuk menolak pembuatan aturan dengan 0.0.0.0/0 dan mencegah penggunaan security group default saat membuat instans.
{
"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"
]
}
}
}
]
}
Wajibkan mode penguatan keamanan untuk metadata instans
Kebijakan ini mewajibkan RAM user untuk mengakses metadata instans only in security hardening mode saat memanggil RunInstances atau CreateInstance untuk membuat instans, atau ModifyInstanceMetadataOptions untuk mengubah metadata instans yang sudah ada.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ecs:RunInstances",
"ecs:CreateInstance",
"ecs:ModifyInstanceMetadataOptions"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ecs:SecurityHardeningMode": ["false"]
}
}
}
]
}