Konfigurasikan kebijakan instans untuk melindungi instans Tablestore dengan membatasi akses berdasarkan kondisi seperti alamat IP sumber, jaringan sumber, dan versi TLS.
Cara kerja
Kebijakan instans adalah kebijakan otorisasi berbasis resource yang ditautkan ke sebuah instans. Kebijakan ini menentukan pihak berwenang yang dapat melakukan aksi tertentu pada resource tertentu serta kondisi yang berlaku. Untuk sintaksis dan elemen kebijakan, lihat Sintaksis dan elemen kebijakan otorisasi.
Saat Tablestore mengevaluasi kebijakan yang dilampirkan, penolakan eksplisit memiliki prioritas lebih tinggi: aturan Deny yang sesuai akan memblokir permintaan, terlepas dari adanya aturan Allow apa pun.
Metode konfigurasi
Konsol
Masuk ke Konsol Tablestore, lalu ubah wilayah di bagian atas halaman.
Klik nama instans target atau Instance Management, lalu klik tab Security Policy.
-
Klik Authorize. Pada tab Visualized Policy, atur Effect menjadi Allow atau Deny, lalu konfigurasikan Condition untuk kebijakan tersebut.
CatatanUntuk melihat kebijakan dalam bentuk skrip JSON, beralihlah ke tab Script-based Policy.
Parameter
Deskripsi
Condition Key
Kunci kondisi. Nilai yang valid:
-
acs:SourceVpc: Membatasi akses klien berdasarkan VPC sumber. -
ots:TLSVersion: Membatasi akses klien berdasarkan versi TLS yang digunakan oleh sumber. -
acs:SourceIp: Membatasi akses klien berdasarkan alamat IP sumber. -
ots:AccessId: Membatasi akses klien berdasarkan ID AccessKey (AK) pengguna yang mengirim permintaan. -
acs:SecureTransport: Membatasi akses klien berdasarkan apakah permintaan menggunakan HTTPS.
PentingKunci kondisi
acs:SourceIphanya mencocokkan alamat IP sumber dari permintaan, tanpa membedakan antara trafik publik dan trafik internal VPC. Jika Anda hanya menggunakanacs:SourceIpuntuk membatasi akses, permintaan dari VPC lain yang kebetulan menggunakan rentang IP yang sama juga akan diizinkan, sehingga menimbulkan risiko akses tidak sah. Selalu pasangkanacs:SourceIpdenganacs:SourceVpcagar origin jaringan menjadi eksplisit.Operator
Operator yang diterapkan pada kunci kondisi. Untuk informasi selengkapnya, lihat Operator kondisi.
Condition Value
Nilai untuk Condition Key yang dipilih.
-
acs:SourceVpc: Masukkan ID VPC yang valid. Untuk mengizinkan akses hanya dari internet, masukkanvpc-*dengan operatorStringNotLike.Untuk memasukkan beberapa nilai, tempatkan satu ID VPC per baris.
-
ots:TLSVersion: Pilih versi TLS. Nilai yang valid adalah TLSv1, TLSv1.1, TLSv1.2, dan TLSv1.3. -
acs:SourceIp: Masukkan alamat IP atau Blok CIDR.Untuk memasukkan beberapa nilai, tempatkan satu alamat IP atau Blok CIDR per baris.
-
ots:AccessId: Masukkan ID AccessKey (AK) pengguna.Untuk memasukkan beberapa nilai, tempatkan satu ID AccessKey per baris.
-
acs:SecureTransport: Atur nilai menjaditrueuntuk mengizinkan akses hanya melalui HTTPS, ataufalseuntuk mengizinkan akses hanya melalui HTTP.
-
Klik Yes.
Setelah kebijakan dilampirkan, lihat kebijakan lengkap pada tab Script-based Policy.
API
Gunakan operasi UpdateInstancePolicy, DeleteInstancePolicy, dan CheckInstancePolicy untuk mengelola kebijakan instans.
Skenario umum dan contoh kebijakan
Contoh berikut menunjukkan kombinasi kondisi dan kebijakan JSON untuk skenario kontrol akses yang umum.
Izinkan akses hanya dari alamat IP publik tertentu
Batasi akses ke alamat IP publik tertentu dengan memasangkan acs:SourceIp dan acs:SourceVpc agar asal jaringan tidak ambigu. Untuk mencocokkan lalu lintas dari internet publik, atur acs:SourceVpc menjadi vpc-* dengan operator StringNotLike.
Atur Effect menjadi Allow dan tambahkan dua kondisi berikut:
|
Condition Key |
Operator |
Condition Value |
|
|
|
Alamat IP publik atau Blok CIDR yang diizinkan mengakses instans. |
|
|
|
|
Contoh berikut hanya mengizinkan alamat IP publik 203.0.113.5 untuk mengakses instans myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"IpAddress": {
"acs:SourceIp": ["203.0.113.5"]
},
"StringNotLike": {
"acs:SourceVpc": ["vpc-*"]
}
}
}
]
}
Izinkan akses hanya dari VPC tertentu
Gunakan konfigurasi ini untuk membatasi instans hanya pada lalu lintas yang berasal dari satu VPC tertentu.
Atur Effect menjadi Allow dan tambahkan kondisi berikut:
|
Condition Key |
Operator |
Condition Value |
|
|
|
ID VPC yang diizinkan mengakses instans. |
Contoh berikut mengizinkan akses ke instans myinstance hanya dari VPC dengan ID vpc-bp1xxxxxxxxxxxxxxxx.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
}
]
}
Izinkan akses hanya dari rentang IP tertentu dalam VPC tertentu
Gabungkan kondisi VPC dan rentang IP untuk mengizinkan hanya Blok CIDR tertentu di dalam VPC tertentu yang dapat mengakses instans.
Atur Effect menjadi Allow dan tambahkan dua kondisi berikut:
|
Condition Key |
Operator |
Condition Value |
|
|
|
Blok CIDR yang diizinkan mengakses instans. |
|
|
|
ID VPC, yang membatasi sumber permintaan hanya pada VPC tersebut. |
Contoh berikut mengizinkan akses ke instans myinstance hanya dari Blok CIDR 192.168.0.0/16 di dalam VPC dengan ID vpc-bp1xxxxxxxxxxxxxxxx.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"IpAddress": {
"acs:SourceIp": ["192.168.0.0/16"]
},
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
}
]
}
Batasi versi TLS untuk akses instans
Wajibkan klien untuk melakukan negosiasi salah satu versi TLS yang tercantum sebelum dapat mengakses instans.
Atur Effect menjadi Allow dan tambahkan kondisi berikut:
|
Condition Key |
Operator |
Condition Value |
|
|
|
|
Contoh berikut hanya mengizinkan permintaan yang melakukan negosiasi TLSv1.2 atau TLSv1.3 untuk mengakses instans myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"ots:TLSVersion": ["TLSv1.2", "TLSv1.3"]
}
}
}
]
}
Batasan
Total ukuran semua entri kondisi yang ditambahkan ke satu instans tidak boleh melebihi 4 KB.