All Products
Search
Document Center

Resource Access Management:Mengelola izin untuk OSS

Last Updated:Jul 28, 2026

Buat kebijakan RAM kustom untuk mengontrol resource OSS mana yang dapat diakses oleh Pengguna RAM Anda dan bagaimana cara mengaksesnya.

Kebijakan sistem dan prasyarat

  • Dua kebijakan sistem mencakup pola akses OSS umum:

    • AliyunOSSFullAccess: memberikan izin manajemen penuh atas semua bucket OSS.

    • AliyunECSReadOnlyAccess: memberikan izin read-only pada Bucket OSS.

    Kebijakan sistem (seperti AliyunOSSFullAccess dan AliyunOSSReadOnlyAccess) dikelola oleh Alibaba Cloud dan tidak dapat dimodifikasi. Jika izin yang diberikan oleh kebijakan sistem tidak memenuhi kebutuhan Anda, Anda dapat membuat kebijakan kustom untuk kontrol akses detail halus. Kebijakan kustom dapat diedit dan dimodifikasi.

  • Sebelum menulis kebijakan, tinjau izin OSS yang tersedia. Untuk informasi selengkapnya, lihat RAM Policy.

Berikan akses OSS kepada Pengguna RAM

  1. Buat Pengguna RAM. Untuk informasi selengkapnya, lihat Create a RAM user.

  2. Buat kebijakan kustom. Untuk informasi selengkapnya, lihat Create a custom policy dan Policy examples.

  3. Lampirkan kebijakan tersebut ke Pengguna RAM. Untuk informasi selengkapnya, lihat Manage RAM user permissions.

Contoh kebijakan

  • Contoh 1: Berikan akses manajemen penuh ke bucket tertentu

    Kebijakan ini memberikan Pengguna RAM semua operasi OSS (oss:*) pada bucket bernama myphotos dan semua objek di dalamnya.

    {
        "Version": "1",
        "Statement": [
            {
                "Sid": "AllowFullAccessToMyphotos",
                "Effect": "Allow",
                "Action": "oss:*",
                "Resource": [
                    "acs:oss:*:*:myphotos",
                    "acs:oss:*:*:myphotos/*"
                ]
            }
        ]
    }
  • Contoh 2: Berikan akses read-only ke bucket

    Kebijakan ini memungkinkan Pengguna RAM mencantumkan objek dan membaca isinya di bucket myphotos. Izin yang diperlukan berbeda tergantung apakah pengguna mengakses OSS melalui SDK/CLI atau Konsol OSS.

    • Akses SDK dan CLI

      Diperlukan dua pernyataan: satu untuk mencantumkan objek di bucket, dan satu lagi untuk membaca objek individual.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowListObjectsInMyphotos",
                  "Effect": "Allow",
                  "Action": "oss:ListObjects",
                  "Resource": "acs:oss:*:*:myphotos"
              },
              {
                  "Sid": "AllowGetObjectsInMyphotos",
                  "Effect": "Allow",
                  "Action": "oss:GetObject",
                  "Resource": "acs:oss:*:*:myphotos/*"
              }
          ]
      }
    • Akses Konsol OSS

      Konsol memerlukan izin tambahan di luar yang dibutuhkan SDK/CLI.

      Catatan

      Saat Pengguna RAM masuk ke Konsol OSS, operasi ListBuckets, GetBucketAcl, dan GetObjectAcl dipanggil untuk memeriksa apakah bucket bersifat publik.

      Pernyataan pertama memberikan operasi visibilitas tingkat konsol pada semua bucket. Pernyataan kedua dan ketiga memberikan akses pencatatan dan pembacaan yang dibatasi pada myphotos.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowConsoleVisibility",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": "acs:oss:*:*:*"
              },
              {
                  "Sid": "AllowListObjectsInMyphotos",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": "acs:oss:*:*:myphotos"
              },
              {
                  "Sid": "AllowGetObjectsInMyphotos",
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject",
                      "oss:GetObjectAcl"
                  ],
                  "Resource": "acs:oss:*:*:myphotos/*"
              }
          ]
      }
  • Contoh 3: Batasi akses ke alamat IP tertentu

    Gunakan elemen Condition untuk membatasi alamat IP mana yang dapat mengakses bucket myphotos. Pilih pendekatan daftar izin (allowlist) atau daftar larangan (denylist).

    • Daftar izin IP (Allow dengan kondisi IP)

      Kebijakan ini memberikan akses baca ke myphotos hanya jika permintaan berasal dari Blok CIDR 192.168.0.0/16 atau 172.16.1.0/16. Kondisi IP hanya berlaku untuk pernyataan akses data — pernyataan Allow untuk visibilitas konsol tetap tidak dibatasi.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowConsoleVisibility",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": [
                      "acs:oss:*:*:*"
                  ]
              },
              {
                  "Sid": "AllowReadFromAllowedIPs",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects",
                      "oss:GetObject"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos",
                      "acs:oss:*:*:myphotos/*"
                  ],
                  "Condition": {
                      "IpAddress": {
                          "acs:SourceIp": ["192.168.0.0/16", "172.16.1.0/16"]
                      }
                  }
              }
          ]
      }
    • Daftar larangan IP (Deny dengan kondisi IP)

      Kebijakan ini secara eksplisit menolak semua operasi OSS jika permintaan berasal dari alamat IP di luar Blok CIDR 192.168.0.0/16. Pengguna RAM di luar rentang tersebut tidak dapat mengakses atau mengelola bucket myphotos.

      Dua pernyataan pertama memberikan izin Allow yang diperlukan; yang ketiga menerapkan Deny. Keduanya diperlukan — Allow memberikan akses, sedangkan Deny mengesampingkannya untuk IP di luar rentang.

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

      Pernyataan Deny memiliki prioritas lebih tinggi daripada pernyataan Allow. Saat Pengguna RAM di luar bucket myphotos mencoba membaca data dan alamat IP-nya tidak termasuk dalam Blok CIDR 192.168.0.0/16, OSS mengembalikan error permission denied.

  • Contoh 4: Berikan akses read-only ke folder tertentu

    Otorisasi tingkat folder merupakan penggunaan lanjutan kebijakan RAM. Izin yang diperlukan bergantung pada cara Pengguna RAM mengakses OSS.

    Bucket berikut menyimpan foto yang diorganisir berdasarkan lokasi dan tahun:

    Bucket myphotos berisi folder yang dinamai berdasarkan lokasi, masing-masing dengan subfolder yang dinamai berdasarkan tahun.

    myphotos[Bucket]
      ├── beijing
      │   ├── 2014
      │   └── 2015
      ├── hangzhou
      │   ├── 2013
      │   ├── 2014
      │   └── 2015 // Berikan izin read-only pada folder ini kepada Pengguna RAM.
      └── qingdao
          ├── 2014
          └── 2015

    Tujuannya adalah memberikan akses read-only ke folder myphotos/hangzhou/2015/. Pilih skenario yang sesuai dengan kasus penggunaan Anda:

    • Skenario 1: Akses objek langsung tanpa pencatatan folder

      Pengguna RAM membaca objek menggunakan path lengkapnya tetapi tidak dapat mencantumkan isi folder. Lampirkan kebijakan ini ke layanan aplikasi yang mengambil objek berdasarkan path yang diketahui.

      Dalam skenario ini, Pengguna RAM dapat menggunakan path lengkap untuk membaca data objek.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowGetObjectsInHangzhou2015",
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos/hangzhou/2015/*"
                  ]
              }
          ]
      }
    • Skenario 2: Akses folder melalui OSS CLI

      Pengguna RAM dapat mencantumkan dan membaca objek di myphotos/hangzhou/2015/ menggunakan OSS CLI atau dengan memanggil operasi OSS secara langsung. Gunakan kebijakan ini untuk memberikan akses kepada pengembang perangkat lunak.

      Dalam skenario ini, Pengguna RAM dapat menggunakan OSS CLI atau memanggil operasi untuk membaca data dari folder tersebut.

      Izin ListObjects diperlukan untuk mencantumkan objek di folder. Kondisi Prefix membatasi pencatatan hanya pada folder target.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowGetObjectsInHangzhou2015",
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos/hangzhou/2015/*"
                  ]
              },
              {
                  "Sid": "AllowListObjectsInHangzhou2015",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos"
                  ],
                  "Condition": {
                      "StringLike": {
                          "oss:Prefix": "hangzhou/2015/*"
                      }
                  }
              }
          ]
      }
    • Skenario 3: Akses folder melalui Konsol OSS

      Pengguna RAM menavigasi ke myphotos/hangzhou/2015/ menggunakan Konsol OSS atau klien visual seperti Windows File Explorer.

      Dalam skenario ini, Pengguna RAM dapat menggunakan klien OSS visual (misalnya, Windows File Explorer) untuk mengakses folder myphotos/hangzhou/2015/.

      Tiga set izin diperlukan agar navigasi konsol berfungsi dengan benar:

      • Izin untuk mencantumkan semua bucket

      • Izin untuk mencantumkan folder di bawah myphotos

      • Izin untuk mencantumkan folder di bawah myphotos/hangzhou

      Pernyataan pertama memberikan visibilitas konsol di semua bucket. Pernyataan kedua memberikan akses baca ke folder target. Pernyataan ketiga menggunakan kondisi Delimiter dan Prefix untuk mengaktifkan navigasi folder demi folder hingga ke hangzhou/2015/.

      {
          "Version": "1",
          "Statement": [
              {
                  "Sid": "AllowConsoleVisibility",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl"
                  ],
                  "Resource": [
                      "acs:oss:*:*:*"
                  ]
              },
              {
                  "Sid": "AllowGetObjectsInHangzhou2015",
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject",
                      "oss:GetObjectAcl"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos/hangzhou/2015/*"
                  ]
              },
              {
                  "Sid": "AllowFolderNavigationInMyphotos",
                  "Effect": "Allow",
                  "Action": [
                      "oss:ListObjects"
                  ],
                  "Resource": [
                      "acs:oss:*:*:myphotos"
                  ],
                  "Condition": {
                      "StringLike": {
                          "oss:Delimiter": "/",
                          "oss:Prefix": [
                              "",
                              "hangzhou/",
                              "hangzhou/2015/*"
                          ]
                      }
                  }
              }
          ]
      }