全部产品
Search
文档中心

Object Storage Service:Kebijakan RAM

更新时间:Feb 07, 2026

Kebijakan RAM adalah kebijakan otorisasi yang disambungkan ke identitas RAM, seperti Pengguna RAM, kelompok, atau Peran RAM. Anda dapat menggunakan kebijakan RAM untuk mengelola izin akses Pengguna RAM atau peran terhadap sumber daya Object Storage Service (OSS). Kebijakan ini menentukan operasi yang dapat dilakukan oleh identitas tersebut dan sumber daya yang dapat diaksesnya.

Cara kerja

Kebijakan RAM menggunakan otorisasi berbasis identitas. Anda dapat menyambungkan kebijakan tersebut ke Pengguna RAM, kelompok, atau Peran RAM. Kebijakan ini menentukan aksi yang dapat dilakukan oleh identitas pada sumber daya tertentu dalam kondisi tertentu.

Saat identitas RAM membuat permintaan ke OSS, OSS mengevaluasi semua kebijakan yang relevan—termasuk kebijakan RAM dan kebijakan bucket—untuk menentukan akses. Evaluasi izin mengikuti aturan explicit deny takes precedence:

  1. Explicit deny takes precedence: Jika terdapat pernyataan Deny yang sesuai dalam kebijakan apa pun, permintaan tersebut langsung ditolak.

  2. Explicit allow: Jika tidak ada pernyataan Deny yang sesuai tetapi terdapat setidaknya satu pernyataan Allow yang sesuai, permintaan tersebut diizinkan.

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

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

Berikan kebijakan sistem

Alibaba Cloud menyediakan kebijakan sistem. Anda dapat memberikannya langsung ke identitas RAM melalui Konsol Resource Access Management (RAM). Langkah-langkah berikut menjelaskan cara memberikan kebijakan sistem kepada Pengguna RAM.

  1. Buka halaman Users. Di kolom Actions pengguna target, klik Add Permissions.

  2. Masukkan nama kebijakan sistem di kotak pencarian dan pilih kebijakan sistem target. OSS mendukung dua kebijakan sistem berikut:

  3. Klik Confirm New Authorization untuk menyelesaikan otorisasi.

Berikan kebijakan kustom

Anda dapat membuat dan mengelola kebijakan kustom. Untuk memberikan kebijakan kustom, Anda harus terlebih dahulu membuat kebijakan tersebut lalu menetapkannya ke identitas RAM target.

Buat kebijakan kustom

  1. Buka halaman Policies. Klik Create Policy.

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

    Contoh kebijakan: Mengizinkan semua operasi pada bucket example-bucket dan semua objek di dalam bucket tersebut.

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

    Kebijakan otorisasi lengkap mencakup Version dan Statement.

    • Version: Versi bahasa kebijakan. Nilainya selalu 1. Jangan ubah nilai ini.

    • Statement: Badan utama kebijakan. Dapat berisi satu atau beberapa aturan Allow atau Deny. Setiap pernyataan mencakup Effect, Action, Resource, dan Condition.

      Elemen kebijakan

      Deskripsi

      Effect

      Efek kebijakan. Nilai yang valid adalah Allow atau Deny.

      Action

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

      Resource

      Cakupan sumber daya yang diatur oleh kebijakan ini.

      Condition

      Kondisi di mana kebijakan berlaku.

      Saat Anda mengonfigurasi beberapa kondisi, semua kondisi harus terpenuhi (logika AND) agar kebijakan diterapkan.

      Untuk informasi selengkapnya tentang elemen otorisasi, lihat Sintaks dan elemen otorisasi.

  3. Klik OK. Masukkan Policy Name. Lalu klik OK untuk menyelesaikan pembuatan kebijakan kustom.

Langkah 2: Otorisasi identitas pengguna

Setelah membuat kebijakan kustom, Anda harus menetapkannya ke identitas RAM target. Langkah-langkah berikut menjelaskan cara menetapkan kebijakan kustom ke Pengguna RAM.

  1. Buka halaman Users. Di kolom Actions pengguna target, klik Add Permissions.

  2. Masukkan nama kebijakan kustom Anda di kotak pencarian dan pilih kebijakan target.

  3. Klik Confirm New Authorization untuk menyelesaikan otorisasi.

Skenario otorisasi umum

Skenario berikut menjelaskan kasus penggunaan umum untuk kebijakan RAM, mencakup pemberian izin, pembatasan akses, dan penerapan kontrol keamanan. Setiap skenario mencakup contoh kebijakan lengkap. Sebelum menggunakan kebijakan, Anda harus menyesuaikan parameter seperti nama bucket dan path folder sesuai kebutuhan.

Skenario 1: Berikan kontrol penuh bucket kepada Pengguna RAM

Contoh ini menunjukkan cara memberikan kontrol penuh bucket mybucket kepada Pengguna RAM.

Penting

Memberikan kontrol penuh bucket kepada aplikasi mobile menimbulkan risiko keamanan tinggi. Kami menyarankan agar Anda menghindari praktik ini.

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

Skenario 2: Cegah Pengguna RAM menghapus file yang sesuai pola di bucket

Contoh ini menunjukkan cara mencegah Pengguna RAM menghapus semua file .txt yang namanya diawali abc di bucket mybucket.

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

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

  • Contoh ini menunjukkan cara memberikan izin Pengguna RAM untuk mencantumkan dan membaca semua sumber daya di bucket mybucket menggunakan OSS SDK atau ossutil.

    Catatan

    Aksi ListObjects memerlukan sumber daya berupa seluruh bucket.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:ListObjects",
          "Resource": "acs:oss:*:*:mybucket"
        },
        {
          "Effect": "Allow",
          "Action": "oss:GetObject",
          "Resource": "acs:oss:*:*:mybucket/*"
        }
      ]
    }
  • Contoh ini menunjukkan cara memberikan izin Pengguna RAM untuk mencantumkan dan membaca semua sumber daya di bucket 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: Cegah Pengguna RAM menghapus bucket

Contoh ini menunjukkan cara mencegah Pengguna RAM menghapus bucket 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 izin Pengguna RAM untuk mengakses beberapa folder di bucket

Asumsikan bucket mybucket menyimpan foto. Bucket tersebut berisi folder yang dinamai berdasarkan kota. Setiap folder kota berisi subfolder yang dinamai berdasarkan tahun.

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

Anda dapat memberikan akses read-only Pengguna RAM ke folder mybucket/hangzhou/2014/ dan mybucket/hangzhou/2015/. Izin tingkat folder merupakan fitur lanjutan. Kompleksitas kebijakan bervariasi tergantung kasus penggunaan. Contoh berikut menjelaskan pendekatan umum.

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

    Jika Pengguna RAM mengetahui path lengkap file, pengguna tersebut dapat menggunakan path tersebut untuk langsung membaca file.

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

    Jika Pengguna RAM tidak mengetahui file apa saja yang ada di folder tersebut, Anda dapat menambahkan izin ListObjects untuk mengizinkan pengguna mengambil konten folder.

    {
      "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 izin Pengguna RAM untuk menelusuri 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 layer demi layer hingga folder tujuan.

    {
      "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: Cegah Pengguna RAM menghapus file apa pun di bucket

Contoh ini menunjukkan cara mencegah Pengguna RAM menghapus file apa pun di bucket mybucket.

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

Skenario 7: Cegah Pengguna RAM mengakses objek dengan tag tertentu

Contoh ini menunjukkan cara menambahkan pernyataan Deny untuk mencegah Pengguna RAM mengakses objek yang memiliki tag status:ok dan key1:value1 di 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 izin Pengguna RAM untuk mengakses OSS dari alamat IP tertentu

  • Tambahkan pembatasan alamat IP ke pernyataan Allow.

    Contoh berikut menunjukkan cara menambahkan pembatasan alamat IP ke pernyataan Allow untuk memberikan izin Pengguna RAM membaca semua sumber daya di bucket 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"]
            },
            "StringNotLike": {
              "acs:SourceVpc": [
                "vpc-*"
              ]
            }
          }
        }
      ]
    }
  • Tambahkan pembatasan alamat IP ke pernyataan Deny.

    Contoh ini menambahkan pembatasan alamat IP ke pernyataan Deny. Ini menolak semua operasi OSS untuk Pengguna RAM yang alamat IP sumbernya berada di luar rentang 192.168.0.0/16.

    {
      "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"]
            },
            "StringLike": {
              "acs:SourceVpc": [
                "*"
              ]
            }
          }
        }
      ]
    }
    Catatan

    Karena pernyataan Deny memiliki prioritas lebih tinggi, permintaan dari alamat IP di luar rentang 192.168.0.0/16 untuk mengakses konten di bucket mybucket ditolak.

Skenario 9: Otorisasi pengguna lain melalui RAM atau STS

Contoh ini menunjukkan cara menggunakan RAM atau Security Token Service (STS) untuk mengotorisasi pengguna dengan alamat IP 192.168.0.1 menjalankan klien Java SDK dan melakukan tindakan berikut:

  • Mencantumkan objek yang namanya diawali foo di bucket mybucket.

  • Mengunggah, mengunduh, dan menghapus objek yang namanya diawali file di bucket mybucket.

{
  "Version": "1",
  "Statement": [{
    "Action": [
      "oss:GetBucketAcl",
      "oss:ListObjects"
    ],
    "Resource": [
      "acs:oss:*:177530505652xxxx:mybucket"
    ],
    "Effect": "Allow",
    "Condition": {
      "StringLike": {
        "acs:UserAgent": "*java-sdk*",
        "oss:Prefix": "foo"
      },
      "IpAddress": {
        "acs:SourceIp": "192.168.0.1"
      },
      "StringNotLike": {
        "acs:SourceVpc": [
          "vpc-*"
        ]
      }
    }
  },
    {
      "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"
        },
        "StringNotLike": {
          "acs:SourceVpc": [
            "vpc-*"
          ]
        }
      }
    }
  ]
}

Skenario 10: Cegah pengaturan ACL publik untuk bucket dan objek

Contoh ini menunjukkan cara mencegah daftar kontrol akses (ACL) bucket dan objek diatur menjadi publik. Hal ini membantu melindungi data Anda di 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 izin Pengguna RAM untuk menggunakan fitur IMM

Kebijakan RAM ini memberikan izin Pengguna RAM 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 izin Pengguna RAM untuk mengubah tipe redundansi penyimpanan

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

    Contoh ini menunjukkan cara memberikan izin Pengguna RAM 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 izin Pengguna RAM untuk mengubah tipe redundansi penyimpanan semua bucket.

    Penting

    Contoh ini memberikan izin untuk mengubah tipe redundansi penyimpanan semua bucket di Akun Alibaba Cloud Anda. Gunakan izin ini dengan hati-hati.

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

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

Kebijakan RAM ini memberikan izin Pengguna RAM untuk membeli paket sumber daya OSS.

Penting

Setelah Pengguna RAM membeli paket sumber daya OSS, pemilik Akun Alibaba Cloud harus menyelesaikan pembayaran. Untuk mengizinkan Pengguna RAM membayar pesanan, pemilik akun harus memberikan izin bss:PayOrder kepada Pengguna RAM. Izin bss:PayOrder merupakan izin berisiko tinggi karena melibatkan operasi finansial. Berikan izin ini hanya jika diperlukan.

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

Skenario 14: Berikan izin Pengguna RAM untuk mengaktifkan OSS

Kebijakan RAM ini memberikan izin Pengguna RAM untuk mengaktifkan OSS.

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

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

Kebijakan RAM berikut memberikan izin baca dan tulis Pengguna RAM pada data di bucket yang memiliki kunci tag key1 dan nilai tag 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 ini berlaku, Pengguna RAM hanya dapat melakukan aksi yang ditentukan pada bucket OSS yang ditag dengan key1=value1. Perilaku bervariasi tergantung metode akses:

  • Saat memanggil operasi ListBuckets menggunakan OSS SDK atau ossutil, Anda harus menyertakan parameter filter tag, seperti tag-key=key1,tag-value=value1. Jika kebijakan dikonfigurasi dengan benar, respons hanya mencakup bucket yang sesuai kondisi tag.

  • Saat memanggil operasi ListBuckets menggunakan Konsol OSS, permintaan gagal karena konsol tidak dapat meneruskan parameter tag. Permintaan melanggar kondisi kebijakan oss:BucketTag/key1=value1. Sistem mengembalikan kesalahan izin.

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

Penerapan produksi

Ikuti praktik terbaik keamanan berikut saat mengonfigurasi kebijakan RAM dan mengelola identitas RAM. Praktik ini membantu mengurangi risiko pelanggaran data dan memastikan kontrol izin yang tepat:

  • Terapkan prinsip hak istimewa minimal: Berikan hanya izin minimum yang diperlukan untuk menyelesaikan tugas. Hindari memberikan izin luas seperti oss:*, kecuali benar-benar diperlukan. Prinsip hak istimewa minimal mengurangi permukaan serangan dan menurunkan risiko akibat penyalahgunaan atau kesalahan izin.

  • Gunakan peran RAM dan kredensial temporary STS: Untuk aplikasi, terutama yang dideploy di Instance ECS atau dalam Kontainer, kami menyarankan Anda menggunakan peran RAM dan kredensial temporary STS untuk mengakses OSS. Kredensial temporary otomatis kedaluwarsa. Hal ini mencegah Anda menyematkan Pasangan Kunci Akses jangka panjang di kode atau file konfigurasi dan secara signifikan mengurangi risiko kebocoran Pasangan Kunci Akses.

  • Pisahkan pengguna manusia dari pengguna programatik: Buat Pengguna RAM terpisah untuk pengguna manusia dan aplikasi. Hal ini memungkinkan manajemen identitas profesional dan kontrol izin detail halus.

    • Pengguna manusia: Aktifkan console access. Pengguna manusia dapat menggunakan username dan password untuk login ke konsol Alibaba Cloud. Kami menyarankan Anda mengaktifkan autentikasi multi-faktor (MFA) untuk pengguna manusia.

    • Pengguna programatik: Aktifkan programmatic access. Pengguna programatik dapat menggunakan Pasangan Kunci Akses untuk memanggil Operasi API dan mengakses sumber daya cloud.

  • Kelola Pasangan Kunci Akses secara aman:

    • Jangan simpan ID AccessKey dan Rahasia AccessKey Pengguna RAM di kode aplikasi. Hal ini meningkatkan risiko eksposur kredensial.

    • Gunakan token STS atau Variabel lingkungan untuk menyediakan kredensial akses.

    • Rotasi Pasangan Kunci Akses secara berkala.

  • Peran RAM yang Aman:

    • Setelah membuat peran RAM, jangan ubah entitas tepercayanya kecuali diperlukan. Perubahan yang tidak direncanakan dapat mengganggu bisnis atau menyebabkan eskalasi izin.

    • Tetapkan waktu kedaluwarsa yang wajar untuk token STS. Token berumur panjang meningkatkan risiko keamanan.

  • Audit izin secara berkala: Tinjau dan hapus Pengguna RAM dan kebijakan izin yang tidak digunakan. Pastikan izin selaras dengan kebutuhan bisnis Anda saat ini.

  • Perkuat keamanan menggunakan kondisi: Tambahkan elemen Condition ke kebijakan untuk membatasi alamat IP sumber atau VPC. Kondisi multidimensi menambah lapisan perlindungan ekstra untuk akses data.

    Penting

    Saat mengonfigurasi kebijakan RAM, pastikan kebijakan tersebut selaras dengan arsitektur jaringan Anda. Kami menyarankan Anda menggunakan kondisi acs:SourceIp dan acs:SourceVpc secara bersamaan untuk kontrol akses dua faktor. Mengandalkan satu kondisi saja menciptakan titik buta keamanan. Misalnya, jika Anda hanya membatasi alamat IP publik, trafik dari VPC dapat melewati aturan tersebut jika trafik keluar melalui alamat IP publik yang sesuai.

Referensi