Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:AccessKey çifti sızıntılarından kaynaklanan yetkisiz erişim risklerini azaltın

Son Güncelleme:Oct 01, 2026

Bireysel veya kurumsal kullanıcıların AccessKey çiftleri sızdırıldığında, Object Storage Service (OSS) kaynaklarına erişim izni olmayan kullanıcılar bu kaynaklarda işlem yapabilir. Bu durum veri güvenliğini tehdit eder. Bu sorunu çözmek için OSS, veri güvenliğini sağlamak amacıyla en iyi uygulamalar sunar.

Önemli

Aşağıdaki en iyi uygulamalar genel güvenlik önlemleridir; eksiksiz güvenlik çözümleri değildir. Bu en iyi uygulamalar yalnızca referans amaçlı sunulmuştur ve iş senaryolarınıza uygun olmayabilir. Veri güvenliği tehditlerinin farkında olmanızı ve gerekli önleyici tedbirleri almanızı öneririz.

Paketlerinizin veya nesnelerinizin Erişim Kontrol Listesini (ACL) özel olarak ayarlayın

İş gereksinimleriniz, anonim kullanıcılar dahil tüm kullanıcıların OSS kaynaklarınızdan veri okumasına ve bu kaynaklara veri yazmasına izin vermiyorsa paketlerinizin veya nesnelerinizin erişim kontrol listesini (ACL) public-read veya public-read-write olarak ayarlamayın. Örneğin, bir paketin ACL değerini public-read veya public-read-write olarak ayarlarsanız aşağıdaki değişiklikler geçerli olur:

  • Public-read-write: Anonim kullanıcılar dahil tüm kullanıcılar, paketteki nesnelerden veri okuyabilir ve bu nesnelere veri yazabilir.

    Uyarı

    Tüm İnternet kullanıcıları paketteki nesnelere erişebilir ve pakete veri yazabilir. Bu durum veri sızıntılarına ve beklenmedik şekilde yüksek ücretlere neden olabilir. Bir kullanıcı paketteki nesnelere yasaklı veriler veya bilgiler yazarsa yasal menfaatleriniz ve haklarınız ihlal edilebilir. Gerekmeyen sürece paket ACL değerini public-read-write olarak ayarlamanızı önermiyoruz.

  • Public-read: Yalnızca paket sahibi paketteki nesnelere veri yazabilir. Anonim kullanıcılar dahil diğer kullanıcılar paketteki nesnelerden veri okuyabilir.

    Uyarı

    Tüm İnternet kullanıcıları paketteki nesnelere erişebilir. Bu durum veri sızıntılarına ve beklenmedik şekilde yüksek ücretlere neden olabilir. Paket ACL değerini public-read olarak ayarlarken dikkatli olun.

Not

Bir AccessKey pair sızdırıldığında saldırgan, sahibinin geçerli kimlik bilgilerine sahip olur. Bir paket ACL değeri public-read olarak ayarlanmış olsa bile saldırgan, sızdırılan AccessKey pair kullanarak DeleteObject çağrısı yapabilir ve paketteki nesneleri silebilir. Public-read ACL yalnızca anonim kullanıcıların erişimini kontrol eder ve geçerli bir AccessKey pair sahibi olan kimliği doğrulanmış kullanıcıların gerçekleştirdiği işlemleri kısıtlamaz. Bir AccessKey pair sızdırıldığında sızdırılan AccessKey pair öğesini hemen devre dışı bırakın ve paketiniz için kaynak değişiklik günlüklerini kontrol edin.

Public-read erişimine veya public-read-write erişimine izin veren bir paket ya da nesne veri ihlallerine yol açabilir. Bu nedenle nesne ACL değerini veya paket ACL değerini private olarak ayarlamanızı öneririz. Paket ACL değerini private olarak ayarlarsanız yalnızca paket sahibi paketteki nesnelerden veri okuyabilir ve bu nesnelere veri yazabilir. Bu yüzden nesne ACL değerini veya paket ACL değerini private olarak değiştirmeden önce işinizin etkilenmediğinden emin olun.

Nesne ACL değerini veya paket ACL değerini private olarak ayarlamak için birden çok yöntem kullanabilirsiniz. Daha fazla bilgi için bkz. Paket ACL'leri ve Nesneler için ACL yapılandırma.

Düz metin AccessKey çiftlerini kodda bulundurmayın veya şifrelenmiş AccessKey çiftlerini yerel olarak depolamayın

Koddaki düz metin AccessKey çiftleri kodla birlikte sızdırılabilir. Yerel olarak şifrelenip depolanan AccessKey çiftleri de güvenli değildir çünkü şifrelenmiş ve şifresi çözülmüş içerik bellekte saklanır ve bellekteki veriler başka bir cihazda depolanabilir. Mobil uygulamalar ve bilgisayarlardaki uygulamalar bu risklere açıktır. Saldırganların şifresi çözülmüş verilere ulaşması için enjeksiyon, API hooking ve dinamik hata ayıklama gibi teknolojileri kullanması yeterlidir.

Kodda düz metin AccessKey çiftlerinden kaçınmak için sunucuda Alibaba Cloud SDK'ları için yönetilen gizli dizi eklentilerini kullanabilirsiniz. Bu sayede AccessKey çiftlerinin kaynak kodu veya derlenmiş kodla birlikte sızdırılmasını önleyebilirsiniz. Alibaba Cloud SDK'ları için yönetilen gizli dizi eklentileri hakkında daha fazla bilgi için bkz. Alibaba Cloud SDK'ları için yönetilen gizli dizi eklentisi.

Önemli

Bu yöntem istemciler için geçerli değildir. AccessKey çiftlerini istemcilere gömmeyin.

OSS'e RAM kullanıcısı kullanarak erişin

Bir Alibaba Cloud hesabının AccessKey çifti tüm API işlemleri üzerinde izinlere sahiptir. Bu kimlik bilgilerini kullanarak OSS'de işlem yapmak yüksek risklidir. API işlemlerini çağırmak veya rutin bakım ve işletim işlemlerini yürütmek için bir RAM kullanıcısı kullanmanızı öneririz.

RAM kullanıcıları oluşturabilir ve kaynaklarınıza erişimi yönetmek için bu kullanıcılara farklı izinler verebilirsiniz. Kuruluşunuzdaki birden çok kullanıcının cloud kaynaklarını ortaklaşa yönetmesi gereken senaryolarda Alibaba Cloud hesabınızı ve parolanızı kesinlikle gizli tutmanıza yardımcı olur. Ayrıca veri güvenliğini sağlamak için kullanıcılara yalnızca gereken minimum izinleri vermenize olanak tanır. Daha fazla bilgi için bkz. RAM kullanıcısı oluşturma.

Bir RAM kullanıcısı oluşturduktan sonra bu kullanıcıya izin vermek için bir RAM ilkesi kullanabilirsiniz. Bu sayede çalışanlar, sistemler ve uygulamalar gibi kullanıcılarınızı ve bu kullanıcıların erişebileceği kaynakları yönetebilirsiniz. Örneğin, belirli RAM kullanıcılarının examplebucket adlı bir pakete ve examplebucket paketindeki nesnelere veya dizinlere erişmesini engellemek için aşağıdaki RAM ilkesini kullanabilirsiniz.

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

RAM ilkelerini kullanarak RAM kullanıcılarının bir paketteki dizini silmesini engelleyebilir veya RAM kullanıcılarına yalnızca bir paketteki kaynakları okuma yetkisi verebilirsiniz. Daha fazla bilgi için bkz. Yaygın RAM ilke örnekleri.

Çok Faktörlü Kimlik Doğrulamayı (MFA) etkinleştirin

Çok faktörlü kimlik doğrulama (MFA), kullanımı kolay ve etkili bir kimlik doğrulama yöntemidir. MFA'yı etkinleştirdiğinizde Alibaba Cloud Management Console'a oturum açarken kullanıcı adınız ve parolanız ile birlikte MFA cihazı tarafından oluşturulan dinamik bir doğrulama kodu gerekir. Bu sayede parola sızıntıları meydana gelse bile yetkisiz erişim engellenerek Alibaba Cloud hesabınızın güvenliği sağlanır.

Alibaba Cloud hesabınız için MFA'yı etkinleştirebilirsiniz. Daha fazla bilgi için bkz. Alibaba Cloud hesabına MFA cihazı bağlama. Ayrıca bir RAM kullanıcısı için MFA'yı etkinleştirebilirsiniz. Daha fazla bilgi için bkz. RAM kullanıcısına MFA cihazı bağlama.

STS tarafından sağlanan geçici erişim kimlik bilgilerini kullanarak OSS'e erişin

Security Token Service (STS) kullanarak geçici erişim kimlik bilgileri oluşturabilir ve bir RAM kullanıcısının belirli bir süre içinde OSS kaynaklarınıza erişmesine izin verebilirsiniz. Bu sayede AccessKey çiftinizi paylaşmanız gerekmez. Bu yaklaşım daha yüksek veri güvenliği sağlar.

STS tarafından sağlanan geçici erişim kimlik bilgilerini kullanarak OSS'e erişme hakkında daha fazla bilgi için bkz. STS tarafından sağlanan geçici kimlik bilgilerini kullanarak OSS'e erişme.

Paket ilkelerini yapılandırın

Paket ilkelerini yapılandırarak diğer kullanıcılara bir paketteki belirli OSS kaynaklarına erişim izni verebilirsiniz. Örneğin, paket ilkelerini yapılandırarak diğer hesaplara paketinizdeki tüm kaynaklara veya kaynakların bir bölümüne erişme ya da bu kaynakları yönetme izni verebilirsiniz. Ayrıca aynı hesabın farklı RAM kullanıcılarına farklı izinler vermek için paket ilkelerini yapılandırabilirsiniz.

Paket ilkelerini yapılandırırken güvenlik risklerini azaltmak için en az ayrıcalık ilkesini (PoLP) takip edin.

  • Kullanıcılara paketinizdeki tüm kaynaklara erişim izni vermeyin

    Aşırı izinleri ve yasa dışı erişimi önlemek için yalnızca gerekli kaynak yollarında izin vermenizi öneririz.

  • Anonim erişime izin vermeyin

    Bir uç nokta ve paket adı sağlandığında anonim hesaplar OSS'e erişmek için kullanılabilir. Ancak uç noktalar numaralandırılabilir ve paket adları, hesapların erişebileceği nesnelerin URL'lerinden elde edilebilir. Bu nedenle anonim erişim güvenlik risklerini artırır.

  • Action belirtin

    OSS konsolunda bir paket ilkesi yapılandırırken dört yetkilendirme işlemi sağlayan Action, kullanıcıların ilkeleri yapılandırması için yalnızca kolaylık sağlayan bir yöntemdir ve belirtilen eylem iş gereksinimlerinizi karşılamayabilir. Gelişmiş Ayarlar'ı kullanarak kullanıcılara yalnızca gerekli izinleri vermenizi öneririz. Örneğin salt okunur izinler oss:ListObjects ve oss:GetObject içerir. Çoğu senaryoda bir nesneyi indirmek istiyorsanız yalnızca oss:GetObject izni gerekir.

  • Erişim için HTTPS'i etkinleştirin

    Ortadaki adam saldırıları ve alan adı ele geçirme gibi sorunları çözmek için HTTPS'i etkinleştirebilirsiniz. Ayrıca Google Chrome kullanarak bir HTTPS web sitesini görüntülerken varsayılan olarak web sitesinin HTTP kaynakları yüklenemez. HTTPS'i etkinleştirdiğinizden emin olun. HTTPS, çeşitli sorunları çözmenin en maliyet etkin yöntemidir.

  • Kaynak IP adreslerini belirtin

    OSS kaynaklarına erişmek için kullanılan IP adresleri sabitse ve numaralandırılabilirse IP adreslerini yapılandırmanızı öneririz.

Örneğin, bir paket ilkesi kullanarak Test RAM kullanıcısına examplebucket içindeki log dizinindeki tüm nesneleri OSS SDK'ları veya komut satırı aracı ossutil kullanarak indirme izni verebilirsiniz.

Action değerini Advanced Settings olarak ayarlayın ve oss:GetObject seçeneğini belirleyin. Effect değerini Allow olarak ayarlayın. Condition bölümünde Access Method için HTTPS'i seçin ve IP = için 10.10.10.10 girin. Ardından OK tıklayın.