Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Bucket Policy

Son Güncelleme:Oct 26, 2026

Bucket Policy, bir pakete eklenen kaynak tabanlı bir yetkilendirme ilkesidir. Paket politikalarını kullanarak hesaplar arası erişim izni verebilir, anonim erişimi etkinleştirebilir veya IP adresine ya da VPC'ye göre erişimi kısıtlayabilirsiniz.

Nasıl çalışır

Bucket Policy, kaynak tabanlı bir model kullanır: Bir pakete eklenir ve hangi esasların (principal), hangi koşullar altında hangi kaynaklarda hangi işlemleri yapabileceğini tanımlar.

Bir istek geldiğinde OSS, paket politikaları ve RAM politikaları dahil olmak üzere tüm ilgili politikaları değerlendirir. Değerlendirme önce reddet (deny-first) ilkesini takip eder: Açık bir Reddet (Deny) kuralı varsa, İzin (Allow) kuralları ne olursa olsun istek engellenir. Eşleşen bir kural yoksa istek varsayılan olarak reddedilir.

Paket sahipleri için Bucket Policy'lerin özel kuralları vardır:

  • Esas (Principal) joker karakter (*) olarak ayarlandığında ve politika bir koşul içermiyorsa, politika yalnızca paket sahibi dışındaki kullanıcılar için geçerlidir.

  • Esas (Principal) joker karakter (*) olarak ayarlandığında ve politika bir koşul içeriyorsa, politika paket sahibi ve anonim kullanıcılar dahil tüm kullanıcılar için geçerlidir. Bir Reddet (Deny) kuralı paketin tamamına erişimi engelleyebilir. Bir İzin (Allow) kuralı verilerinizi anonim kullanıcılara açabilir.

Aynı kullanıcı için birden fazla ifade geçerliyse, etkili izinler önce reddet (deny-first) ilkesine uyularak tüm ifadelerin birleşimi olur.

Önemli
  • acs:SourceIp koşul anahtarı yalnızca isteğin kaynak IP adresiyle eşleşir ve IP adresinin genel ağdan mı yoksa bir VPC'den mi geldiğini ayırt etmez. Bu, erişimi kısıtlamak için yalnızca acs:SourceIp kullanmanız durumunda, aynı IP adresi aralığını kullanan başka bir VPC'den gelen isteklere de izin verileceği ve yetkisiz erişim riski oluşacağı anlamına gelir. Bu nedenle, bir Bucket Policy yapılandırırken acs:SourceIp belirtirseniz, isteğin ağ kaynağını açıkça tanımlamak için acs:SourceVpc da belirtmeniz gerekir.

  • Bu kısıtlama yalnızca yeni Bucket Policy'ler için geçerlidir. Mevcut Bucket Policy'ler etkilenmez. Ancak, mevcut bir Bucket Policy'nin değiştirilmesi yeni bir gönderim olarak kabul edilir ve bu kısıtlamaya tabi tutulur.

Bucket policy yapılandırma

OSS iki yapılandırma yöntemi sunar: grafiksel ve sözdizimi.

  • Grafiksel yöntem: Yaygın yetkilendirme senaryoları için form tabanlı arayüz.

  • Sözdizimi yöntemi: Tüm politika özelliklerini ve karmaşık koşul kombinasyonlarını destekleyen JSON tabanlı düzenleyici.

Grafiksel yöntem

  1. Buckets listesine gidin ve hedef paketi tıklayın.

  2. Sol gezinme bölmesinde Permission Control > Bucket Policy seçeneğini tıklayın.

  3. Add in GUI seçeneğini belirleyin ve ardından Authorize düğmesini tıklayın.

    Parametre

    Açıklama

    Applied To

    İzinlerin Whole Bucket üzerinde mi yoksa Specific Resources üzerinde mi verileceğini seçin.

    Resource Paths

    • Applied To değerini Whole Bucket olarak ayarlarsanız, Resource Paths değeri bucket-name/* olarak ayarlanır.

    • Applied To değerini Specific Resources olarak ayarlarsanız, yetkilendirmek istediğiniz dizini veya nesneyi girin. Birden fazla giriş ekleyebilirsiniz.

    Authorized User

    İzin verilecek esası (principal) belirtin.

    • All Accounts (*): Anonim kullanıcılar dahil herkese izin verir.

    • RAM User: Geçerli Alibaba Cloud hesabına ait bir RAM kullanıcısı seçin.

      Oturum açmış hesabın bir Alibaba Cloud hesabı (kök hesap) veya RAM'de paket yönetimi izinlerine ve ListUsers iznine sahip bir RAM kullanıcısı olması gerekir. Aksi takdirde RAM kullanıcı listesi görünmez.

    • Other Accounts: Yetkilendirmek için başka bir hesabın veya RAM kullanıcısının UID'sini ya da kimlik bilgileri arn:sts ile başlayan geçici bir kullanıcıyı girin; örneğin arn:sts::1798**:assumed-role/role-name/session-name. Birden fazla kullanıcıya yetki verebilirsiniz. Her satıra bir kullanıcı girin.

      İzinler bir RAM rolüne verilirse, rol OSS konsolundan kaynaklara erişemez. Bunun yerine ossutil, bir SDK veya bir API kullanın.

    Authorized Operation

    • Simple Settings: Yaygın yetkili işlem kombinasyonlarından birini seçin. Seçenekler arasında Read-Only (excluding ListObject), Read-Only (including ListObject), Read/Write, Full Access ve Deny Access bulunur.

    • Advanced Settings: Effect (Allow veya Reject) ve Operation değerlerini özelleştirin.

    Condition (İsteğe bağlı)

    Politikanın geçerli olacağı koşulları ayarlayın.

    • Access Method: Seçenekler arasında HTTPS ve HTTP bulunur. Bir seçenek belirlediğinizde politika yalnızca seçilen yöntemi kullanan erişim istekleri için geçerli olur.

    • IP =: IP adresi listesi girin. Bu seçeneği belirlerseniz politika yalnızca belirtilen IP adreslerinden gelen erişim istekleri için geçerli olur.

    • IP ≠: IP adresi listesi girin. Bu seçeneği belirlerseniz politika yalnızca belirtilen IP adreslerinden gelmeyen erişim istekleri için geçerli olur.

    • VPC =: Geçerli hesaba ait bir VPC seçin veya başka bir hesaba ait bir VPC girin. Bu seçeneği belirlerseniz politika yalnızca belirtilen VPC'den gelen erişim istekleri için geçerli olur.

    • VPC ≠: Geçerli hesaba ait bir VPC seçin veya başka bir hesaba ait bir VPC girin. Bu seçeneği belirlerseniz politika yalnızca belirtilen VPC'den gelmeyen erişim istekleri için geçerli olur.

    Birden fazla koşul yapılandırdığınızda tüm koşulların karşılanması gerekir (VE ilişkisi).

  4. Yapılandırmanın doğru olduğunu onayladıktan sonra Bucket Policy'yi uygulamak için OK düğmesini tıklayın.

Sözdizimi yöntemi

  1. Buckets listesine gidin ve hedef paketi tıklayın.

  2. Sol gezinme bölmesinde Permission Control > Bucket Policy seçeneğini tıklayın.

  3. Add by Syntax seçeneğini belirleyin ve ardından Edit düğmesini tıklayın. Düzenleyicide yetkilendirme politikasını JSON formatında girin.

    Örnek politika: Bir erişim isteği vpc-t4nlw426y44rd3iq4xxxx VPC'sinden gelmiyorsa 20214760404935xxxx kullanıcısının example-bucket üzerindeki tüm işlemlerini reddedin.

    {
        "Version": "1",
        "Statement": [
            {
                "Sid": "DenyNonVpcAccess",
                "Effect": "Deny",
                "Action": "oss:*",
                "Principal": [
                    "20214760404935xxxx"
                ],
                "Resource": [
                    "acs:oss:*:174649585760xxxx:example-bucket",
                    "acs:oss:*:174649585760xxxx:example-bucket/*"
                ],
                "Condition": {
                    "StringNotEquals": {
                        "acs:SourceVpc": "vpc-t4nlw426y44rd3iq4xxxx"
                    }
                }
            }
        ]
    }

    Tam bir yetkilendirme politikası bir Version ve bir Statement içerir.

    • Version: Erişim politikasının sürümü. Değer sabit olarak 1 şeklindedir ve değiştirilemez.

    • Statement: Politikanın ana gövdesi. Bir veya daha fazla belirli kural içerir. Her kural isteğe bağlı bir Sid içerir ve bir Effect, bir Action, bir Principal, bir Resource ve bir Condition öğesini barındırır.


      Policy element


      Description


      Meaning in example


      Sid (isteğe bağlı)


      İfade Kimliği. Politikanın her ifadesi için insan tarafından okunabilen, benzersiz bir tanımlayıcıdır. Farklılaştırma, yönetim ve denetime yardımcı olur ancak izinleri doğrudan etkilemez.


      Reddetme ifadesini DenyNonVpcAccess olarak tanımlar.


      Effect


      Politikanın etkisi. Geçerli değerler Allow ve Deny değerleridir.


      İsteği reddeder.


      Action


      Kaynak üzerinde yapılacak belirli eylem. Joker karakter * desteklenir.


      Tüm OSS eylemlerini reddedin (oss:*).


      Principal

      Politikanın uygulanacağı kullanıcı, hesap veya rol.

      Principal alanını boş bir liste olarak ayarlamak (Principal:[]), tüm hesaplar için ayarlamakla (Principal:["*"]) aynıdır.


      Politika yalnızca 20214760404935xxxx RAM kullanıcısına uygulanır.


      Resource


      Politikanın uygulanacağı kaynaklar.


      Politika example-bucket paketinin kendisine ve içindeki tüm nesnelere uygulanır.


      Condition

      Politikanın geçerli olacağı koşullar.

      Birden fazla koşul yapılandırdığınızda tüm koşulların karşılanması gerekir (VE ilişkisi).


      Bu Reddetme politikası yalnızca isteğin kaynak VPC'si vpc-t4nlw426y44rd3iq4xxxx değilse geçerli olur.

      Tam politika öğesi referansı: Authorization syntax and elements.

  4. Yetkilendirme politikasının doğru olduğunu onayladıktan sonra Save düğmesini tıklayın ve ekrandaki talimatları izleyin.

Vektör paketi politikası yapılandırma

Vektör paketleri, paket politikası yapılandırması için yalnızca sözdizimi yöntemini destekler.

  1. Vector Buckets listesine gidin ve hedef vektör paketini tıklayın.

  2. Sol gezinme bölmesinde Permission Control > Bucket Policy seçeneğini tıklayın.

  3. Edit düğmesini tıklayın. Düzenleyicide yetkilendirme politikasını JSON formatında girin.

    Örnek politika: 20816353761158**** kullanıcısına vector-bucket-example içindeki indextest dizin tablosu için vektör verilerini okuma ve yazma izni verin.

    {
      "Version": "1",
      "Statement": [{
        "Effect": "Allow",
        "Action": [
          "oss:PutVectors",
          "oss:GetVectors"
        ],
        "Principal": [
          "20816353761158****"
        ],
        "Resource": [
          "acs:ossvector:*:*:vector-bucket-example/indextest"
        ]
      }]
    }

    Tam bir yetkilendirme politikası bir Version ve bir Statement içerir.

    • Version: Erişim politikasının sürümü. Değer sabit olarak 1 şeklindedir ve değiştirilemez.

    • Statement: Politikanın ana gövdesi. Bir veya daha fazla belirli kural içerir. Her kural bir Effect, bir Action, bir Principal, bir Resource ve bir Condition öğesini barındırır.


      Policy element


      Description


      Meaning in example


      Effect


      Politikanın etkisi. Geçerli değerler Allow ve Deny değerleridir.


      İsteğe izin verir.


      Action


      Kaynak üzerinde yapılacak belirli eylem. Joker karakter * desteklenir.


      Vektör verilerini okuyun ve yazın.


      Principal

      Politikanın uygulanacağı kullanıcı, hesap veya rol.

      Principal alanını boş bir liste olarak ayarlamak (Principal:[]), tüm hesaplar için ayarlamakla (Principal:["*"]) aynıdır.


      Politika yalnızca 20816353761158**** RAM kullanıcısına uygulanır.


      Resource


      Politikanın uygulanacağı kaynaklar.


      Politika vector-bucket-example paketindeki indextest dizin tablosuna uygulanır.


      Condition

      Politikanın geçerli olacağı koşullar.

      Birden fazla koşul yapılandırdığınızda tüm koşulların karşılanması gerekir (VE ilişkisi).


      Yok.

      Tam politika öğesi referansı: Authorization syntax and elements.

  4. Yetkilendirme politikasının doğru olduğunu onayladıktan sonra Save düğmesini tıklayın ve ekrandaki talimatları izleyin.

OSS-HDFS politikası yapılandırma

OSS-HDFS hizmeti kullanıcılarının .dlsdata/ dizinine ve nesnelerine erişebilmesini sağlamak için, OSS-HDFS etkinleştirilmiş bir paket için Bucket Policy yapılandırırken yetkili işlemi Deny Access olarak ayarlamayın. Prerequisites for using OSS-HDFS.

Erişimi belirli ağ IP adreslerine veya bir VPC'ye kısıtlamak için tüm Reddetme (Deny) ifadelerine aşağıdaki koşulu ekleyin. Bu, OSS-HDFS arka uç hizmetinin klasik ağ üzerinden pakete okuma ve yazma yapmasını sağlar.

"StringNotLike": {
    "oss:ClassicIntranet": [
        "true"
    ]
}

Yaygın senaryolar: İzin verme

Aşağıdaki senaryolar belirli kullanıcılara, rollere veya tüm kullanıcılara erişim izni vermeyi göstermektedir. Her biri uyarlayabileceğiniz bir politika örneği içerir.

Senaryo 1: Okuma/yazma izni verme

Ekip üyelerine veya ortaklara bir paket için okuma/yazma erişimi verin. Bu örnek, example-bucket üzerinde 27737962156157xxxx ve 20214760404935xxxx RAM kullanıcılarına okuma/yazma izni verir.

Not

Bu politika paketleri listeleme izni vermez. RAM kullanıcıları Buckets sayfasına doğrudan göz atamaz. Bunun yerine, sol gezinme bölmesinde hedef paketi My Favorite Paths > + konumuna ekleyebilirler.

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "oss:GetObject",
                "oss:PutObject",
                "oss:GetObjectAcl",
                "oss:PutObjectAcl",
                "oss:AbortMultipartUpload",
                "oss:ListParts",
                "oss:RestoreObject",
                "oss:GetVodPlaylist",
                "oss:PostVodPlaylist",
                "oss:PublishRtmpStream",
                "oss:ListObjectVersions",
                "oss:GetObjectVersion",
                "oss:GetObjectVersionAcl",
                "oss:RestoreObjectVersion"
            ],
            "Principal":[
                "27737962156157xxxx",
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ]
        },
        {
            "Effect":"Allow",
            "Action":[
                "oss:ListObjects"
            ],
            "Principal":[
                "27737962156157xxxx",
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket"
            ],
            "Condition":{
                "StringLike":{
                    "oss:Prefix":[
                        "*"
                    ]
                }
            }
        }
    ]
}

Senaryo 2: Belirli dizinlere salt okunur izni verme

Belirli dizinlere salt okunur erişim izni verin. Bu örnek, 20214760404935xxxx RAM kullanıcısına example-bucket içindeki hangzhou/2020 ve shanghai/2015 ön eklerine sahip dizinler için salt okunur izni verir.

Not

Bu politika paketleri listeleme izni vermez. RAM kullanıcıları Buckets sayfasına doğrudan göz atamaz. Bunun yerine, sol gezinme bölmesinde hedef paketi My Favorite Paths > + konumuna ekleyebilirler.

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:GetObject",
                "oss:GetObjectAcl",
                "oss:GetObjectVersion",
                "oss:GetObjectVersionAcl"
            ],
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/hangzhou/2020/*",
                "acs:oss:*:174649585760xxxx:example-bucket/shanghai/2015/*"
            ]
        },
        {
            "Action":[
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Condition":{
                "StringLike":{
                    "oss:Prefix":[
                        "hangzhou/2020/*",
                        "shanghai/2015/*"
                    ]
                }
            },
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket"
            ]
        }
    ]
}

Senaryo 3: Görüntüleme ve listeleme izni verme

Bir kullanıcının paket bilgilerini görüntülemesine ve nesneleri listelemesine izin verin. Bu örnek, bir RAM kullanıcısına example-bucket üzerinde görüntüleme ve listeleme izni verir.

Not

Bu politika paketleri listeleme izni vermez. RAM kullanıcıları Buckets sayfasına doğrudan göz atamaz. Bunun yerine, sol gezinme bölmesinde hedef paketi My Favorite Paths > + konumuna ekleyebilirler.

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:Get*",
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket"
            ]
        }
    ]
}

Senaryo 4: Bir RAM rolüne okuma izni verme

Bir RAM rolü aracılığıyla paket nesnelerine geçici erişim izni verin. Bir RAM kullanıcısı veya uygulama, geçici kimlik bilgilerini almak için rolü üstlenir. Bu örnek, example-bucket içindeki tüm nesneler üzerinde bir RAM rolü altındaki tüm oturumlara ve başka bir rol altındaki belirli bir oturuma okuma izni verir.

Not

Bir RAM rolüne izin verirken Principal şu biçimi takip etmelidir: arn:sts::<uid>:assumed-role/<role-name>/<session-name>. <role-name> ve <session-name> değerlerinin tamamı küçük harf olmalıdır.

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:GetObject"
            ],
            "Effect": "Allow",
            "Principal": [
                "arn:sts::10323xxxxx72056:assumed-role/role-name/session-name",
                "arn:sts::10323xxxxx72056:assumed-role/role2-name/*"
            ],
            "Resource": [
                "acs:oss:*:10323xxxxx72056:example-bucket/*"
            ]
        }
    ]
}

Senaryo 5: Tüm kullanıcılara listeleme izni verme

Tüm kullanıcıların içeriğine erişmeden nesneleri listelemesine izin verin. Bu örnek, tüm kullanıcılara (*) example-bucket üzerinde listeleme izni verir.

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Effect":"Allow",
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket"
            ]
        }
    ]
}

Senaryo 6: AgenticBucket'te bucketspace oluşturma ve nesne listeleme izni verme

Kullanıcılara belirli bir AgenticBucket'te yalnızca bucketspace'ler (normal paketler yerine) oluşturma izni verirken ayrıntılı kontrol sağlamak için Bucket Policies kullanın. Aşağıdaki politika iki ifade içerir:

  • İfade 1 (İşlemleri belirli bir AgenticBucket ile sınırlama): oss:PutBucket iznini belirli bir AgenticBucket ile sınırlamak için oss:AgenticBucketName koşul anahtarını kullanır. Bu, kullanıcıların yalnızca o AgenticBucket'te bucketspace'ler oluşturmasına olanak tanır; normal paketler oluşturamaz. Ayrıca nesneler, çok parçalı yüklemeler ve bucketspace'leri listeleme için diğer yaygın olarak kullanılan işlem izinlerini verir.

  • İfade 2 (Listeleme işlemlerini yalnızca bucketspace'lerle sınırlama): Resource alanında *-bs-apsr desenini eşleştirerek oss:ListObjects işlemlerini yalnızca bucketspace'lerle sınırlar ve normal paketlerdeki listeleme işlemlerini engeller. Action değerini oss:PutBucket olarak değiştirirseniz politika, kullanıcıların normal paketler yerine yalnızca bucketspace'ler oluşturmasını sınırlar.

Bu yapılandırma, bir AgenticBucket senaryosunda bucketspace oluşturma izinleri ile normal paket oluşturma izinleri arasında ayrıntılı ayrım yapılmasını sağlar.

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:GetObject",
                "oss:DeleteObject",
                "oss:PutObject",
                "oss:AbortMultipartUpload",
                "oss:ListMultipartUploads",
                "oss:ListObjects",
                "oss:ListParts",
                "oss:PutBucket",
                "oss:ListBucketSpaces"
            ],
            "Condition": {
                "StringLike": {
                    "oss:AgenticBucketName": [
                        "sandbox-test-189xxxxxxxxxxxxx-cn-hangzhou-ab-apsr"
                    ]
                }
            },
            "Effect": "Allow",
            "Resource": [
                "acs:oss:::"
            ]
        },
        {
            "Action": [
                "oss:ListObjects"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:oss:::-bs-apsr"
            ]
        }
    ]
}

Yaygın senaryolar: Ağ erişimini kısıtlama

Aşağıdaki senaryolar, acs:SourceIp ve acs:SourceVpc koşul anahtarlarını kullanarak ağ kaynağına (genel IP veya VPC) göre paket erişimini kısıtlar. Aşağıdaki tabloda yaygın yaklaşımlar özetlenmiştir.


Access source


Policy approach


Scenario


Herhangi bir VPC


acs:SourceVpc değeri vpc-* ile başlamayan istekleri reddedin.


Senaryo 1: Genel ağ erişimini kısıtlama


Belirli bir VPC


acs:SourceVpc değeri belirtilen VPC Kimliğine eşit olmayan istekleri reddedin.


Senaryo 2: Erişimi belirli bir VPC ile sınırlama


Belirli bir genel IP


1. İfade: Belirtilmemiş IP adreslerinden gelen genel ağ isteklerini reddeder; 2. İfade: Tüm VPC isteklerini reddeder.


Senaryo 3: Erişimi belirli bir genel IP adresi ile sınırlama


Belirli bir VPC içindeki belirli bir IP aralığı


1. İfade: Belirtilmemiş VPC'lerden gelen istekleri reddeder; 2. İfade: Belirtilen VPC içindeki belirtilmemiş IP aralıklarından gelen istekleri reddeder.


Senaryo 4: Erişimi bir VPC'deki IP aralığı ile sınırlama


Belirli bir genel IP veya belirli bir VPC


1. İfade: Belirtilmemiş IP adreslerinden gelen genel ağ isteklerini reddeder; 2. İfade: Belirtilmemiş VPC'lerden gelen VPC isteklerini reddeder.


Senaryo 5: Erişimi bir genel IP veya VPC ile sınırlama


Belirli bir IP dışındaki tümleri (karaliste)


Belirtilen IP'den gelen istekleri reddedin ve kısıtlamayı karşılamak için SourceVpc için joker karakter * kullanın.


Senaryo 6: IP karalistesi ayarlama


Klasik ağ


Klasik ağ erişimine izin verin.


Senaryo 7: Klasik ağ erişimini yapılandırma

Senaryo 1: Genel ağ erişimini kısıtlama

acs:SourceVpc koşul anahtarı içeren bir reddetme ifadesi ekleyerek bir pakete yönelik tüm genel ağ erişimini engelleyin. Bu ifade, bir VPC'den kaynaklanmayan istekleri reddeder. Aşağıdaki örnek, example-bucket üzerindeki tüm VPC dışı erişimi reddeder.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "oss:*",
      "Principal": [
        "*"
      ],
      "Resource": [
        "acs:oss:*:174649585760xxxx:example-bucket/*",
        "acs:oss:*:174649585760xxxx:example-bucket"
      ],
      "Condition": {
        "StringNotLike": {
          "acs:SourceVpc": [
            "vpc-*"
          ]
        }
      }
    }
  ]
}

Senaryo 2: Erişimi belirli bir VPC ile sınırlama

acs:SourceVpc koşul anahtarını kullanarak paket erişimini belirli bir VPC ile sınırlayın. Bu ifade, diğer VPC'lerden veya genel ağdan gelen istekleri engeller. Aşağıdaki örnek, t4nlw426y44rd3iq4xxxx VPC'si dışındaki tüm kullanıcıların example-bucket içindeki nesneleri okumasını engeller.

Not
  • Aşağıdaki reddetme ifadesindeki esas (principal) bir joker karakter (*) olduğu ve bir koşul içerdiği için reddetme ifadesi paket sahibi dahil tüm kullanıcılar için geçerlidir.

  • Aşağıdaki reddetme ifadesi yalnızca erişimi kısıtlar ve herhangi bir izin vermez. Esasa izin verilmediyse gerekli izinleri vermek için bir izin (allow) ifadesi ekleyebilirsiniz.

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        }
    ]
}

Senaryo 3: Erişimi belirli bir genel IP adresi ile sınırlama

Paket erişimini belirli bir genel IP adresi ile sınırlamak için iki reddetme ifadesi oluşturun:

  • 1. İfade (Belirtilmemiş IP adreslerinden gelen genel ağ isteklerini reddetme): Bu ifade, genel ağ isteklerini tanımlamak için StringNotLike: {"acs:SourceVpc": "vpc-*"} kullanır (genel ağ isteği için acs:SourceVpc değeri vpc- ile başlamaz). Ardından belirtilen IP adresinden gelmeyen istekleri reddetmek için NotIpAddress: {"acs:SourceIp": "..."} kullanır. Her iki koşul da karşılandığında reddetme eylemi tetiklenir.

  • 2. İfade (Tüm VPC isteklerini reddetme): Bu ifade, amaç yalnızca belirtilen genel IP adresinden erişime izin vermek olduğundan herhangi bir VPC'den gelen tüm istekleri eşleştirmek ve reddetmek için StringLike: {"acs:SourceVpc": "vpc-*"} kullanır.

Bir istek herhangi bir ifadeyle eşleşirse reddedilir. Aşağıdaki örnek, 203.0.113.5 genel IP'si dışındaki tüm kullanıcıların example-bucket üzerindeki okuma erişimini reddeder.

Not
  • Aşağıdaki reddetme ifadesindeki esas (principal) bir joker karakter (*) olduğu ve bir koşul içerdiği için reddetme ifadesi paket sahibi dahil tüm kullanıcılar için geçerlidir.

  • Aşağıdaki reddetme ifadesi yalnızca erişimi kısıtlar ve herhangi bir izin vermez. Esasa izin verilmediyse gerekli izinleri vermek için bir izin (allow) ifadesi ekleyebilirsiniz.

{
  "Version": "1",
  "Statement": [{
    "Effect": "Deny",
    "Action": [
      "oss:GetObject"
    ],
    "Principal": [
      "*"
    ],
    "Resource": [
      "acs:oss:*:174649585760xxxx:example-bucket/*"
    ],
    "Condition": {
      "NotIpAddress": {
        "acs:SourceIp": [
          "203.0.113.5"
        ]
      },
      "StringNotLike": {
        "acs:SourceVpc": [
          "vpc-*"
        ]
      }
    }
  },
    {
      "Effect": "Deny",
      "Action": [
        "oss:GetObject"
      ],
      "Principal": [
        "*"
      ],
      "Resource": [
        "acs:oss:*:174649585760xxxx:example-bucket/*"
      ],
      "Condition": {
        "StringLike": {
          "acs:SourceVpc": [
            "vpc-*"
          ]
        }
      }
    }
  ]
}

Senaryo 4: Erişimi bir VPC'deki IP aralığı ile sınırlama

Paket erişimini belirli bir VPC içindeki belirli bir IP aralığı ile sınırlamak için iki reddetme ifadesi oluşturun:

  • 1. İfade (Belirtilen VPC dışındaki tüm istekleri reddetme): Bu ifade, diğer VPC'lerden ve genel ağdan gelen istekleri reddetmek için StringNotEquals: {"acs:SourceVpc": "..."} kullanır.

  • 2. İfade (VPC içinde belirtilen IP aralığı dışındaki istekleri reddetme): Bu ifade, belirtilen VPC'den gelen istekleri eşleştirmek için StringEquals: {"acs:SourceVpc": "..."} kullanır ve ardından belirtilen IP adresi aralığı dışındaki istekleri reddetmek için NotIpAddress: {"acs:SourceIp": "..."} kullanır. Her iki koşul da karşılandığında reddetme eylemi tetiklenir.

Bir istek herhangi bir ifadeyle eşleşirse reddedilir. Aşağıdaki örnek, t4nlw426y44rd3iq4xxxx VPC'si içindeki 192.168.0.0/16 aralığı dışındaki tüm kullanıcıların example-bucket üzerindeki okuma erişimini reddeder.

Not
  • Aşağıdaki reddetme ifadesindeki esas (principal) bir joker karakter (*) olduğu ve bir koşul içerdiği için reddetme ifadesi paket sahibi dahil tüm kullanıcılar için geçerlidir.

  • Aşağıdaki reddetme ifadesi yalnızca erişimi kısıtlar ve herhangi bir izin vermez. Esasa izin verilmediyse gerekli izinleri vermek için bir izin (allow) ifadesi ekleyebilirsiniz.

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        },
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                },
                "NotIpAddress":{
                    "acs:SourceIp":[
                        "192.168.0.0/16"
                    ]
                }
            }
        }
    ]
}

Senaryo 5: Erişimi bir genel IP veya VPC ile sınırlama

Paket erişimini belirli bir genel IP veya belirli bir VPC ile sınırlamak için iki reddetme ifadesi oluşturun:

  • 1. İfade (Genel ağ istekleri için belirtilmemiş IP'leri reddetme): Bu ifade, genel ağ isteklerini tanımlamak için StringNotLike: {"acs:SourceVpc": "vpc-*"} kullanır ve ardından belirtilmemiş genel IP adreslerinden gelen istekleri reddetmek için NotIpAddress: {"acs:SourceIp": "..."} kullanır. Her iki koşul da karşılandığında reddetme eylemi tetiklenir. VPC istekleri acs:SourceVpc değeri vpc- ile başladığından bu ifadeyle eşleşmez.

  • 2. İfade (VPC istekleri için belirtilmemiş VPC'leri reddetme): Bu ifade, VPC isteklerini tanımlamak için StringLike: {"acs:SourceVpc": "vpc-*"} kullanır ve ardından belirtilmemiş VPC'lerden gelen istekleri reddetmek için StringNotEquals: {"acs:SourceVpc": "..."} kullanır. Her iki koşul da karşılandığında reddetme eylemi tetiklenir. Genel ağ istekleri acs:SourceVpc değeri vpc- ile başlamadığından bu ifadeyle eşleşmez.

Bir istek herhangi bir ifadeyle eşleşirse reddedilir. Aşağıdaki örnek, 203.0.113.5 genel IP'si veya t4nlw426y44rd3iq4xxxx VPC'si dışındaki tüm kullanıcıların example-bucket üzerindeki okuma erişimini reddeder.

Not
  • Aşağıdaki reddetme ifadesindeki esas (principal) bir joker karakter (*) olduğu ve bir koşul içerdiği için reddetme ifadesi paket sahibi dahil tüm kullanıcılar için geçerlidir.

  • Aşağıdaki reddetme ifadesi yalnızca erişimi kısıtlar ve herhangi bir izin vermez. Esasa izin verilmediyse gerekli izinleri vermek için bir izin (allow) ifadesi ekleyebilirsiniz.

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringNotLike":{
                    "acs:SourceVpc":[
                        "vpc-*"
                    ]
                },
                "NotIpAddress":{
                    "acs:SourceIp":[
                        "203.0.113.5"
                    ]
                }
            }
        },
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition":{
                "StringLike":{
                    "acs:SourceVpc":[
                        "vpc-*"
                    ]
                },
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        }
    ]
}

Senaryo 6: IP karalistesi ayarlama

Paket politikasına bir reddetme ifadesi ekleyerek belirli IP adreslerinden veya aralıklarından gelen erişimi engelleyin.

StringLike: {"acs:SourceVpc": "*"} koşulu, tüm değerleri eşleştirmek için bir joker karakter kullanır ve VPC kapsamını kısıtlamaz. Yalnızca acs:SourceIp koşulunun karşılık gelen bir acs:SourceVpc koşulu gerektirdiği kısıtlamayı karşılamak için vardır.

Not
  • Aşağıdaki reddetme ifadesindeki esas (principal) bir joker karakter (*) olduğu ve bir koşul içerdiği için reddetme ifadesi paket sahibi dahil tüm kullanıcılar için geçerlidir.

  • Birden fazla IP adresi ve IP adresi aralığı yapılandırabilirsiniz. Bunları virgülle ayırın.

{
  "Version": "1",
  "Statement": [{
    "Effect": "Deny",
    "Action": "oss:*",
    "Principal": [
      "*"
    ],
    "Resource": [
      "acs:oss:*:174649585760xxxx:example-bucket/*",
      "acs:oss:*:174649585760xxxx:example-bucket"
    ],
    "Condition": {
      "IpAddress": {
        "acs:SourceIp": [
          "101.***.***.100"
        ]
      },
      "StringLike": {
        "acs:SourceVpc": [
          "*"
        ]
      }
    }
  }]
}

Senaryo 7: Klasik ağ erişimini yapılandırma

oss:ClassicIntranet koşul anahtarı, bir isteğin OSS klasik ağından kaynaklanıp kaynaklanmadığını gösterir. Geçerli değerler true ve false değerleridir. Bazı OSS arka uç hizmetleri (günlük teslimi ve paket envanteri gibi) paketlere klasik ağ üzerinden erişir. Klasik ağdan gelen istekleri eşleştirmek için aşağıdaki koşulu kullanın.

"Condition": {
    "StringEquals": {
        "oss:ClassicIntranet": [
            "true"
        ]
    }
}

Ağ erişimi kısıtlamaları (Reddetme politikaları) yapılandırırken yukarıdaki arka uç hizmetlerine izin vermek için Reddetme ifadesinin Condition bloğuna aşağıdaki koşulu ekleyin ve klasik ağ isteklerini hariç tutarak istenmeyen engellemeleri önleyin.

"StringNotEquals": {
    "oss:ClassicIntranet": [
        "true"
    ]
}

Yaygın senaryolar: Güvenlik kontrolleri

Aşağıdaki senaryolar güvenlik kontrollerini uygular: kimlik bilgisi kısıtlamaları, genel erişimin önlenmesi ve saklama politikası sınırları.

Senaryo 1: API çağrıları için geçici kimlik bilgileri gerektirme

API çağrıları için geçici erişim kimlik bilgileri gerektirin. Bu politika, uzun süreli kimlik bilgilerinden (Alibaba Cloud hesabı veya RAM kullanıcı erişim anahtarları) gelen erişimi engellemek için acs:AccessId koşul anahtarını kullanır. Aşağıdaki örnek, geçici kimlik bilgilerine (TMP. veya STS. ile başlayan) sahip olmayan tüm kullanıcıların example-bucket paketini görüntülemesini ve nesnelerini listelemesini engeller.

{
    "Version": "1",
    "Statement": [
        {            
            "Effect": "Deny",
            "Action":[
                "oss:Get*",
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:example-bucket/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "acs:AccessId": [
                        "TMP.*",
                        "STS.*"
                 ]
                }
            }
        }
    ]
}

Senaryo 2: Genel ACL'leri yasaklama

Paket ve nesne ACL'lerinin genel olarak ayarlanmasını önleyin. İki reddetme ifadesi oluşturun:

  • Paket ACL'sinin private dışında herhangi bir izne ayarlanmasını önlemek için oss:x-oss-acl koşul anahtarını kullanarak bir reddetme ifadesi oluşturun. Genel okuma veya genel okuma-yazma ACL'si ayarlama girişimi reddetme kuralını tetikler.

  • Nesne ACL'sinin private ve default dışında herhangi bir izne ayarlanmasını önlemek için oss:x-oss-object-acl koşul anahtarını kullanarak bir reddetme ifadesi oluşturun.

Bir istek herhangi bir ifadeyle eşleşirse reddedilir. Aşağıdaki örnek, example-bucket üzerindeki genel ACL işlemlerini reddeder.

{
    "Version": "1",
    "Statement": [
        {            
            "Effect": "Deny",
            "Action": [
                "oss:PutBucketAcl"
            ],
            "Principal": [
                "*"
            ],
            "Resource": [
                "acs:oss:*:*:example-bucket"
            ],
            "Condition": {
                "StringNotEquals": {
                    "oss:x-oss-acl": "private"
                }
            }
        },
        {            
            "Effect": "Deny",
            "Action": [
                "oss:PutObjectAcl"
            ],
            "Principal": [
                "*"
            ],
            "Resource": [
                "acs:oss:*:*:example-bucket/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "oss:x-oss-object-acl": [
                        "private",
                        "default"
                    ]
                }
            }
        }
    ]
}

Senaryo 3: ObjectWorm saklama süresini sınırlama

Bir paket için nesne düzeyinde saklama politikası (ObjectWorm) etkinleştirdikten sonra maksimum saklama süresini sınırlamak için bir paket politikası kullanın. Aşağıdaki örnek saklama süresini 30 günle sınırlar. 30 günü aşan herhangi bir PutObjectRetention isteği reddedilir.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "oss:PutObjectRetention"
      ],
      "Principal": [
        "*"
      ],
      "Resource": [
        "acs:oss:*:174649585760xxxx:example-bucket/*"
      ],
      "Condition": {
        "NumericGreaterThan": {
          "oss:object-remaining-retention-days": "30"
        }
      }
    }
  ]
}
Not
  • oss:object-remaining-retention-days bir ObjectWorm politikası için koşul anahtarıdır. İstekte belirtilen kalan saklama günlerinin sayısını temsil eder.

  • Bu politikadaki esas (principal) bir joker karakter (*) olduğu ve bir koşul içerdiği için politika paket sahibi dahil tüm kullanıcılar için geçerlidir.

Geliştirme ve araç entegrasyonu

Konsolun ötesinde, paket politikalarını grafiksel araçlar, CLI araçları ve SDK'lar kullanarak yapılandırabilirsiniz.

  • ossbrowser grafiksel aracını kullanma

    ossbrowser, paket düzeyindeki politika işlemleri için konsol benzeri görsel bir deneyim sağlar. ossbrowser uygulamasını yükleyin ve oturum açın, ardından politikayı yapılandırın.

  • ossutil komut satırı aracını kullanma

    Yetkilendirme politikasını put-bucket-policy komutunu kullanarak ayarlayın.

    Not

    Bir vektör paketi için yetkilendirme politikası ayarlamak üzere ossutil vectors-api put-bucket-policy komutunu çalıştırın.

  • SDK kullanma

    Java SDK, Python SDK, Go SDK ve Node.js SDK gibi SDK'ları kullanarak politikaları yapılandırın. SDK reference desteklenen tüm dilleri kapsar.

  • Doğrudan API çağırma

    Paket yetkilendirme politikası ayarlamak için PutBucketPolicy işlemini çağırın.

Kotalar ve sınırlar

  • Politika boyutu: Bir paket birden fazla Bucket Policy ifadesine sahip olabilir ancak tüm politikaların toplam boyutu 16 KB'yi aşamaz.

  • Alan uzunluğu: Bir Bucket Policy'deki her alanın uzunluğu 4.095 baytı aşamaz.

İlgili belgeler