全部产品
Search
文档中心

Object Storage Service:Kebijakan RAM

更新时间:Feb 04, 2026

Kebijakan RAM adalah kebijakan otorisasi yang Anda sambungkan ke identitas Resource Access Management (RAM), seperti pengguna, kelompok pengguna, atau peran. Untuk mengelola akses ke sumber daya Object Storage Service (OSS) bagi Pengguna RAM atau Peran RAM, gunakan kebijakan RAM untuk menentukan operasi yang dapat dilakukan oleh identitas tersebut dan sumber daya yang dapat diaksesnya.

Cara kerja

Kebijakan RAM menggunakan model otorisasi berbasis identitas. Kebijakan ini disambungkan ke Pengguna RAM, kelompok pengguna, atau Peran RAM, serta menentukan aksi yang dapat dilakukan oleh identitas tersebut pada sumber daya tertentu, di bawah kondisi tertentu.

Saat suatu identitas RAM mengajukan permintaan akses, OSS mengevaluasi semua kebijakan yang relevan, termasuk kebijakan RAM dan kebijakan bucket. Evaluasi izin mengikuti prinsip explicit deny first:

  1. Explicit deny first: Jika terdapat kebijakan yang berisi aturan "Effect": "Deny" eksplisit yang sesuai dengan permintaan, permintaan tersebut langsung ditolak.

  2. Temukan allow eksplisit: Jika tidak ada aturan Deny yang sesuai, sistem mencari aturan "Effect": "Allow" eksplisit yang sesuai dengan permintaan. Jika ditemukan kecocokan, permintaan tersebut diizinkan.

  3. Default deny: Jika tidak ada aturan Deny maupun Allow yang sesuai, permintaan tersebut ditolak secara default.

OSS mendukung dua jenis kebijakan RAM: kebijakan sistem dan kebijakan kustom. Kebijakan sistem telah ditetapkan sebelumnya oleh Alibaba Cloud—Anda dapat menggunakannya tetapi tidak dapat mengubahnya. Kebijakan kustom dibuat dan dikelola oleh Anda, serta menyediakan konfigurasi izin yang lebih fleksibel.

Berikan izin menggunakan kebijakan sistem

Kebijakan sistem dibuat oleh Alibaba Cloud. Anda dapat memberikan izin ini langsung kepada suatu identitas melalui Konsol Resource Access Management (RAM). Langkah-langkah berikut menjelaskan cara memberikan izin kepada Pengguna RAM.

  1. Buka daftar Pengguna RAM. Di kolom Actions pengguna target, klik Add Permissions.

  2. Di kotak pencarian, masukkan nama kebijakan sistem lalu pilih. OSS mendukung dua kebijakan sistem berikut:

  3. Klik Confirm New Authorization untuk menyelesaikan pengaturan izin.

Berikan izin menggunakan kebijakan kustom

Anda dapat membuat dan mengelola kebijakan kustom. Untuk memberikan izin menggunakan kebijakan kustom, Anda harus terlebih dahulu membuat kebijakan tersebut lalu memberikannya kepada identitas target.

Langkah 1: Buat kebijakan kustom

  1. Buka daftar Policies. Klik Create Policy.

  2. Pilih Edit Script. Di editor, masukkan kebijakan otorisasi dalam format JSON. Anda dapat menggunakan RAM Policy Editor untuk menghasilkan kebijakan otorisasi secara cepat.

    Kebijakan contoh berikut memberikan full kontrol atas bucket example-bucket dan semua sumber daya di dalamnya.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:*",
          "Resource": [
            "acs:oss:*:*:example-bucket",
            "acs:oss:*:*:example-bucket/*"
          ]
        }
      ]
    }

    Kebijakan otorisasi lengkap mencakup Version dan satu atau beberapa Statement.

    • Version: Versi kebijakan akses. Nilainya tetap 1 dan tidak dapat diubah.

    • Statement: Badan utama kebijakan. Berisi satu atau beberapa aturan allow atau deny spesifik. Setiap statement mencakup Effect, Action, Resource, dan Condition.

      Elemen Kebijakan

      Deskripsi

      Effect

      Efek kebijakan. Nilai yang valid adalah Allow dan Deny.

      Action

      Operasi spesifik yang akan dilakukan pada sumber daya. Mendukung karakter wildcard *.

      Resource

      Cakupan sumber daya yang dikenai kebijakan.

      Condition

      Kondisi agar kebijakan berlaku.

      Jika Anda mengonfigurasi beberapa kondisi, kebijakan hanya berlaku ketika semua kondisi terpenuhi (logika AND).

      Untuk daftar lengkap elemen otorisasi, lihat Sintaks dan elemen otorisasi OSS.

  3. Klik OK. Masukkan Policy Name, lalu klik OK untuk membuat kebijakan kustom.

Langkah 2: Berikan izin kepada identitas

Setelah membuat kebijakan kustom, Anda harus memberikannya kepada identitas target. Langkah-langkah berikut menjelaskan cara memberikan izin kepada Pengguna RAM.

  1. Buka daftar Pengguna RAM. Di kolom Actions pengguna target, klik Add Permissions.

  2. Di kotak pencarian, masukkan nama kebijakan kustom lalu pilih.

  3. Klik Confirm New Authorization untuk menyelesaikan pengaturan izin.

Skenario otorisasi umum

Skenario berikut menunjukkan penerapan khas kebijakan RAM dalam bisnis nyata. Skenario ini mencakup berbagai kebutuhan, seperti pemberian izin, pembatasan akses, dan kontrol keamanan. Setiap skenario menyediakan contoh konfigurasi kebijakan lengkap. Anda dapat memodifikasi parameter seperti nama bucket dan jalur folder sesuai kebutuhan serta menggunakan kebijakan tersebut secara langsung.

Skenario 1: Berikan Pengguna RAM full kontrol atas sebuah bucket

Contoh berikut memberikan Pengguna RAM full kontrol atas bucket bernama mybucket.

Penting

Untuk aplikasi mobile, memberikan pengguna full kontrol atas bucket menimbulkan risiko keamanan sangat tinggi dan sebaiknya dihindari jika memungkinkan.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "oss:*",
      "Resource": [
        "acs:oss:*:*:mybucket",
        "acs:oss:*:*:mybucket/*"
      ]
    }
  ]
}

Skenario 2: Tolak izin Pengguna RAM untuk menghapus file yang sesuai pola tertentu dalam bucket

Contoh berikut menolak izin Pengguna RAM untuk menghapus semua file yang memiliki awalan `abc` dan format `.txt` dalam bucket bernama mybucket.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "oss:DeleteObject"
      ],
      "Resource": [
        "acs:oss:*:*:mybucket/abc*.txt"
      ]
    }
  ]
}

Skenario 3: Berikan Pengguna RAM izin untuk mencantumkan dan membaca semua sumber daya dalam sebuah bucket

  • Contoh berikut memberikan Pengguna RAM izin untuk mencantumkan dan membaca semua sumber daya dalam bucket bernama mybucket menggunakan SDK OSS atau antarmuka baris perintah (CLI).

    Catatan

    Operasi `ListObjects` (Action) harus menggunakan seluruh bucket sebagai Resource.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:ListObjects",
          "Resource": "acs:oss:*:*:mybucket"
        },
        {
          "Effect": "Allow",
          "Action": "oss:GetObject",
          "Resource": "acs:oss:*:*:mybucket/*"
        }
      ]
    }
  • Contoh berikut memberikan Pengguna RAM izin untuk mencantumkan dan membaca semua sumber daya dalam bucket bernama mybucket menggunakan Konsol OSS.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListBuckets",
            "oss:GetBucketStat",
            "oss:GetBucketInfo",
            "oss:GetBucketTagging",
            "oss:GetBucketLifecycle",
            "oss:GetBucketWorm",                      
            "oss:GetBucketVersioning", 
            "oss:GetBucketAcl" 
          ],    
          "Resource": "acs:oss:*:*:*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListObjects",
            "oss:GetBucketAcl"
          ],
          "Resource": "acs:oss:*:*:mybucket"
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:GetObject",
            "oss:GetObjectAcl"
          ],
          "Resource": "acs:oss:*:*:mybucket/*"
        }
      ]
    }

Skenario 4: Tolak izin Pengguna RAM untuk menghapus bucket

Contoh berikut menolak izin Pengguna RAM untuk menghapus bucket bernama mybucket.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "oss:*",
      "Resource": [
        "acs:oss:*:*:mybucket",
        "acs:oss:*:*:mybucket/*"
      ]
    },
    {
      "Effect": "Deny",
      "Action": [
        "oss:DeleteBucket"
      ],
      "Resource": [
        "acs:oss:*:*:mybucket"
      ]
    }
  ]
}

Skenario 5: Berikan Pengguna RAM izin untuk mengakses beberapa folder dalam sebuah bucket

Asumsikan bucket bernama mybucket digunakan untuk menyimpan foto. Bucket ini berisi beberapa folder yang merepresentasikan lokasi foto. Setiap folder lokasi berisi subdirektori tahun.

mybucket[Bucket]
  ├── beijing
  │   ├── 2014
  │   └── 2015
  └── hangzhou
      ├── 2014
      └── 2015 

Anda perlu memberikan Pengguna RAM izin read-only untuk mengakses folder mybucket/hangzhou/2014/ dan mybucket/hangzhou/2015/. Otorisasi tingkat folder merupakan fitur advanced. Kompleksitas kebijakan otorisasi bervariasi tergantung skenario. Contoh berikut disediakan sebagai referensi.

  • Berikan Pengguna RAM izin untuk hanya membaca konten file dalam folder mybucket/hangzhou/2014/ dan mybucket/hangzhou/2015/.

    Karena Pengguna RAM mengetahui jalur lengkap file, kami sarankan menggunakan jalur lengkap file untuk membaca konten file.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:GetObject"
          ],
          "Resource": [
            "acs:oss:*:*:mybucket/hangzhou/2014/*",
            "acs:oss:*:*:mybucket/hangzhou/2015/*"
          ]
        }
      ]
    }
  • Berikan Pengguna RAM izin untuk menggunakan CLI OSS mengakses folder mybucket/hangzhou/2014/ dan mybucket/hangzhou/2015/ serta mencantumkan file di dalamnya.

    Jika Pengguna RAM tidak mengetahui file apa saja yang ada di folder, mereka dapat menggunakan CLI OSS atau API untuk langsung mendapatkan informasi folder. Dalam skenario ini, Anda harus menambahkan izin ListObjects.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:GetObject"
          ],
          "Resource": [
            "acs:oss:*:*:mybucket/hangzhou/2014/*",
            "acs:oss:*:*:mybucket/hangzhou/2015/*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListObjects"
          ],
          "Resource": [
            "acs:oss:*:*:mybucket"
          ],
          "Condition":{
            "StringLike":{
              "oss:Prefix": [
                "hangzhou/2014/*",
                "hangzhou/2015/*"
              ]
            }
          }
        }
      ]
    }
  • Berikan Pengguna RAM izin untuk mengakses folder menggunakan Konsol OSS.

    Saat menggunakan Konsol OSS untuk mengakses folder mybucket/hangzhou/2014/ dan mybucket/hangzhou/2015/, Pengguna RAM dapat mulai dari Direktori root dan menavigasi melalui lapisan hingga folder target.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListBuckets",
            "oss:GetBucketStat",
            "oss:GetBucketInfo",
            "oss:GetBucketTagging",
            "oss:GetBucketLifecycle",
            "oss:GetBucketWorm",                      
            "oss:GetBucketVersioning", 
            "oss:GetBucketAcl" 
          ], 
          "Resource": [
            "acs:oss:*:*:*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:GetObject",
            "oss:GetObjectAcl"
          ],
          "Resource": [
            "acs:oss:*:*:mybucket/hangzhou/2014/*",
            "acs:oss:*:*:mybucket/hangzhou/2015/*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListObjects"
          ],
          "Resource": [
            "acs:oss:*:*:mybucket"
          ],
          "Condition": {
            "StringLike": {
              "oss:Delimiter": "/",
              "oss:Prefix": [
                "",
                "hangzhou/",
                "hangzhou/2014/*",
                "hangzhou/2015/*"
              ]
            }
          }
        }
      ]
    }

Skenario 6: Deny izin Pengguna RAM untuk menghapus file apa pun dalam sebuah bucket

Contoh berikut menolak izin Pengguna RAM untuk menghapus file apa pun dalam bucket bernama mybucket.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "oss:DeleteObject"
      ],
      "Resource": [
        "acs:oss:*:*:mybucket/*"
      ]
    }
  ]
}

Skenario 7: Deny izin Pengguna RAM untuk mengakses objek dengan tag tertentu

Kebijakan `Deny` berikut menolak izin Pengguna RAM untuk mengakses objek dengan tag status:ok dan key1:value1 dalam bucket examplebucket.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "oss:GetObject"
      ],
      "Resource": [
        "acs:oss:*:174649585760xxxx:examplebucket/*"
      ],
      "Condition": {
        "StringEquals": {
          "oss:ExistingObjectTag/status":"ok",
          "oss:ExistingObjectTag/key1":"value1"
        }
      }
    }
  ]
}

Skenario 8: Berikan Pengguna RAM izin untuk mengakses OSS dari alamat IP tertentu

  • Tambahkan pembatasan alamat IP ke otorisasi Allow.

    Contoh berikut menambahkan pembatasan alamat IP ke otorisasi Allow. Ini memberikan Pengguna RAM izin untuk membaca semua sumber daya dalam bucket bernama mybucket hanya dari rentang alamat IP 192.168.0.0/16 dan 198.51.100.0/24.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListBuckets",
            "oss:GetBucketStat",
            "oss:GetBucketInfo",
            "oss:GetBucketTagging",
            "oss:GetBucketAcl" 
          ], 
          "Resource": [
            "acs:oss:*:*:*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListObjects",
            "oss:GetObject"
          ],
          "Resource": [
            "acs:oss:*:*:mybucket",
            "acs:oss:*:*:mybucket/*"
          ],
          "Condition":{
            "IpAddress": {
              "acs:SourceIp": ["192.168.0.0/16", "198.51.100.0/24"]
            }
          }
        }
      ]
    }
  • Tambahkan pembatasan alamat IP ke otorisasi Deny.

    Contoh berikut menambahkan pembatasan alamat IP ke otorisasi Deny. Ini menolak Pengguna RAM yang alamat IP sumbernya tidak berada dalam rentang 192.168.0.0/16 untuk melakukan operasi apa pun pada OSS.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListBuckets",
            "oss:GetBucketStat",
            "oss:GetBucketInfo",
            "oss:GetBucketTagging",
            "oss:GetBucketAcl" 
          ], 
          "Resource": [
            "acs:oss:*:*:*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListObjects",
            "oss:GetObject"
          ],
          "Resource": [
            "acs:oss:*:*:mybucket",
            "acs:oss:*:*:mybucket/*"
          ]
        },
        {
          "Effect": "Deny",
          "Action": "oss:*",
          "Resource": [
            "acs:oss:*:*:*"
          ],
          "Condition":{
            "NotIpAddress": {
              "acs:SourceIp": ["192.168.0.0/16"]
            }
          }
        }
      ]
    }
    Catatan

    Karena aturan autentikasi untuk kebijakan akses adalah "Deny first", jika pengguna mencoba mengakses konten di mybucket dari alamat IP di luar rentang 192.168.0.0/16, OSS akan melaporkan error izin.

Skenario 9: Berikan izin kepada pengguna lain melalui RAM atau STS

Berikan pengguna dengan alamat IP 192.168.0.1 izin untuk melakukan operasi berikut menggunakan client SDK Java melalui RAM atau Security Token Service (STS).

  • Mencantumkan objek yang memiliki awalan foo dalam bucket mybucket.

  • Mengunggah, mengunduh, dan menghapus objek yang memiliki awalan file dalam bucket mybucket.

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "oss:GetBucketAcl",
        "oss:ListObjects"
      ],
      "Resource": [
        "acs:oss:*:177530505652xxxx:mybucket"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "acs:UserAgent": "java-sdk",
          "oss:Prefix": "foo"
        },
        "IpAddress": {
          "acs:SourceIp": "192.168.0.1"
        }
      }
    },
    {
      "Action": [
        "oss:PutObject",
        "oss:GetObject",
        "oss:DeleteObject"
      ],
      "Resource": [
        "acs:oss:*:177530505652xxxx:mybucket/file*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "acs:UserAgent": "java-sdk"
        },
        "IpAddress": {
          "acs:SourceIp": "192.168.0.1"
        }
      }
    }
  ]
}

Skenario 10: Larang mengatur ACL bucket dan objek menjadi akses publik

Contoh berikut melarang pengaturan daftar kontrol akses (ACL) bucket dan objek menjadi publik untuk menjamin keamanan data OSS.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "oss:PutBucket",
        "oss:PutBucketAcl"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "oss:x-oss-acl": "private"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "oss:PutObject",
        "oss:PutObjectAcl"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "oss:x-oss-object-acl": [
            "private",
            "default"
          ]
        }
      }
    }
  ]
}

Skenario 11: Berikan Pengguna RAM izin untuk menggunakan fitur terkait IMM

Kebijakan RAM berikut memberikan Pengguna RAM izin untuk menggunakan fitur pemrosesan dokumen Intelligent Media Management (IMM).

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:GetObject",
        "oss:PutObject",
        "oss:PostProcessTask",
        "oss:ProcessImm"
      ],
      "Resource": "*"
    },
    {
      "Action": [
        "imm:CreateOfficeConversionTask",
        "imm:GetWebofficeURL"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Effect": "Allow",
      "Action": "ram:PassRole",
      "Resource": "acs:ram:*:*:role/aliyunimmdefaultrole"
    }
  ]
}

Skenario 12: Berikan Pengguna RAM izin untuk mengubah tipe redundansi penyimpanan

  • Berikan Pengguna RAM izin untuk mengubah tipe redundansi penyimpanan bucket tertentu.

    Contoh berikut memberikan Pengguna RAM izin untuk mengubah tipe redundansi penyimpanan bucket mybucket.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:CreateBucketDataRedundancyTransition",
            "oss:GetBucketDataRedundancyTransition",
            "oss:ListBucketDataRedundancyTransition",
            "oss:DeleteBucketDataRedundancyTransition"
          ],
          "Resource": "acs:oss:*:*:mybucket"
        }
      ]
    }
  • Berikan Pengguna RAM izin untuk mengubah tipe redundansi penyimpanan semua bucket.

    Penting

    Contoh berikut memberikan Pengguna RAM izin untuk mengubah tipe redundansi penyimpanan semua bucket di bawah Akun Alibaba Cloud Anda. Lakukan dengan hati-hati.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:CreateBucketDataRedundancyTransition",
            "oss:GetBucketDataRedundancyTransition",
            "oss:ListBucketDataRedundancyTransition",
            "oss:DeleteBucketDataRedundancyTransition"
          ],
          "Resource": "acs:oss:*:*:*"
        }
      ]
    }

Skenario 13: Berikan Pengguna RAM izin untuk membuat pesanan paket sumber daya OSS

Kebijakan RAM berikut memberikan Pengguna RAM izin untuk membuat pesanan paket sumber daya OSS.

Penting

Setelah Pengguna RAM membuat pesanan untuk paket sumber daya OSS, mereka dapat menghubungi pemilik Akun Alibaba Cloud untuk menyelesaikan pembayaran. Untuk mengizinkan Pengguna RAM membayar pesanan tersebut, pemilik Akun Alibaba Cloud harus memberikan izin bss:PayOrder kepada Pengguna RAM. Izin bss:PayOrder merupakan izin berisiko tinggi yang melibatkan operasi finansial. Jangan berikan izin ini kecuali benar-benar diperlukan.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "oss:CreateOrder",
      "Resource": "acs:oss:*:*:*"
    }
  ]
}

Skenario 14: Berikan Pengguna RAM izin untuk mengaktifkan OSS

Kebijakan RAM berikut memberikan Pengguna RAM izin untuk mengaktifkan OSS.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "oss:ActivateProduct",
      "Resource": "acs:oss:*:*:*"
    }
  ]
}

Skenario 15: Berikan Pengguna RAM izin untuk membaca dan menulis data dalam bucket dengan tag tertentu

Kebijakan RAM berikut memberikan Pengguna RAM izin untuk membaca dan menulis data dalam bucket yang memiliki tag tertentu. Kunci tag adalah `key1` dan nilai tag adalah `value1`.

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "oss:ListBuckets",
        "oss:GetBucketStat",
        "oss:GetBucketInfo",
        "oss:GetBucketAcl",
        "oss:ListObjects",
        "oss:PutObject",
        "oss:GetObject"
      ],
      "Resource": [
        "acs:oss:*:*:*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "oss:BucketTag/key1": "value1"
        }
      }
    }
  ]
}
Catatan

Setelah kebijakan berlaku, Pengguna RAM hanya dapat melakukan operasi yang ditentukan pada bucket OSS yang memiliki tag key1=value1. Perilaku bervariasi tergantung metode akses:

  • Saat menggunakan SDK OSS atau ossutil untuk mengirim permintaan ListBuckets, Anda harus menambahkan parameter filter tag, seperti tag-key=key1,tag-value=value1. Jika kebijakan dikonfigurasi dengan benar, tanggapan hanya akan mengembalikan bucket yang sesuai dengan kondisi tag yang ditentukan.

  • Saat menggunakan Konsol OSS untuk mengirim permintaan ListBuckets, permintaan ditolak karena konsol tidak dapat melampirkan parameter tag. Permintaan tidak memenuhi kondisi kebijakan (oss:BucketTag/key1=value1), sehingga sistem melaporkan error izin.

  • Operasi lain seperti PutObject dan GetObject juga tunduk pada kondisi tag. Bucket target untuk operasi tersebut harus memiliki tag key1=value1.

Praktik terbaik untuk lingkungan produksi

Saat mengonfigurasi kebijakan RAM dan mengelola identitas RAM, ikuti praktik keamanan terbaik berikut untuk secara efektif mengurangi risiko kebocoran data dan menjamin kontrol izin yang tepat:

  • Ikuti prinsip hak istimewa minimal: Selalu berikan hanya izin minimum yang diperlukan untuk menjalankan tugas. Hindari izin luas seperti oss:*, kecuali benar-benar diperlukan. Prinsip hak istimewa minimal mengurangi potensi permukaan serangan dan menurunkan risiko penyalahgunaan izin serta kesalahan operasional.

  • Gunakan peran RAM dan kredensial temporary STS: Untuk aplikasi, terutama yang dideploy pada Instance ECS atau dalam kontainer, gunakan peran RAM dan peroleh kredensial temporary dari STS untuk mengakses OSS. Berbeda dengan Pasangan Kunci Akses jangka panjang, kredensial temporary kedaluwarsa secara otomatis. Praktik ini menghindari kebutuhan menyematkan Pasangan Kunci Akses jangka panjang dalam kode atau file konfigurasi, yang secara signifikan mengurangi risiko kebocoran Pasangan Kunci Akses.

  • Pisahkan pengguna manusia dan pengguna programatik: Buat Pengguna RAM terpisah untuk orang dan aplikasi yang berbeda. Hal ini memungkinkan manajemen identitas terspesialisasi dan kontrol izin detail halus.

    • Pengguna manusia: Atur akses konsol. Gunakan akun dan password untuk mengakses konsol produk. Kami sarankan Anda mengaktifkan autentikasi multi-faktor (MFA).

    • Pengguna programatik: Atur akses programatik dengan Pasangan Kunci Akses permanen. Gunakan Pasangan Kunci Akses untuk memanggil API guna mengakses sumber daya cloud.

  • Manajemen keamanan Pasangan Kunci Akses:

    • Jangan simpan ID AccessKey dan Rahasia AccessKey Pengguna RAM dalam kode proyek Anda. Praktik ini dapat menyebabkan kebocoran Pasangan Kunci Akses.

    • Kami sarankan Anda menggunakan metode seperti STS atau Variabel lingkungan untuk memperoleh otorisasi akses.

    • Rotasi Pasangan Kunci Akses Anda secara berkala.

  • Rekomendasi keamanan peran RAM:

    • Setelah membuat Peran RAM, jangan ubah entitas tepercayanya tanpa pertimbangan matang. Perubahan ini dapat memengaruhi bisnis Anda atau menimbulkan risiko over-otorisasi.

    • Tetapkan periode validitas wajar untuk token STS. Hindari periode validitas panjang untuk mencegah risiko keamanan.

  • Audit izin secara berkala: Tinjau dan bersihkan Pengguna RAM dan kebijakan akses yang tidak diperlukan secara berkala. Praktik ini memastikan izin selaras dengan kebutuhan bisnis saat ini.

  • Gunakan Condition untuk meningkatkan keamanan: Anda dapat menambahkan elemen Condition ke kebijakan Anda. Misalnya, Anda dapat membatasi alamat IP sumber atau VPC. Menggunakan batasan kondisional multidimensi menambahkan lapisan keamanan ekstra pada akses data.

    Penting

    Saat mengonfigurasi kebijakan bucket atau kebijakan RAM, lakukan berdasarkan arsitektur akses jaringan Anda. Konfigurasikan kedua kondisi acs:SourceIp dan acs:SourceVpc untuk kontrol akses ganda. Hanya menggunakan satu kondisi dapat menimbulkan risiko keamanan. Misalnya, jika Anda hanya membatasi akses berdasarkan alamat IP publik, VPC masih dapat memperoleh akses tidak sah menggunakan alamat IP egress yang sesuai.

Referensi