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 dilampirkan pada suatu instans. Kebijakan ini menentukan pihak berwenang mana yang dapat melakukan aksi tertentu terhadap resource tertentu dan dalam kondisi apa. 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
Console
-
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 client berdasarkan VPC sumber. -
ots:TLSVersion: Membatasi akses client berdasarkan versi TLS yang digunakan oleh sumber. -
acs:SourceIp: Membatasi akses client berdasarkan alamat IP sumber. -
ots:AccessId: Membatasi akses client berdasarkan ID AccessKey (AK) pengguna yang melakukan permintaan. -
acs:SecureTransport: Membatasi akses client 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, letakkan 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, letakkan satu alamat IP atau Blok CIDR per baris.
-
ots:AccessId: Masukkan ID AccessKey (AK) pengguna.Untuk memasukkan beberapa nilai, letakkan satu ID AccessKey per baris.
-
acs:SecureTransport: Atur nilainya 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 dan DeleteInstancePolicy 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 dengan 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. |
|
|
|
|
Pernyataan Allow mengizinkan permintaan dari alamat IP publik 203.0.113.5. Pernyataan Deny pertama memblokir semua alamat IP publik lainnya, sedangkan yang kedua memblokir semua permintaan dari VPC. Akibatnya, hanya permintaan dari alamat IP publik yang ditentukan yang dapat 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-*"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"NotIpAddress": {
"acs:SourceIp": ["203.0.113.5"]
},
"StringNotLike": {
"acs:SourceVpc": ["vpc-*"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringLike": {
"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. |
Pernyataan Allow mengizinkan permintaan dari VPC vpc-bp1xxxxxxxxxxxxxxxx. Pernyataan Deny memblokir permintaan dari VPC lain dan internet publik. Akibatnya, hanya permintaan dari VPC yang ditentukan yang dapat mengakses instans myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringNotEquals": {
"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 yang dipilih di dalam VPC yang ditentukan 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. |
Pernyataan Allow mengizinkan permintaan dari Blok CIDR 192.168.0.0/16 di VPC vpc-bp1xxxxxxxxxxxxxxxx. Pernyataan Deny pertama memblokir permintaan dari VPC lain dan internet publik, sedangkan yang kedua memblokir permintaan dari luar Blok CIDR yang ditentukan di dalam VPC yang ditentukan. Akibatnya, hanya permintaan dari Blok CIDR yang ditentukan di dalam VPC yang ditentukan yang dapat mengakses instans myinstance.
{
"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"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringNotEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
},
"NotIpAddress": {
"acs:SourceIp": ["192.168.0.0/16"]
}
}
}
]
}
Batasi versi TLS untuk akses instans
Wajibkan klien untuk menggunakan salah satu versi TLS yang tercantum sebelum dapat mengakses instans.
Atur Effect menjadi Allow dan tambahkan kondisi berikut:
|
Condition Key |
Operator |
Condition Value |
|
|
|
|
Pernyataan Allow mengizinkan permintaan yang menggunakan TLSv1.2 atau TLSv1.3. Pernyataan Deny memblokir semua versi TLS lainnya. Akibatnya, hanya permintaan yang menggunakan TLSv1.2 atau TLSv1.3 yang dapat 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"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringNotEquals": {
"ots:TLSVersion": ["TLSv1.2", "TLSv1.3"]
}
}
}
]
}
Batasan
Total ukuran semua entri kondisi yang ditambahkan ke satu instans tidak boleh melebihi 4 KB.