Azure Storage bağlantı dizelerini yapılandırma

connection string, paylaşılan anahtar yetkilendirmesini kullanarak uygulamanızın çalışma zamanında bir Azure Storage hesabındaki verilere erişmesi için gereken yetkilendirme bilgilerini içerir. Bağlantı dizelerini yapılandırabilirsiniz:

  • Azurite depolama öykünücüsine bağlanın.
  • Azure'da bir depolama hesabına erişin.
  • Paylaşılan erişim imzası (SAS) aracılığıyla Azure belirtilen kaynaklara erişin.

Hesap erişim anahtarlarınızı görüntülemeyi ve connection string kopyalamayı öğrenmek için bkz. Depolama hesabı erişim anahtarlarını yönetme.

Önemli

en iyi güvenlik için Microsoft mümkün olduğunca blob, kuyruk ve tablo verilerine karşı istekleri yetkilendirmek için yönetilen kimliklerle Microsoft Entra ID kullanılmasını önerir. Microsoft Entra ID ve yönetilen kimliklerle yetkilendirme, Paylaşılan Anahtar yetkilendirmesi üzerinden üstün güvenlik ve kullanım kolaylığı sağlar. Yönetilen kimlikler hakkında daha fazla bilgi edinmek için bkz. Azure kaynakları için yönetilen kimlikler nedir. Bir .NET uygulaması için yönetilen kimliğin nasıl etkinleştirileceği ve kullanılacağı hakkında bir örnek için .NET ile Azure'da barındırılan uygulamaların Azure kaynaklarına kimlik doğrulaması sayfasına bakın.

Şirket içi uygulamalar gibi Azure dışında barındırılan kaynaklar için Azure Arc aracılığıyla yönetilen kimlikleri kullanabilirsiniz. Örneğin, Azure Arc etkin sunucularda çalışan uygulamalar, Azure hizmetlere bağlanmak için yönetilen kimlikleri kullanabilir. Daha fazla bilgi edinmek için bkz. Azure Arc özellikli sunucularla Azure kaynaklarına kimlik doğrulama.

Paylaşılan erişim imzalarının (SAS) kullanıldığı senaryolar için Microsoft kullanıcı temsilcisi SAS'sini kullanmanızı önerir. Kullanıcı temsilcisi SAS'sinin güvenliği hesap anahtarı yerine Microsoft Entra kimlik bilgileriyle sağlanır. Paylaşılan erişim imzaları hakkında bilgi edinmek için bkz . Paylaşılan erişim imzalarıyla verilere sınırlı erişim verme. .NET ile kullanıcı temsilcisi SAS oluşturma ve kullanma örneği için bkz. .NET içeren bir blob için kullanıcı temsilcisi SAS'si oluşturma.

Erişim anahtarlarınızı koruma

Depolama hesabı erişim anahtarları, depolama hesabı verilerine tam erişim ve SAS belirteçleri oluşturma olanağı sağlar. Erişim anahtarlarınızı korumak için her zaman dikkatli olun. Anahtarlarınızı güvenli bir şekilde yönetmek ve döndürmek için Azure Key Vault kullanın. Paylaşılan anahtara erişim, kullanıcıya depolama hesabının verilerine tam erişim verir. Paylaşılan anahtarlara erişim dikkatle sınırlanmalı ve izlenmelidir. Microsoft Entra ID tabanlı yetkilendirmenin kullanılamadığı senaryolarda sınırlı erişim kapsamına sahip kullanıcı temsilcisi SAS belirteçleri kullanın. Erişim anahtarlarını sabit kodlamaktan veya başkalarının erişebileceği herhangi bir yerde düz metin olarak kaydetmekten kaçının. Ele geçirilmiş olabileceklerini düşünüyorsanız anahtarlarınızı döndürün.

Önemli

Kullanıcıların Paylaşılan Anahtar ile depolama hesabınızdaki verilere erişmesini önlemek için, depolama hesabı için Paylaşılan Anahtar yetkilendirmesine izin verilmiyebilirsiniz. En düşük ayrıcalıklara sahip verilere ayrıntılı erişim, en iyi güvenlik uygulaması olarak önerilir. OAuth'u destekleyen senaryolar için yönetilen kimlikleri kullanan Microsoft Entra ID tabanlı yetkilendirme kullanılmalıdır. Kerberos, SMB üzerinden Azure Files için kullanılmalıdır. REST üzerinden Azure Files için SAS belirteçleri kullanılabilir. Yanlışlıkla kullanılmasını önlemek için gerekli değilse paylaşılan anahtar erişimi devre dışı bırakılmalıdır. Daha fazla bilgi için, Azure Storage hesabı için Paylaşılan Anahtar yetkilendirmesini önlemeye bakın.

bir Azure Storage hesabını Microsoft Entra Conditional Access ilkeleriyle korumak için, depolama hesabı için Paylaşılan Anahtar yetkilendirmesine izin vermemelisiniz.

Paylaşılan anahtar erişimini devre dışı bırakmışsanız ve tanılama günlüklerinde Paylaşılan Anahtar yetkilendirmesinin bildirildiğini görüyorsanız, bu, depolama alanına erişmek için güvenilen erişimin kullanıldığını gösterir. Daha fazla ayrıntı için bkz. Microsoft Entra kiracınızda kayıtlı kaynaklar için güvenilir erişim.

Bir bağlantı dizesi depolayın

Uygulamanızın, Azure Storage'a yapılan istekleri yetkilendirmek için çalışma zamanında bağlantı dizisine erişmesi gerekmektedir. Hesap erişim anahtarlarınızı veya connection string depolamak için çeşitli seçenekleriniz vardır:

  • Microsoft, hesap anahtarları yerine Azure Storage erişimi yetkilendirmek için Microsoft Entra ID kullanılmasını önerir. Hesap anahtarlarını kullanmanız gerekiyorsa, bunları Azure Key Vault güvenli bir şekilde depolayın. Daha fazla bilgi için bkz. Azure Storage'da verilere erişimi yetkilendirme.
  • connection string bir ortam değişkeninde depolayabilirsiniz.
  • Uygulama connection string app.config veya web.config dosyasında depolayabilir. Bir connection string’i bu dosyalardaki AppSettings bölümüne ekleyiniz.

Uyarı

Hesap erişim anahtarlarınızı veya connection string açık metin olarak depolamak bir güvenlik riski oluşturur ve önerilmez. Hesap anahtarlarınızı şifrelenmiş biçimde depolayın veya uygulamalarınızı depolama hesabınıza erişim için Microsoft Entra yetkilendirme kullanacak şekilde geçirin.

Azurite için bağlantı dizesi yapılandırın

Öykünücü tek bir sabit hesabı ve Paylaşılan Anahtar kimlik doğrulaması için iyi bilinen bir kimlik doğrulama anahtarını destekler. Bu hesap ve anahtar, yalnızca emülatör ile kullanılmasına izin verilen Paylaşılan Anahtar kimlik bilgileridir. Bunlar:

Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Not

Öykünücü tarafından desteklenen kimlik doğrulama anahtarı yalnızca istemci kimlik doğrulama kodunuzun işlevselliğini test etme amacıyla tasarlanmıştır. Hiçbir güvenlik amacına hizmet etmez. Öykünücü ile üretim depolama hesabınızı ve anahtarınızı kullanamazsınız. Geliştirme hesabını üretim verileriyle kullanmamalısınız.

Öykünücü yalnızca HTTP üzerinden bağlantıyı destekler. Ancak HTTPS, üretim Azure depolama hesabındaki kaynaklara erişmek için önerilen protokoldür.

Emülatör hesabına kısayolu kullanarak bağlan.

Uygulamanızdan öykünücüye bağlanmanın en kolay yolu, uygulamanızın yapılandırma dosyasında UseDevelopmentStorage=true kısayoluna başvuran bir bağlantı dizesi yapılandırmaktır. Kısayol, emülatörün hesap adını, hesap anahtarını ve Azure Depolama hizmetlerinin her biri için emülatör uç noktalarını belirten bağlantı dizesinin tam haliyle eşdeğerdir.

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;

Aşağıdaki .NET kod parçacığı, connection string alan bir yöntemden kısayolu nasıl kullanabileceğinizi gösterir. Örneğin, BlobContainerClient(String, String) oluşturucu bir connection string alır.

BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();

Kod parçacığındaki kodu çağırmadan önce öykünücünün çalıştığından emin olun.

Azurite hakkında daha fazla bilgi için "Yerel Azure Storage geliştirme için Azurite öykünücüsü kullanma" bölümüne bakın.

Azure depolama hesabı için bağlantı dizesi yapılandırın

Azure depolama hesabınız için bir connection string oluşturmak için aşağıdaki biçimi kullanın. DEPOLAMA hesabına HTTPS (önerilen) veya HTTP aracılığıyla bağlanmak isteyip istemediğinizi belirtin, değerini myAccountName depolama hesabınızın adıyla değiştirin ve değerini hesap erişim anahtarınızla değiştirin myAccountKey :

DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey

Örneğin, connection string şuna benzer olabilir:

DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=<account-key>

Azure Storage bir connection string hem HTTP hem de HTTPS'yi desteklese de HTTPS önerilir.

İpucu

Depolama hesabınızın bağlantı dizelerini Azure portalında bulabilirsiniz. Hem birincil hem de ikincil erişim anahtarlarının bağlantı dizesi görmek için depolama hesabınızın ayarlarında Güvenlik + ağ>Erişim anahtarları'na gidin.

Paylaşılan erişim imzası kullanarak bağlantı dizesi oluşturma

Depolama hesabındaki kaynaklara erişmenizi sağlayan bir paylaşılan erişim imzası (SAS) URL'niz varsa, SAS'yi bir connection string kullanabilirsiniz. SAS, isteğin kimliğini doğrulamak için gereken bilgileri içerdiğinden, SAS içeren bir connection string kaynağa erişmek için gerekli kimlik bilgilerini, hizmet uç noktasını ve protokolü sağlar.

Paylaşılan erişim imzası içeren bir connection string oluşturmak için dizeyi aşağıdaki biçimde belirtin:

BlobEndpoint=myBlobEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
FileEndpoint=myFileEndpoint;
SharedAccessSignature=sasToken

her hizmet uç noktası isteğe bağlıdır, ancak connection string en az bir tane içermelidir.

Not

EN iyi yöntem olarak HTTPS'nin SAS ile kullanılması önerilir.

Yapılandırma dosyasındaki bir bağlantı dizesinde SAS belirtiyorsanız, URL'deki özel karakterleri kodlamanız gerekebilir.

Hizmet SAS örneği

Blob depolama için bir hizmet SAS içeren bir connection string örneği aşağıda verilmiştir:

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

Url kodlaması ile aynı connection string bir örneği aşağıda verilmişti:

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&amp;sr=b&amp;si=tutorial-policy-635959936145100803&amp;sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

Hesap SAS örneği

Blob ve Dosya depolama için hesap SAS'sini içeren bir connection string örneği aşağıda verilmiştır. Her iki hizmet için de uç noktaların belirtildiğini unutmayın:

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&spr=https&st=2016-04-12T03%3A24%3A31Z&se=2016-04-13T03%3A29%3A31Z&srt=s&ss=bf&sp=rwl

Url kodlaması ile aynı connection string bir örneği aşağıda verilmişti:

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&amp;sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&amp;spr=https&amp;st=2016-04-12T03%3A24%3A31Z&amp;se=2016-04-13T03%3A29%3A31Z&amp;srt=s&amp;ss=bf&amp;sp=rwl

Açık depolama uç noktası için bağlantı dizesi oluşturma

Varsayılan uç noktaları kullanmak yerine connection string açık hizmet uç noktalarını belirtebilirsiniz. Açık bir uç nokta belirten bir connection string oluşturmak için, protokol belirtimi (HTTPS (önerilen) veya HTTP dahil olmak üzere her hizmet için tam hizmet uç noktasını aşağıdaki biçimde belirtin:

DefaultEndpointsProtocol=[http|https];
BlobEndpoint=myBlobEndpoint;
FileEndpoint=myFileEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
AccountName=myAccountName;
AccountKey=myAccountKey

Açık uç nokta belirtmek isteyebileceğiniz bir senaryo, Blob depolama uç noktanızı özel bir etki alanına eşlediğiniz senaryodur. Bu durumda, Blob depolama için özel uç noktanızı bağlantı dizesinde belirtebilirsiniz. İsteğe bağlı olarak, uygulamanız bunları kullanıyorsa diğer hizmetler için varsayılan uç noktaları belirtebilirsiniz.

Blob hizmeti için açık bir uç nokta belirten bir connection string örneği aşağıda verilmiştir:

# Blob endpoint only
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
AccountName=storagesample;
AccountKey=<account-key>

Bu örnek, Blob hizmeti için özel bir etki alanı dahil olmak üzere tüm hizmetler için açık uç noktaları belirtir:

# All service endpoints
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
FileEndpoint=https://myaccount.file.core.windows.net;
QueueEndpoint=https://myaccount.queue.core.windows.net;
TableEndpoint=https://myaccount.table.core.windows.net;
AccountName=storagesample;
AccountKey=<account-key>

connection string uç nokta değerleri, depolama hizmetlerine yönelik istek URI'lerini oluşturmak ve kodunuz için döndürülen URI'lerin biçimini dikte etmek için kullanılır.

Depolama uç noktasını özel bir etki alanına eşlediyseniz ve bu uç nokta bir bağlantı dizesinde yer almıyorsa, kodunuzdan bu hizmetteki verilere erişmek için o bağlantı dizesini kullanamazsınız.

Azure Storage için özel etki alanı yapılandırma hakkında daha fazla bilgi için bkz. Özel etki alanını Azure Blob Storage uç noktasına eşleme.

Önemli

bağlantı dizelerinizdeki hizmet uç noktası değerleri, https:// (önerilen) veya http:// dahil olmak üzere iyi biçimlendirilmiş URI'ler olmalıdır.

Uç nokta son ekiyle bir bağlantı dizesi oluşturma

21Vianet veya Azure Government tarafından sağlanan Microsoft Azure gibi, uç nokta sonekleri farklı olan bölgelerde veya örneklerde bir depolama hizmeti için bağlantı dizesi oluşturmak amacıyla aşağıdaki bağlantı dizesi biçimini kullanın. Depolama hesabına HTTPS (önerilen) veya HTTP aracılığıyla bağlanmak isteyip istemediğinizi belirtin, değerini myAccountName depolama hesabınızın adıyla değiştirin, myAccountKey değerini hesap erişim anahtarınızla değiştirin ve değerini URI soneki ile değiştirin mySuffix :

DefaultEndpointsProtocol=[http|https];
AccountName=myAccountName;
AccountKey=myAccountKey;
EndpointSuffix=mySuffix;

21Vianet tarafından sağlanan Azure depolama hizmetleri için örnek bir connection string aşağıda verilmişti:

DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;

Paylaşılan Anahtar ile erişimi yetkilendirme

Hesap anahtarıyla veya connection string ile Azure Storage erişimi yetkilendirmeyi öğrenmek için aşağıdaki makalelerden birine bakın:

Sonraki adımlar