Ana SayfaBelgelerKod ÖrnekleriAPI BaşvurusuDuyurularModellerSürüm NotlarıSSSGitHubVideolar
Geliştirici MerkeziAPI DurumuDestek
Belgeler
Geliştirici MerkeziAPI DurumuDestek

Hassas Kimlik Bilgilerini Koruma

SP-API Uygulamalarınız için hassas kimlik bilgilerini koruyun.

Özet

Uygulama geliştiricilerinin hassas kimlik bilgilerini korumaları çok önemlidir. Hassas kimlik bilgileri, geliştiricilerin bir uygulama geliştirirken yaptığı en yaygın hatalardan biridir. API anahtarları ve gizli anahtarlar gibi hassas kimlik bilgilerinin sabit kodlanması, bu kimlik bilgilerinin açığa çıkmasına neden olabilir. Bu teknik makale, hassas verilerin sabit kodlanmasının risklerini açıklar ve bunlardan kaçınmak için atabileceğiniz adımları özetler.

Giriş

Bu teknik belge, bir geliştirici olarak yeni özelliklerin sunulmasında veya piyasaya sürülmesinde zaman kazanmak için bir kısayol şeklinde kimlik bilgilerinin sabit kodlamasından nasıl kaçınılacağını açıklar. Böylece güvenlik açığı oluşmasını önleme konusunda size tavsiyelerde bulunur. Bu belge; katman koruması, şifreleme anahtarlarının döndürülmesi ve genel kod depoları yerine özel kod depolarının kullanılması gibi en iyi uygulamalar hakkında rehberlik sağlar.

Veri Koruma Politikası (DPP) şartları

Satış Ortağı Appstore için bir hizmet geliştirme sürecine başlarken kabul ettiğiniz politikalardan biri, Amazon Satıcı Merkezi Veri Koruma Politikası. İçinde Secure Coding Practices Bölüm, DPP şunları belirtir:

Geliştiriciler, şifreleme anahtarları, gizli erişim anahtarları veya parolalar dahil olmak üzere kodlarında hassas kimlik bilgilerini sabit kodlamamalıdır. Hassas kimlik bilgileri genel kod depolarında gösterilmemelidir. Geliştiriciler ayrı test ve üretim ortamları sürdürmelidir.

Yazılım geliştirme süreçleri

Yeni bir ürünü piyasaya sürmek için acele eden kuruluşlar, hassas kimlik bilgilerini sabit kodlamak da dahil olmak üzere kestirme yollara başvurmak isteyebilir. Sabit kodlama, kimlik bilgilerini güvenli bir kimlik bilgisi deposunun dışında kaydetme işlemidir ve kaynak kodu, wiki'ler, belgeler, elektronik tablolar ve yapılandırma dosyalarını içerir. Kimlik bilgileri, bu teknik belgede şifreleri, kişisel kimlik numaralarını (PIN'ler), güvenli kabuk (SSH) anahtarlarını, şifreleme ve şifre çözme anahtarlarını ve Amazon SP-API gizli erişim anahtarlarını veya belirteçlerini temsil etmek için kullanılan terimdir.

Sabit kodlanmış kimlik bilgilerine dair bir örneği aşağıda bulabilirsiniz:

{ "AssumedRoleUser": { "AssumedRoleId": "AROAIEGLQIIQUSJ2I5XRM:s3-access", "Arn": "arn:aws:sts:AWS-ACCOUNT-NUMBER:assumed-role/s3-read/s3-access" }, "Credentials": { "SecretAccessKey":"wZJph6PX3snOZU4g6yfXdkyXp5m+nwkEtdUHwC3w", "SessionToken": "FQoGZXIvYXdzENr/////////REST-OF-TOKEN", "Expiration":"2018-11-O2T16:46:23Z", "AccessKeyId":"ASIAXQZXUENECYQBAAQG" } }

Kimlik bilgilerinin sabit kodlaması, geliştirme süreci için bir seçenek gibi görünse de uygulamalarınızda önemli riskler oluşturur. Kötü niyetli bir kullanıcı, kod tabanınıza erişim sağlayabilirse kimlik bilgilerine kolayca erişebilir. Kötü niyetli kullanıcı daha sonra kimlik bilgilerinin erişmeye yetkili olduğu herhangi bir kaynağı kontrol edebilir.

Örneğin, kötü niyetli kişi Amazon SP-API kimlik bilgilerinizi bulursa izniniz veya bilginiz olmadan sizin adınıza API çağrıları yapabilir. Erişimin gerçek mi yoksa sahte mi olduğunu ayırt etmek zor olduğundan kimlik bilgilerinizin bir saldırgan tarafından kullanılıp kullanılmadığını hiçbir zaman anlamayabilirsiniz.

Geliştiriciler, kimlik bilgilerini sabit kodlamak yerine kimlik bilgilerini AWS Gizli Anahtar Yöneticisi gibi güvenli bir kimlik bilgisi deposunda saklamalıdır. Uygulamanız daha sonra gerekli kimlik bilgilerini yalnızca gerektiğinde almak için kimlik bilgisi deposunu çağırabilir.

Satış Ortağı API'si uygulamaları

Geliştiriciler için Satış Ortağı API'si (SP-API) uygulamaları, SP-API temel alır Amazon ile giriş yapın (LWA) yetkilendirme kodları, erişim belirteçleri ve yenileme belirteçleri.

Geliştiriciler, bu teknik belgede açıklanan riskler ve önleyici eylemler geçerli olduğundan bu kimlik bilgilerini uygun şekilde korumalıdır.

Amazon'un korumaları

Amazon, hassas kimlik bilgilerinin herkese açık olup olmadığını tespit etmek için sürekli olarak interneti tarar. Amazon internette anahtar bulduğunda, Bilgi Güvenliği ekibi riski ortadan kaldırmak ve kötü niyetli aktörlerin uygulamanın kontrolünü ele geçirmesini engellemek için anahtarları döndürür. Amazon daha sonra anahtar sahibini bilgilendirir.

Anahtarlar herkese açık hale geldiğinden Amazon, yetkisiz bir tarafın anahtarlara erişimi olduğunu ve dolayısıyla Amazon SP-API uygulaması sahiplerinin risk altında olduğunu varsayar. Maalesef anahtarlar yenilendiğinde uygulama sahibi de söz konusu uygulamayı kontrol edemez.

Bu süreç Amazon SP-API uygulamalarının korunmasına yardımcı olsa da, uygulama sahipleri ve müşterileri için önemli bir kesintiye neden olur. Genellikle Amazon SP-API geliştiricileri, Amazon'un anahtarlarını döndürdüğünü fark etmez ve kesintinin temel nedenini araştırmak için değerli zamanlarını harcar. Bir geliştiricinin Amazon'un anahtarları döndürdüğünü fark etmesi ve bir destek kaydı aracılığıyla Amazon ile iletişime geçmesi günler alabilir.

Bu, Amazon'un kimlik bilgilerinizi korumak için sahip olduğu tek mekanizmadır. Şifre çözme anahtarı gibi başka bir kimlik bilgisi herkese açık hale gelirse Amazon, anahtarı devre dışı bırakamaz veya yenileyemez. Saldırgan, Amazon veya geliştiriciniz farkına varmadan hassas bilgilerinizin şifresini çözme yetkisine sahip olur.

Kimlik bilgilerinizi sabit kodlamaktan kaçınmak, işletmenizde bu gibi stres oluşturan hizmet kesintilerini önlemenin en iyi yoludur.

Kimlik bilgilerini işlemeyle ilgili en iyi uygulamalar

Aşağıdaki bölümlerde kimlik bilgilerini işlemeyle ilgili en iyi uygulamalar açıklanmaktadır.

Katman koruması

Kimlik bilgileri güvenli bir kimlik bilgisi deposunda korunmalıdır. Kimlik bilgisi deposu, kullanıcıların uygulamalara, hizmetlere ve BT kaynaklarına erişmek için gereken gizli dizileri korumasına yardımcı olur. Kimlik bilgisi deposunun kullanılması, kullanıcılara tüm gizli diziler için tek bir depo sağlayarak gizli dizilerin uygulamalar, hizmetler ve diğer korunan kaynaklar genelinde korunması, döndürülmesi, yönetilmesi ve kullanılması için daha kolay bir yönetim sunar.

Tek bir kimlik bilgisi deposunda tüm gizli anahtarlarınızı saklayabileceğiniz için kimlik bilgisi deposunun korunması zorunludur. Kimlik bilgileri deponuzu korumak için erişimi yalnızca gerekli kişi ve kaynaklarla sınırlandırın. Ayrıca, olaylara hızlı müdahale etmek için güçlü şifreleme algoritmalarının yanı sıra sağlam bir günlük kaydı ve izleme süreci ile uyarılar kullanarak içerikleri şifrelemeniz gerekebilir.

Anahtar yenileme

En iyi uygulamalardan biri, kimlik bilgilerinizin eninde sonunda açığa çıkacağını varsaymaktır. Bir anahtar yenileme programı oluşturarak varsayılan bu riski azaltın. Anahtar yenileme işleminin planlı olması, yetkisiz kullanıcıların güvenliği ihlal edilmiş bir kimlik bilgisini kullanabileceği zaman aralığını kısaltır. Anahtar yenileme işlemi genellikle anahtar sahibinin bilmesi gereken rolünden vazgeçmesi veya anahtarın kullanıldığı sürenin uzunluğu gibi belirli durumlardan dolayı tetiklenir. Amazon, anahtarların en az 180 günde bir otomatik olarak yenilenmesini önerir.

Özel kod depolarının yönetimi

Herkese açık bir depo, kodunuzu dünyaya açarak rakipleriniz ve saldırganlar için erişilebilir hale getirir. Bu da şirketinizin normal operasyonlarını ifşa etme konusunda önemli bir risk oluşturur. Bu nedenle Amazon, bu teknik belgedeki önerilere uymanın yanı sıra depolarınızın gizli tutmanızı önerir.

Özel kod depolarını muhafaza ederek kimlik bilgilerinin ve hassas varlıkların daha fazla korunmasına yardımcı olabilirsiniz. Özel bir depo, kimlik bilgilerinizi tam olarak korumaz ve bu teknik belgedeki önerilerin uygulanmasının yerine geçmez.

Birincil kod deposu barındırma hizmeti olarak GitHub'ı kullanan bir geliştiriciyseniz depolarınızı nasıl özel yapacağınızı öğrenmek için GitHub belgelerindeki Depo görünürlüğünü ayarlama konusuna bakın. Ayrıca bu hizmetlerdeki kimlik bilgilerini tespit etmek için otomatik kod tarama ve gizli anahtarları yerel olarak şifreleme gibi yerleşik özellikleri de kullanabilirsiniz.

Amazon Web Services (AWS) Müşterileri İçin Rehber

Aşağıdaki rehber, AWS müşterilerinin karşılaştığı sorunlara göre uyarlanmıştır ancak diğer bulut sağlayıcı müşterileri ve şirket içi ortama sahip geliştiriciler de aynı hedefe ulaşmak için eşdeğer hizmetlerden yararlanabilir.

Geliştiriciler, kimlik doğrulama ve kontrol süreci çabalarını azaltmak için AWS IAM rollerinden yararlanabilir. Bununla birlikte, bazı hizmetler ve uygulamalar, uygulama kaynak koduna sabit kodlanmaması gereken API anahtarları, parola veritabanları ve SSH anahtarları gibi durumlarda daha uzun ömürlü kimlik bilgileri gerektirir.

AWS Gizli Anahtar Yöneticisi, veri tabanı kimlik bilgilerini, API anahtarlarını ve diğer gizli dizileri yaşam döngüleri boyunca yönetmenize, almanıza ve döndürmenize yardımcı olur. AWS Gizli Anahtar Yöneticisi'ni kullanmaya yönelik temel kullanım durumu, eğitimler ve rehberler için AWS Gizli Anahtar Yöneticisi belgelerine bakın. Geliştiriciler, kullanıcılar ve hizmetler için Gizli Anahtar Yöneticisi API'si çağrıları aracılığıyla kimlik bilgilerini alacak şekilde Gizli Anahtar Yöneticisi'ni ayarlayarak kimlik bilgilerinin sabit kodlanmasını önleyebilirler.

Etkinliği artırmak için, EC2'de çalışan uygulamalar için AWS IAM rollerini nasıl kullanacağınızı öğrenmeniz önerilir. Ayrıca, Secrets Manager ile AWS Lambda işlevlerine kimlik bilgilerini güvenli bir şekilde nasıl sağlayacağınızı da öğrenmelisiniz.

Sonuç

Katman koruması, şifreleme anahtarlarının döndürülmesi ve herkese açık olanlar yerine özel kod depolarının kullanılması gibi bu teknik belgede özetlenen en iyi uygulamaları takip ederek verilerinizin ve uygulamalarınızın güvende olmasını sağlayabilirsiniz. Güvenli bir ürünün zamanında piyasaya sürülmesini sağlamak için güvenliği birinci öncelik olarak entegre eden sağlam bir yazılım geliştirme yaşam döngünüzün olması faydalı olur. Hız için güvenlikten ödün vermeyin.

Devamını okuyun

Daha fazla bilgi için bkz.:

Belge geçmişi

TarihAçıklama
Ağustos 2023Teknik doğruluk açısından revize edilmiştir.
Ekim 2022Revised to align with migration from SP-API.
Temmuz 2022Teknik doğruluk açısından revize edilmiştir.
Ocak 2020Birinci yayın

Bildirimler

Amazon satıcıları ve geliştiricileri, bu belgedeki bilgiler hakkında kendi bağımsız değerlendirmelerini yapmaktan sorumludur. Bu belge: (a) yalnızca bilgilendirme amaçlıdır, (b) önceden haber verilmeksizin değiştirilebilecek mevcut uygulamaları temsil eder ve (c) Amazon.com Services LLC (Amazon) ve bağlı kuruluşları, tedarikçileri veya lisans verenlerinden herhangi bir taahhüt veya güvence oluşturmaz. Amazon Services API ürünleri veya hizmetleri, açık veya zımni herhangi bir garanti, beyan veya koşul olmaksızın “olduğu gibi” sağlanır. Amazon'un Amazon Services API ile ilgili sorumlulukları ve yükümlülükleri Amazon Services API anlaşmaları (Amazon Services API Geliştirici Sözleşmesi veya Amazon Services İş Çözümleri Sözleşmesi dahil) tarafından kontrol edilir ve bu belge Amazon ile herhangi bir taraf arasındaki herhangi bir anlaşmanın parçası değildir ve değiştirmez.

© 2022 Amazon.com Services LLC veya satış ortakları. Tüm hakları saklıdır.


Bu sayfa size yardımcı oldu mu?